No.41500 作者:Atiny 邮件:snow_cyz@tom.com ID:14796 登陆:3次 文章数:1篇 最后登陆IP:61.154.9.178 最后登陆:2003/10/15 16:08:23 注册:2003/9/5 11:17:07 财富:109 发帖时间:2003/9/5 11:22:08 发贴者IP:61.154.9.178 标题:Atiny:浅谈8位MCU在PICC中的数据类型(转载) 摘要:No.41500浅谈8位MCU在PICC中的数据类型(转载) PIC8位MCU的内存都是8位字节结构的,所以PICC中对于数据的划分都是以8位为基础的。 在汇编中,我们对一个地址为0X20的内存附值: movlw 255; movwf 0x20; 但一个内存是8位结构,能表示最大的数是255。要是超过了会怎么样呢? movlw 256; movwf 0x20; 通过DEBUG后,可以看出0X20中的值不是256,而是0了。 这里可以看出PIC处理器计算过程是当计算结果超过内存能容纳的最大数(也就是所谓溢出),则自动抛弃最高位。 如下: 255 - 256 11111111-100000000 256的2进制有9位,于是PIC处理器就自动抛弃最高位1,剩下的8个0放入内存,于是就成了0了。这过程是由硬件自动完成的。 在PICC中象这样的概验比比都是。 如:char x; for(x=255;x--;){;} 是完成255个循环。 要是for(x=256;x--;){;} 则是0 ......
>>返回讨论的主题
|