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



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值