我们可以假设内存表就是一张纸. 当我输入一个数据的时候,软件就会为我们在内存中开辟一个地址,以往内存表中存放数据,如这里就是往这个地址开始写入数据:0040339C . 我们对内存表的高位和低位的理解就可以想做这里就是一张白纸. 我们把每个空格都当作一个位置,从0~1000开始计数,写在最前的就是低位,比如说写四个数,从0~3 . GAME数据的低位~高位就是从G到M. 之后呢,我们从内存表中取数据,放入寄存器中,我们可以把寄存器比做一个水桶,我们放入数据的时候肯定是把"水"先倒到水筒的底部. 如我们从内存中区GAME放入到水桶中的话 水桶中存放的数据就成了EMAG 也就是 45 4D 41 47 (注意每个字节是两个16进制的字符) 而水桶的高位和地位呢,想必大家会很明白,水桶的最上方就是高位,水桶底就是低位,所以EMAG 数据的高低位就是 E~G(E为最高位 G为最低位) 这样大家就清楚 高高低低原则了 (低位用D表示 高位用G表示) (中心对称,高低位一致性,寄存器先从内存低位读取数据放到自己的低位,反之一样,只不过寄存器就像这里说的水桶,低位在下(/后),高位在上(/前)) D G | G D 如果把内存地址的数据 01 02 03 04 放到寄存器就是 04 03 02 01 G D | D G 如果把寄存器 的数据 04 03 02 01 放到内存地址为 01 02 03 04 数据的传递中 是遵循高高低低原则的 相信大家按照这个思路去理解 会更简单些~~ 附: 内存 低位在前,高位在后理解: 例如整数(假设占2个字节) 278 = 00000001 00101100 存储时100101100 00000001 |
|