x86的寄存器

最近一段時間,在看彙編語言方面的東西。
看的大部分都是基於8086。而8086的芯片中是16位的數據線,16位的寄存器。看了大部分指令後也是16位的。
所在在把程序移植到32位的處理器上的時候,就會發現有此不同。雖然處理器是32位的,但是它還是保留的AX,BX,CX,DX,BP寄存器還是16位。
其尋址方式也按字節尋址。

比如16位的地址0000只是對應了一個字節的內容 CD,而16位的地址0001也是對應了一個字節的內容 如20。

那麼

mov ax,[0000]

時,我們就把20CD內容送到了,這個32位的寄存器中去了。所以一個字佔兩個字節。

而且8086規定在以低8位(低字節)所在單元的地址作爲字或雙字數據的地址,存放的順序是:高字節數據放在高地址單元中,將低字節數據放在低地址單元中。

彙編圖

發佈了39 篇原創文章 · 獲贊 2 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章