看的大部分都是基於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位(低字節)所在單元的地址作爲字或雙字數據的地址,存放的順序是:高字節數據放在高地址單元中,將低字節數據放在低地址單元中。