80386实模式编程模型

概括:当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指令除了位数和寻址方式以外的不同之处。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章