分享

关于内存地址和寄存器中的高位和低位简介

 十指紧ㄣ扣 2010-05-21

我们可以假设内存表就是一张纸. 当我输入一个数据的时候,软件就会为我们在内存中开辟一个地址,以往内存表中存放数据,如这里就是往这个地址开始写入数据: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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多