我正在阅读ARM中的LDRB / STRB指令,并且想知道内存地址(例如,您用来引用地址的完整32位数字-不是使用DEFW创建的标签或变量)指向内存地址的顶部或底部。
我将讨论每个地址中的32位,例如架子的等级。据我了解,存储空间就像一个巨大的书架,从地面到天花板都有数十亿个级别,而每个级别只能容纳一本书(少量数据)。
ARM中的内存地址大小为32位,因此高32级。假设最下面的架子是数字0,最上面的架子是0xFFFFFFFF,那么我们用来指代内存地址(一组32个架子级别)的32位长数字是否指向该组中最上面的架子,或者最下面的架子?
当我更多地了解LDRB和STRB指令的实现时出现了这个问题时,我发现这个问题与理论相关性更高,因为它比其他任何东西都更讨论存储器的结构。如果我误认了它,mod可以随时删除或更改标签。预先感谢您的帮助!
答案 0 :(得分:2)
您似乎在想内存在ARM上是可寻址的。实际上,它是字节可寻址的,因此每个地址都指向存储器的一个字节。如果您考虑使用较大的操作数(半个单词,半个单词),则address
是开始,即您所用的底部。单词操作数将占据address+0
,address+1
,address+2
和address+3
。