ARM9 vivi 中 mov r2, #0x400 @ 4 bytes * 1024 = 4K-byte 我认为是1K啊,,忘高手解释下!!
答案:1 悬赏:70 手机版
解决时间 2021-02-02 15:07
- 提问者网友:呐年旧曙光
- 2021-02-02 01:25
ARM9 vivi 中 mov r2, #0x400 @ 4 bytes * 1024 = 4K-byte 我认为是1K啊,,忘高手解释下!!
最佳答案
- 五星知识达人网友:洒脱疯子
- 2021-02-02 02:34
这你必须要看到下面的代码(u-boot中是如下的代码:)
go_next:
ldr r3,[r0],#4
ldr r4,[r1],#4
teq r3,r4
bne notmatch
因为这段代码才是决定了0x400代表的是什么
可以看到,这里面这段代码是以“4”为单位比对的,也就是说最小的“颗粒”是4,对于arm处理器(甚至绝大部分处理器),地址上的1H代表的是8bit的数据存储空间,这是最小的粒度了,所以4则代表了他一次比对的是32bit,32bit=4byte这是常识,而0x400 bit=2^10 bit =1K bit也是常识,但是这里0x400后边的单位不是bit了,而是4byte,也就是0x400*4byte = 2^10*4byte = 1K*4byte = 4K byte,这样算下来就对了。
综合下来,你对微机存储器寻址理解还有点模糊啊
go_next:
ldr r3,[r0],#4
ldr r4,[r1],#4
teq r3,r4
bne notmatch
因为这段代码才是决定了0x400代表的是什么
可以看到,这里面这段代码是以“4”为单位比对的,也就是说最小的“颗粒”是4,对于arm处理器(甚至绝大部分处理器),地址上的1H代表的是8bit的数据存储空间,这是最小的粒度了,所以4则代表了他一次比对的是32bit,32bit=4byte这是常识,而0x400 bit=2^10 bit =1K bit也是常识,但是这里0x400后边的单位不是bit了,而是4byte,也就是0x400*4byte = 2^10*4byte = 1K*4byte = 4K byte,这样算下来就对了。
综合下来,你对微机存储器寻址理解还有点模糊啊
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯