概括:當80386上電覆位後,進入實模式狀態,本文就介紹80386在實模式下的編程模型,採用和8086同樣的敘述結構,相同的部分會省略。
一、寄存器
1.1、80386寄存器結構圖如下
1.2、由上圖可知,80386的寄存器和8086相比,區別如下:
■ 所有的寄存器都被擴展到了32位,其中EAX,EBX,ECX,EDX可以被16位或者8位方式讀寫。
■ 段寄存器又多了兩個FS,GS。
■ 標誌寄存器多了一些爲保護模式下利用的標誌位。
二、存儲器接口
雖然80386擁有32根地址線,可以尋址4G的內存,但是爲了和8086兼容,在實模式下任然採用8086的段機制,而且段的大小和粒度和8086一樣。
三、尋址方式
除了寄存器被擴展到32位以外,80386靈活的存儲器尋址方式是又一大特色,基址變址不再像8086那樣死板,使彙編編程更加靈活,也更有利於高級語言的編譯器進行優化。
3.1、寄存器和立即數尋址和8086相同。
3.2、存儲器尋址方式兼容8086的16位的尋址模式,同時增加更加靈活的32位模式尋址方式,見下圖:
■ 由基址決定所在段,再未指明段的情況下,EBP,ESP對應的是SS段,其他的默認對應DS段。
■ ESP不能用於變址。
■ 比例因子的存在有利於對應各種數據類型。
四、指令系統 [Label:] Operator [Operand1[,Operand2]][;comment]
80386的指令系統和8086相比最主要的區別還是寄存器位數的區別,完全兼容8086指令系統。
下圖只列出80386指令相對於8086指令除了位數和尋址方式以外的不同之處。