2011-09-05 95 views
2

根据本书,寄存器是一个CPU存储空间小的地方(例如16位CPU上的16位)。那么CPU寄存器如何具有地址?如果它不在内存中而是在CPU上,我们如何能够增加排量?寄存器的地址如何?

举例:

mov ax, [bx+1000h] 
+0

你加入移位到内部包含BX的内存地址,你是不是从寄存器BX移动1000H字节。 – Cipi

+1

正常情况下,寄存器没有存储器地址,但有些地址可以使用,例如AVR微控制器中的堆栈指针SP。 – starblue

回答

5

的x86寄存器只有史以来名字解决。表达式bx+1000h仅表示“寄存器bx中的值加上1000h”,结果被解释为存储器中的地址(通过[...]表示法),而不是一些寄存器空间。

表达式的整体解释是“在地址bx指向之后,将1000位字节中的16位加载到AX中。”

0

这是通过将bx内容解释为地址,然后用偏移量替换它来完成的。

所以,如果bx1000h那么ax的内容将被存储在内存位置2000h