2011-09-05 106 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