根据本书,寄存器是一个CPU存储空间小的地方(例如16位CPU上的16位)。那么CPU寄存器如何具有地址?如果它不在内存中而是在CPU上,我们如何能够增加排量?寄存器的地址如何?
举例:
mov ax, [bx+1000h]
根据本书,寄存器是一个CPU存储空间小的地方(例如16位CPU上的16位)。那么CPU寄存器如何具有地址?如果它不在内存中而是在CPU上,我们如何能够增加排量?寄存器的地址如何?
举例:
mov ax, [bx+1000h]
的x86寄存器只有史以来名字解决。表达式bx+1000h
仅表示“寄存器bx中的值加上1000h”,结果被解释为存储器中的地址(通过[...]
表示法),而不是一些寄存器空间。
表达式的整体解释是“在地址bx指向之后,将1000位字节中的16位加载到AX中。”
这是通过将bx
的内容解释为地址,然后用偏移量替换它来完成的。
所以,如果bx
是1000h
那么ax
的内容将被存储在内存位置2000h
你加入移位到内部包含BX的内存地址,你是不是从寄存器BX移动1000H字节。 – Cipi
正常情况下,寄存器没有存储器地址,但有些地址可以使用,例如AVR微控制器中的堆栈指针SP。 – starblue