Copyright 2015 张智鹏
说明:本文为阅读《x86汇编语言-从实模式到保护模式》之后所做笔记
1.x86架构历史简述
架构 | 产品(已停产) | 产品(现有) |
---|---|---|
x86前产品 | 4004 · 4040 · 8008 · 8080 · iAPX 432 · 8085 | / |
x86-16(16位) | 8086 · 8088 · 80186 · 80188 · 80286 | / |
x86-32/IA-32(32位) | 80386 · 80486 · Pentium(OverDrive、Pro、II、III、4、M) · Celeron(M、D) · Core | EP80579 · A100 · Atom(CE、SoC) |
x86-64/Intel 64(64位) | Pentium(4(部分型号)、Pentium D、EE) · Celeron D(部分型号) · Core 2 | Xeon(E3、E5、E7、Phi) · Atom(部分型号) · Celeron · Pentium · Core(i3、i5、i7) |
{引用自维基百科 http://zh.wikipedia.org/wiki/Intel_80386}
2 x86架构结构简述
2.1 x86-16
2.1.1 8086内部结构
8086处理器内部结构图:
1.执行部件EU
组成
- 运算器
- 16位算术逻辑单元ALU;
- 16位状态标志寄存器FLAG;
- 16位数据暂存器;
- 8个16位通用寄存器组(AX,BX,CX,DX,SP,BP,SI,DI)
- EU控制电路(完成指令译码,形成相应控制信号,以完成指令操作)
功能
- 从BIU指令队列中读取指令;
- 由EU控制电路对指令进行译码分析,指出操作性质及对象;
- 在EU中计算出操作数的16位地址偏移量送给BIU,由BIU的∑形成20位绝对地址;
- 将取来的操作数经系统数据总线送ALU进行指定操作;
- 运算结果经内部总线送到指定位置;
2.总线接口单元BIU
组成
- 6个字节指令队列ISQ;
- ISQ中有指令时,EU开始执行;
- ISQ有两个空字节时,BIU自动取指;
- 当EU执行转移、调用和返回指令完毕,将清除ISQ,并要求BIU重新开始取指令;
- 16位指令偏移地址寄存器IP
- 程序运行中自动修改;
- 转移、调用、中断和返回指令能改变IP值,并将原IP值入栈,或由堆栈恢复原值;
- 4个16位段寄存器CS,DS,