Assembly 登记册怎么能有地址?

Assembly 登记册怎么能有地址?,assembly,masm,cpu-registers,masm32,Assembly,Masm,Cpu Registers,Masm32,根据这本书,寄存器是CPU中存储空间小的地方(例如16位CPU上的16位)。那个么CPU寄存器是如何拥有地址的呢?如果不是在内存中,而是在CPU上,我们怎么能给它添加位移呢 例如: mov ax, [bx+1000h] x86寄存器仅按名称寻址。表达式bx+1000h仅表示“寄存器bx中的值加1000h”,结果被解释为内存中的地址(通过[…]符号),而不是某个寄存器空间中的地址 表达式的总体解释是,“将位于地址bx指向后1000h字节的16位加载到ax中。”将bx的内容解释为一个地址,然后用偏

根据这本书,寄存器是CPU中存储空间小的地方(例如16位CPU上的16位)。那个么CPU寄存器是如何拥有地址的呢?如果不是在内存中,而是在CPU上,我们怎么能给它添加位移呢

例如:

mov ax, [bx+1000h]

x86寄存器仅按名称寻址。表达式
bx+1000h
仅表示“寄存器bx中的值加1000h”,结果被解释为内存中的地址(通过
[…]
符号),而不是某个寄存器空间中的地址


表达式的总体解释是,“将位于地址bx指向后1000h字节的16位加载到ax中。”

bx
的内容解释为一个地址,然后用偏移量替换该地址


因此,如果
bx
1000h
,那么
ax
的内容将存储在内存位置
2000h

您将位移添加到bx中包含的内存地址,您不会从寄存器bx移动1000h字节。通常寄存器没有a内存地址,但有些寄存器有,例如,AVR微控制器中的堆栈指针SP。