1 / 13

两个独立的功能部件:执行部件 EU 、总线接口部件 BIU 。

AH. AL. BH. BL. CH. CL. DH. DL. CS. SP. DS. BP. SS. SI. AX. ES. DI. BX. 地址加法器. ∑. IP. EU 单元. BIU 单元. CX. DX. 内存 接口. 总线 控制 逻辑. 1. 2. 3. 4. 5. 6. 指令队列. EU 控 制. ALU. 标志寄存器. 2 . 2 80X86 微处理器的编程结构. 两个独立的功能部件:执行部件 EU 、总线接口部件 BIU 。. 2 . 2 80X86 微处理器的编程结构. EAX.

ford
Download Presentation

两个独立的功能部件:执行部件 EU 、总线接口部件 BIU 。

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AH AL BH BL CH CL DH DL CS SP DS BP SS SI AX ES DI BX 地址加法器 ∑ IP EU单元 BIU单元 CX DX 内存 接口 总线 控制 逻辑 1 2 3 4 5 6 指令队列 EU 控 制 ALU 标志寄存器 2.2 80X86微处理器的编程结构 两个独立的功能部件:执行部件EU、总线接口部件BIU。

  2. 2.2 80X86微处理器的编程结构 EAX EBX ECX AX BX CX BH AH CH AL BL CL EAX、AX、AH、AL:加减;BCD、ASCII调整;字节到字,字到双字转换;乘/除,串操作,I/O操作等。 EDX DX EBX、BX、BH、BL查表转换;基地址。 DH DL ESP SP ECX、CX、CH、CL循环计数;重复串操作;可变移位、循环移位操作。 EDX、DX、DH、DL:间接I/O操作;双字乘/除 ESI EDI DI SI EBP BP ESP、SP:堆栈段栈顶指针寄存器 EBP、BP:堆栈段基址指针寄存器 ESI、SI:数据段源变址指针寄存器 EDI、DI:数据段目的变址指针寄存器 • 2.2.1 基本结构寄存器 • 通用数据寄存器

  3. 2.2.1 基本结构寄存器 • 专用寄存器 • 指令指针EIP(IP) EIP(IP)(Instruction pointer)跟踪下条指令的偏移地址。 EIP IP 2.2 80X86微处理器的编程结构

  4. D14 D11 D0 8086 :D0~D119个标志 IOPL IOPL D I T S Z A P C O NT 80286 :D0~D14 12个标志 D31 D21 D18 D16 ID VIP VIF AC VM RF 80386 :D0~D17 14个标志 2.2 80X86微处理器的编程结构 • 标志寄存器EFLAGS (Flags) • CPU的控制标志和运算结果状态标志。 80486 :D0~D18的15个标志 PENTIUM :D0~D21的18个标志。

  5. 进位 方向 零 奇偶 溢出 中断 符号 半进位 2.2 80X86微处理器的编程结构 2.2.1 基本结构寄存器 • 标志寄存器EFLAGS (Flags) • 8086的状态标志和控制标志: 控制标志 状态标志 状态标志:标示CPU运行结果的状态。结果为零、为负、产生进位或借位等。 控制标志:控制CPU的运行状态。 TF DF IF OF SF ZF AF PF CF 跟踪

  6. 16位 CS DS SS ES FS GS 2.2 80X86微处理器的编程结构 2.2.1 基本结构寄存器 • 段寄存器 • 对所有X86级CPU均为16位寄存器。 • 8086CPU: 段寄存器直接给出段基址。 • 代码段:CS • 代码段存贮区的起始地址 • 堆栈段:SS • 堆栈段存贮区的起始地址 • 数据段:DS、ES、FS、GS • (8086只有二个数据段寄存器DS、ES) • 数据段存贮区的起始地址 80286以上CPU: 由段寄存器(选择器)经全局描述符或局部描述符寄存器得到相应的描述符表,从而得到段基址,与偏移地址相加得到线性物理地址。

  7. 2.2 80X86微处理器的编程结构 2.2.2系统级寄存器 5个控制寄存器CR0~CR4、2个系统地址寄存器GDTR、IDTR、2个系统段寄存器TR、LDTR组成。 • 控制寄存器 • 实现对处理器的多种功能控制与选择。P28~P31表2—5、表2—6、表2—7分别给出了一些位的定义。 • 系统地址寄存器 • GDTR全局描述表寄存器为48位,存放全局描述子表的段基址。 • IDTR中断描述子表寄存器为48位。存放中断描述子表的段基址。 • 系统段寄存器 • LDTR局部描述子表寄存器为16位寄存器。 • TR能在任务或进程之间切换是多用户操作系统的一个重要属性。 2.2.3调试和测试寄存器 2.2.4浮点寄存器

  8. 存贮器的物理地址 • 以字节为最小基本存储单元的顺序编址。 (220=1024K=1MB空间)从00000H到0FFFFFH个单元的20位绝对地址。 00000H 2AH 00001H BFH 00002H ??H 00003H …… …… …… FFFFDH FFFFEH FFFFFH 补充:8086存储器的分段管理 • 存贮器的逻辑地址 • 将1MB空间,小于等于216=64K连续的存储器为一段,分为多个段。每个段可以独立寻址。 • 段地址:段内偏移地址的表示方法称逻辑地址。 • 如, 2000H:100H

  9. 00000H 00001H …… 代码段 数据段 CS DS SS 堆栈段 ES 附加段 …… FFFFEH FFFFFH 2.2.5 8086存储器的分段管理 段地址:段的起始地址,(段的编号)是该段的最低地址。 偏移地址:段内地址的顺序编号。 8086同时可有4个段被激活(称当前段)。它们是CS代码段、DS数据段、SS堆栈段、ES附加数据段。 分段之间必须: 〈1〉保持16个字节或其整数倍为段地址间距。 〈2〉16位段寄存器表示段基址。段寄存器加1实际上存储器地址加16。 〈3〉段可连续、分散、重迭。 物理地址PA=段地址×16+偏移地址(EA)

  10. 00000H 00001H …… 0100H:0000H 01000H 0100H:0001H 01001H 01002H …… 偏移23H 0102H:0000H 01020H 0102H:0001H 01021H 偏移03H 01022H XX 01023H …… FFFFEH FFFFFH 2.2.5 8086存储器的分段管理 例:对于物理地址1023H单元 可以表为0100H:0023H PA=0100H×10H+0023H =1023H 也可表为0102H:0003H PA=0102H×10H+0003H =1023H 两段间距为20H单元,两种逻辑地址表示同一个物理地址单元01023H。

  11. 2.2.5 8086指令的执行 20位地址 主存储器 2AH 00000H AX AH 12H ∑ BFH 00001H 寄存器组 …… 总线 控制 逻辑 CS 2000H 34H 20100H DS SS EU 控 制 ES ADD F0300H ALU IP 指令 …… 指令队列 FFFFEH 标志寄存器 1 2 3 4 5 6 FFFFFH DS= 2000H 操作数 34H 偏移地址 100H ALU 取下一条指令 AL= 12H ∑ AL 标志 20100H 执行指令ADD AL,[100H] CS:IP=F0300H IP指下条指令 ADD指令 指令队列 指令译码

  12. 3、8086 CPU 8088 CPU BHE/S7 AD8~AD15 M/IO(S2) IO/M(S2) A8~A15 SS0(HIGH) Vcc Vcc 40 40 GND 1 GND 1 AD15 A15 AD14 A14 39 39 2 2 A16/S3 A16/S3 38 38 AD13 3 A13 3 A17/S4 A17/S4 37 37 4 4 AD12 A12 A18/S5 A18/S5 AD11 A11 36 36 5 5 35 A19/S6 35 A19/S6 6 6 AD10 A10 RD RD BHE/S7 AD9 A9 SS0(HIGH) 34 34 7 7 MN/MX 8086 CPU 8088 CPU MN/MX AD8 A8 33 33 8 8 AD7 AD7 32 32 9 9 HOLD(RQ/GT0) HOLD(RQ/GT0) AD6 AD6 31 31 10 10 HLDA(RQ/GT1) HLDA(RQ/GT1) 30 30 AD5 11 AD5 11 WR(LOCK) WR(LOCK) 29 29 12 12 AD4 AD4 M/IO(S2) IO/M(S2) AD3 AD3 28 28 13 13 AD2 DT/R(S1) AD2 DT/R(S1) 27 27 14 14 DEN(S0) DEN(S0) AD1 AD1 26 26 15 15 INTA(QS1) INTA(QS1) ALE(QS0) ALE(QS0) TEST TEST AD0 AD0 25 25 16 16 NMI NMI 24 24 17 17 23 23 18 18 INTR INTR READY READY CLK CLK 22 22 19 19 RESET RESET GND GND 21 21 20 20

  13. 课后作业: 1. 采用分段管理后,存储器地址有( )和( )之分。其中( )是存储器中某一单元的绝对地址,用( )位地址码表示,编码范围为( )。 2.逻辑地址是用户编程的地址,由段基址和段内偏移地址(段基址:偏移地址)组成,二者都是16位。CPU访问存储器时,需在BIU的地址加法器中进行逻辑地址到物理地址的变换,变换关系为:( )

More Related