2.80x86计算机组织结构
2.1 80x86计算机基本结构
中央处理器CPU | 运算器 | 执行指令所要求的算术运算、逻辑运算和数据传送等操作。 |
控制器 | 控制执行步骤;从内存中取出指令,分析指令的操作码,完成操作数的存取, 发出相应的控制命令。 |
寄存器 | 相当于运算器中的一个存储单元,但速度比存储器快得多
。 |
存储器 | 存放指令和数据,由若干存储单元构成,最小单位是字节。 |
将所有的存储单元按顺序编号,这些编号称为存储单元的地址 (也称为物理地址) |
IBM PC机及其兼容机的存储器结构 | 程序暂驻区 | 640K:中断向量、DOS和BIOS调用、IO.SYS和应用程序等 |
系统内存区 | 384K:显示RAM/ROM,硬盘控制器ROM等 |
扩展存储器 | 286以上机器,1M以上区,保护模式才可访问 |
外部设备(I/O设备) | 键盘、显示器、打印机、外部存储器等,CPU与外部设备交换信息是通过I/O接口电路来完成的。 |
总线结构 | 数据总线DB(Data Bus) | CPU与内存、I/O设备之间通过数据总线传送数据。 |
80x86系列的数据总线有8位、16位、32位和64位,8086数据总线为16位。 |
地址总线AB(Address Bus) | 用来传送地址,内存中的每个字节都对应着一个唯一的地址,地址总线的位数与寻址空间有着直接的关系。 |
例:8086/8088地址总线20根,则可访问的地址为:2²⁰=1,048,576=1M |
控制总线CB(Control Bus) | 传送控制信息
。 |
2.2 80x86 CPU的寄存器
1. 通用寄存器
用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。
构成:4个32位数据寄存器,2个32位指针寄存器,2个32位变址寄存器。 |
8个8位通用寄存器:AL、AH、BL、BH、CL、CH、DL、DH。 |
8个16位通用寄存器:AX、BX、CX、DX、SI、DI、 BP、SP。 |
8个32位通用寄存器:EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP。 |
1)数据寄存器(AX、BX、CX、DX)
- 16位数据寄存器AX、BX、CX、DX
- 8位寄存器AH、AL、BH、BL、CH、CL、DH、DL
- 32位通用寄存器:
- 用于80386 以上的机型:EAX、EBX、ECX、EDX。
- 每个寄存器为32位,可分为1个16位、2个8位寄存器使用。
如EAX为32位寄存器,也可将EAX分为AX(16位寄存器)或AH(8 位寄存器)或AL(8位寄存器)。
2)指针寄存器(SP、ESP、BP、EBP、IP、EIP)
- SP、ESP∶堆栈指针寄存器(通用寄存器)
- 存放当前堆栈段栈顶的偏移地址。
- 总是与SS堆栈段寄存器配合存取堆栈中的数据。
- 在实模式方式(SP),保护模式(ESP)。
- BP、EBP∶基址指针寄存器(通用寄存器)
- 在间接寻址时,用来存放基地址,是相对于堆栈段的基地址。
- IP、EIP∶ 指令指针寄存器(属于控制寄存器,不属于通用寄存器)
- 是存放当前正在执行的指令的下一条指令的偏移地址,该寄存器所指的地址为代码段的偏移地址。
- 与段寄存器CS联用,确定下一条指令的地址,控制程序流程。
- 不属于通用寄存器,属于专用寄存器中的控制寄存器。
3)变址寄存器
- SI、ESI∶源变址寄存器
- 一般与数据段寄存器DS联用,用来确定数据段中某一存储单元的地址。
- 间接寻址时,在指令中用于地址寄存器和变址寄存器,在串操作时用于源串的地址。
- DI、EDI∶目的变址寄存器
- 间接寻址时,在指令中用于地址寄存器和变址寄存器,在串操作时用于目的串的地址。
2. 控制寄存器
8086/8088~80286的标志寄存器为16位,80386以上的标志寄存器为32位。
8086/8088标志寄存器状态功能表
名称 | 标志位状态 | 功能 |
进位标志CF | CF=1;CY | CF=1运算结果最高位有进位或有借位(用于多字节加减运算)否则CF=0。 |
CF=0;NC | DEBUG中CF=1:CY,CF=O:NC |
奇偶标志PF | PF=1;PE | CF=1运运算结果的低8位中所含“1”的个数为偶数:PF=1,否则 PF=0。 |
PF=0;PO | DEBUG中PF=1:PE,PF=0:PO |