80386实模式编程模型
来源:互联网 发布:深圳知豆共享汽车 编辑:程序博客网 时间:2024/06/05 01:53
概括:当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指令除了位数和寻址方式以外的不同之处。
- 80386实模式编程模型
- 80386保护模式编程模型
- ARM微处理器的工作模式,编程模型
- Linux驱动模型的编程模式
- 多线程编程模型之工作组模式
- 架构与模式:多线程有几种常用的编程模型
- Android GUI编程模型(MVC设计模式)
- Android GUI编程模型(MVC设计模式)
- 非阻塞模式WinSock编程入门 使用 WSAAsyncSelect模型
- linux进程并发模型生产者和消费者模式编程
- 并发编程实现模型之(一)Future模式
- 并发编程实现模型之(二)Master-Worker模式
- 并发编程实现模型之(三)Producer-Consumer模式
- 编程模型
- Linux网络编程--epoll模型之LT触发模式和ET触发模式
- 【网络编程】服务端的I/O模型,事件处理模式,并发模式
- 云时代的编程——从计算模型演化看编程模式发展
- 并发编程模型【Actor模型】【CSP模型】
- jsp调用Action弹出下载框的可能性分析
- Oracle存储概述
- Eclipse中Android项目的目录结构
- 又见木村拓哉
- bitmap 删除字符串中重复字符
- 80386实模式编程模型
- 将一个文件的内容写入到另一个文件
- 设置自定义ASP.NET服务器控件TagPrefix的几种方法
- hello csdn
- 回家
- hdu2819 Swap
- Java Observer类
- 80386保护模式编程模型
- 手动进行释放内存的API