第2章 80x86微处理器_第1页
第2章 80x86微处理器_第2页
第2章 80x86微处理器_第3页
第2章 80x86微处理器_第4页
第2章 80x86微处理器_第5页
已阅读5页,还剩65页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021年6月18日星期五1 第第2章章 80X86微处理器微处理器 汇编语言基础汇编语言基础 2.1.2 Intel 8086 CPU内部寄存器内部寄存器 2.2 存储器物理地址的形成存储器物理地址的形成 2.1.1 Intel 8086 CPU内部结构内部结构 接口技术基础接口技术基础 2.1.3 Intel 8086 微处理器引脚说明微处理器引脚说明 补充补充 Intel 8086 CPU工作时序工作时序 2021年6月18日星期五2 汇编语言基础汇编语言基础 2.1.2 Intel 8086 CPU内部寄存器内部寄存器 2.2 存储器物理地址的形成存储器物理地址的形成 2.1.1 In

2、tel 8086 CPU内部结构内部结构 微型计算机的结构微型计算机的结构 2021年6月18日星期五3 输入设备输入设备 控制器控制器 输出设备输出设备存储器存储器 运算器运算器 计算计算1+2+3 并不关心并不关心1+2 的中间结果!的中间结果! 2021年6月18日星期五4 2.1.2 Intel 8086内部寄存器内部寄存器 CPU中中为什么要使用寄存器为什么要使用寄存器 寄存器比存储器存取速度快寄存器比存储器存取速度快 使用灵活使用灵活(如暂存运算的中间数据如暂存运算的中间数据)、控制方便(如、控制方便(如IP) 寄存器的分类寄存器的分类 通用寄存器通用寄存器:传送和暂存数据;参与算

3、术逻辑运算并保:传送和暂存数据;参与算术逻辑运算并保 存运算结果;存运算结果; 段寄存器段寄存器:保存段地址,用于寻址时构成物理地址;:保存段地址,用于寻址时构成物理地址; 专用寄存器专用寄存器:CPU运行的辅助工具。运行的辅助工具。 用户编程时所用到的用户编程时所用到的CPU用户编程时所用到的用户编程时所用到的CPU 2021年6月18日星期五5 通通 用用 寄寄 存存 器器 类别类别16位位8位位名称名称作用作用 AXAH、AL累加器累加器常作隐含操作数,可通用常作隐含操作数,可通用 BXBH、BL基地址寄存器基地址寄存器常作地址指针,可通用常作地址指针,可通用 CXCH、CL计数器计数器

4、常存放计数值,可通用常存放计数值,可通用 DXDH、DL数据寄存器数据寄存器常与累加器配合,可通用常与累加器配合,可通用 SI无无源变址寄存器源变址寄存器保存源操作数地址保存源操作数地址 DI无无目的变址寄存器目的变址寄存器保存目的操作数地址保存目的操作数地址 SP无无栈顶指针栈顶指针只能保存堆栈栈顶地址只能保存堆栈栈顶地址 BP无无堆栈指针堆栈指针可保存堆栈任意位置地址可保存堆栈任意位置地址 堆栈指针堆栈指针 寄存器寄存器 数据数据 寄存器寄存器 变址变址 寄存器寄存器 2021年6月18日星期五6 累加器累加器AX 16位寄存器可以存储位寄存器可以存储2个字节的数据;个字节的数据; 例如,

5、数值例如,数值2008H存放于存放于AX累加器中。累加器中。 AX可分做两个可分做两个8位的寄存器使用,分别为位的寄存器使用,分别为AH和和AL。 (AX)=2008H,则(,则(AH)=20H,(,(AL)=08H; BX、CX、DX类似。类似。 AX 0123456789101112131415 无符号数范围为无符号数范围为065535 有符号数范围为有符号数范围为-32768+32767 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 AHAL 2021年6月18日星期五7 数据寄存器数据寄存器AX、BX、CX和和DX 16位寄存器位寄存器 高低高低8位位可分为两个独立寄

6、存器使用;可分为两个独立寄存器使用; 主要用于暂存指令执行过程中的数据;主要用于暂存指令执行过程中的数据; 特殊用途特殊用途 AX:累加器累加器,ALU运算核心部件、某些指令的默认寄存器;运算核心部件、某些指令的默认寄存器; BX:基址寄存器基址寄存器,存放存储单元的有效地址;,存放存储单元的有效地址; CX:计数器计数器,串操作指令和循环指令中的默认计数器;,串操作指令和循环指令中的默认计数器; DX:与:与AX合用保存合用保存32位数据;位数据;I/O指令中存放端口地址。指令中存放端口地址。 2021年6月18日星期五8 变址寄存器变址寄存器SI、DI 16位寄存器;位寄存器; 常作为指针

7、常作为指针,存放存储单元有效地址,也可暂存数据;,存放存储单元有效地址,也可暂存数据; 特殊用法:特殊用法: SI、DI中保存的地址信息可以随着指令的执行而自动改变;中保存的地址信息可以随着指令的执行而自动改变; SI:源变址寄存器源变址寄存器,串操作中存放源串地址,默认,串操作中存放源串地址,默认DS段;段; DI:目的变址寄存器目的变址寄存器,串操作中存放目的串地址,默认,串操作中存放目的串地址,默认ES段;段; 该特殊用法只在字符串操作中有效该特殊用法只在字符串操作中有效,其它场合下作一般的指,其它场合下作一般的指 针寄存器使用;针寄存器使用; 2021年6月18日星期五9 堆栈指针寄存

8、器堆栈指针寄存器SP、BP 堆栈是一个先进后出的数据结构,栈底位堆栈是一个先进后出的数据结构,栈底位 置不变;置不变; 栈顶指针栈顶指针SP 其中始终存放栈顶单元的有效地址;其中始终存放栈顶单元的有效地址; 其值是其值是由出入栈指令自动更改由出入栈指令自动更改的,一的,一 般不允许随意对该寄存器赋值;般不允许随意对该寄存器赋值; 堆栈指针堆栈指针BP 其中数据一般作为地址进行访存;其中数据一般作为地址进行访存; 默认对应于默认对应于SS段段,可寻址堆栈中的任,可寻址堆栈中的任 何单元。何单元。 堆栈堆栈 栈底栈底 1 2 3 1 2 3 3 2 1 栈顶栈顶 2021年6月18日星期五10 段

9、段 寄寄 存存 器器 类别类别16位位8位位名称名称作用作用 段寄存器段寄存器 无无代码段段寄存器代码段段寄存器存放代码段段地址存放代码段段地址 无无数据段段寄存器数据段段寄存器存放数据段段地址存放数据段段地址 无无附加段段寄存器附加段段寄存器存放附加段段地址存放附加段段地址 无无堆栈段段寄存器堆栈段段寄存器存放堆栈段段地址存放堆栈段段地址 一段汇编语言程序一段汇编语言程序至少有一个逻辑段至少有一个逻辑段代码段,用于存放代码段,用于存放 代码;代码; 一段汇编语言程序一段汇编语言程序最多有最多有4个逻辑段个逻辑段1个代码段,个代码段,3个数据个数据 段,分别用于存放代码和数据;段,分别用于存放

10、代码和数据; CS DS ES SS 2021年6月18日星期五11 CS (Code Segment) 代码段代码段 用来存放要执行的用来存放要执行的指令序列指令序列; 段首地址段首地址用代码段寄存器用代码段寄存器CS来保存;来保存; 指令指针寄存器指令指针寄存器IP指示本段中的地址;指示本段中的地址; n将要执行的下条指令的有效地址;将要执行的下条指令的有效地址; CPU利用利用CS:IP形成存储单元的物理地址,以获取下形成存储单元的物理地址,以获取下 条要执行指令的代码。条要执行指令的代码。 2021年6月18日星期五12 DS (Data Segment) 数据段数据段 用来存放程序运

11、行所需要的数据;用来存放程序运行所需要的数据; 段首地址段首地址用数据段寄存器用数据段寄存器DS来保存;来保存; CPU利用利用DS:EA形成存储单元的物理地址,以获取形成存储单元的物理地址,以获取 数据段中的数据;数据段中的数据; nEA的形成方式详见第的形成方式详见第3章寻址方式的介绍。章寻址方式的介绍。 2021年6月18日星期五13 ES (Extra Segment) 附加段附加段 即即附加的数据段附加的数据段,保存程序运行所需要的数据;,保存程序运行所需要的数据; 段首地址段首地址用附加段寄存器用附加段寄存器ES来保存;来保存; CPU利用利用ES:EA形成存储单元的物理地址,以获

12、取附加形成存储单元的物理地址,以获取附加 段中的数据;段中的数据; 串操作指令串操作指令常将附加段常将附加段ES作为目的操作数的存放区域。作为目的操作数的存放区域。 2021年6月18日星期五14 SS (Stack Segment) 堆栈堆栈 用于存储程序运行中用于存储程序运行中需要临时保护的数据需要临时保护的数据; 段首地址段首地址用堆栈段寄存器用堆栈段寄存器SS来保存;来保存; 堆栈指针寄存器堆栈指针寄存器SP保存堆栈栈顶的有效地址;保存堆栈栈顶的有效地址; CPU利用利用SS:SP对堆栈栈顶单元进行操作;对堆栈栈顶单元进行操作; 利用利用SS:BP对堆栈中的任一单元进行操作。对堆栈中的

13、任一单元进行操作。 8086/8088段寄存器与提供段内移地址的 寄存器之间的 段寄存器段寄存器 提供段内偏移地址的寄存器提供段内偏移地址的寄存器 CS IP DS BX、SI、DI或一个或一个16位数位数 SS SP或或BP ES DI(用于字符串操作指令用于字符串操作指令) 2021年6月18日星期五16 专专 用用 寄寄 存存 器器 类别类别16位位8位位名称名称作用作用 专用专用 寄存器寄存器 IP无无指令指针寄存指令指针寄存 器器 保存将要取出的指令有效地址保存将要取出的指令有效地址 FLAG 无无标志寄存器标志寄存器保存保存CPU当前的状态标志信息当前的状态标志信息 指令指针指令指

14、针IP 保存将要执行指令的有效地址;保存将要执行指令的有效地址; 该寄存器的内容是该寄存器的内容是不允许人为更改不允许人为更改的,通过指令的执行的,通过指令的执行 而自动改变。而自动改变。 标志寄存器标志寄存器FLAG 该寄存器是利用其中的该寄存器是利用其中的每一位每一位来反映当前来反映当前CPU执行指令执行指令 的结果或控制指令执行形式。的结果或控制指令执行形式。 2021年6月18日星期五17 16位标志寄存器位标志寄存器 仅用到其中仅用到其中9位,且按位使用;位,且按位使用; 6位状态标志位:反映位状态标志位:反映ALU的执行状态;的执行状态; n按照按照ALU指令执行的结果设置各状态标

15、志位;指令执行的结果设置各状态标志位; 3位控制标志位:控制位控制标志位:控制CPU的某些功能;的某些功能; 1514131211109876543210 OFDFIFTFSFZFAFPFCF 进位标志进位标志 零标志零标志 符号标志符号标志 溢出标志溢出标志 方向标志方向标志 中断允许标志中断允许标志 陷阱标志陷阱标志 奇偶标志奇偶标志 辅助进位标志辅助进位标志 2021年6月18日星期五18 常用的状态标志位常用的状态标志位 进位标志位进位标志位CF 运算结果有进位或借位时,运算结果有进位或借位时,CF=1,否则,否则CF=0; 溢出标志位溢出标志位OF 运算结果超出了数据表示范围时,运算

16、结果超出了数据表示范围时,OF=1,否则,否则OF=0; 符号标志位符号标志位SF 运算结果为负数时,运算结果为负数时,SF=1,否则,否则SF=0; 零标志位零标志位ZF 运算结果为运算结果为0时,时,ZF=1,否则,否则ZF=0; 标志位设置标志位设置 例例1:3AH + 7CH例例2:0AAH + 7CH 2021年6月18日星期五19 3A H = 0011 1010 B +) 7C H = 0111 1100 B 1011 0110 B = 0B6H CF = SF = ZF = OF = 1 0 10 AA H = 1010 1010 B +) 7C H = 0111 1100 B

17、 1 0010 0110 B = (1)26H CF = SF = ZF = OF = 0 1 00 2021年6月18日星期五20 2.2 存储器物理地址的形成存储器物理地址的形成 2.2.1 存储器的结构存储器的结构 2.2.2 物理地址的形成物理地址的形成 2.2.3 存储器单元的地址和内容存储器单元的地址和内容 2021年6月18日星期五21 2.2.1 存储器结构存储器结构 主存储器用于存放系统运行所需要的所有的程序和数据;主存储器用于存放系统运行所需要的所有的程序和数据; 开机后自动从开机后自动从BIOS和辅存中调入数据,掉电后丢失;和辅存中调入数据,掉电后丢失; 存储器的基本单位

18、是存储器的基本单位是存储单元存储单元; 每个存储单元的大小可以是一个字节,或一个字;每个存储单元的大小可以是一个字节,或一个字; n8086 CPU的主存是以字节进行组织的;的主存是以字节进行组织的; 每个存储单元都有一个唯一的编号,称为每个存储单元都有一个唯一的编号,称为物理地址物理地址,用于,用于 CPU访问;访问; 存储器容量单位存储器容量单位 bit、Byte、KB、MB、GB、TB、EB、PB、 2021年6月18日星期五22 物理地址(物理地址(Physical Address,PA) 将将整个存储器整个存储器从第一单元到最后一个单元从第一单元到最后一个单元按按 顺序编号顺序编号所

19、得到的地址称为物理地址;所得到的地址称为物理地址; 物理地址可以物理地址可以唯一唯一地标识每一个存储单元;地标识每一个存储单元; CPU访问主存时,必须通过地址总线输出所访问主存时,必须通过地址总线输出所 要访问存储单元的的物理地址。要访问存储单元的的物理地址。 系统的最大主存容量系统的最大主存容量取决于地址总线的取决于地址总线的 位数;位数; 主存储器主存储器 000B 001B 010B 111B 2021年6月18日星期五23 CPU对主存储器的访问过程对主存储器的访问过程 1.CPU通过通过控制总线控制总线,发出访存信号,通知主存准备数据读写;,发出访存信号,通知主存准备数据读写; 2

20、.CPU通过通过地址总线地址总线,发出存储单元的地址;,发出存储单元的地址; 主存储器接收到地址后,译码,寻址正确的存储单元;主存储器接收到地址后,译码,寻址正确的存储单元; 3.CPU通过通过控制总线控制总线,发出读写的命令;,发出读写的命令; 主存储器将准备执行读写操作;主存储器将准备执行读写操作; 4.CPU通过通过数据总线数据总线,读出或写入的数据;,读出或写入的数据; CPU 主存主存 数据总线数据总线 地址总线地址总线 读写控制线读写控制线 访存控制线访存控制线 8086需要需要4个时钟周期,个时钟周期, 80486只需要只需要1个时钟周期。个时钟周期。 读读 PA 1100 01

21、10 允许允许 1100 0110 2021年6月18日星期五24 2.2.2 8086 CPU对主存的分段管理模式对主存的分段管理模式 分段的原因分段的原因 16位系统中,地址总线位系统中,地址总线20根根 可寻址主存空间为可寻址主存空间为220=1MB 物理地址区间物理地址区间00FFFFFH 16位系统中,机器字长位系统中,机器字长16位位 运算的最大位数、指针等只有运算的最大位数、指针等只有16位位 可直接寻址的空间为可直接寻址的空间为216=64KB 直接使用的地址区间直接使用的地址区间00FFFFH 因此,采用因此,采用分段方式分段方式管理和访问主存。管理和访问主存。 2021年6

22、月18日星期五25 存储器的分段管理存储器的分段管理 分段的思想:分段的思想: 将存储器划分成将存储器划分成若干区间若干区间,标记起始地址,区间内用较,标记起始地址,区间内用较 少位数的地址寻址;少位数的地址寻址; 用用两个两个16位地址位地址合成的方法形成合成的方法形成一个一个20位的物理地址位的物理地址; n段地址、段内偏移地址(有效地址段地址、段内偏移地址(有效地址) 关于分段的规定关于分段的规定 段的起始段的起始:每个逻辑段的起始地址必须是每个逻辑段的起始地址必须是16的倍数。的倍数。 即:即:xxxx xxxx xxxx xxxx 0000B 或:或:xxxx0H 段的容量段的容量:

23、每个逻辑段的最大容量可以达到每个逻辑段的最大容量可以达到64KB。 n注意:注意:各逻辑段之间是可以重叠的各逻辑段之间是可以重叠的。 主存实际上并没有从物理主存实际上并没有从物理 上分段,段的划分只是来上分段,段的划分只是来 自于自于CPUCPU的管理!的管理! 区间不固定,随机划分!区间不固定,随机划分! 2021年6月18日星期五26 存储器的分段示意存储器的分段示意 物理地址物理地址 00000H 12340H 12341H 22000H 2233FH 0FFFFFH 主存储器主存储器 段起始单元段起始单元 逻辑段逻辑段1 1 段地址为:段地址为:1234H1234H 保存于段寄存器中保

24、存于段寄存器中 偏移地址偏移地址 0000H 0001H 0002H 0FFFFH 段起始单元段起始单元 逻辑段逻辑段2 2 段地址为:段地址为:2200H2200H 保存于段寄存器中保存于段寄存器中 偏移地址偏移地址 0000H 0001H 0002H 0FFFFH 015 段内偏移地址 段寄存器 19034 0000 段地址左移4位 20位物理地址 190 图3.3物理地址的形成 2021年6月18日星期五28 关于分段关于分段 1MB空间最多能分成多少个段?空间最多能分成多少个段? 逻辑段最密集的划分方式逻辑段最密集的划分方式 每隔每隔16个存储单元开始一个新段,各段都是重叠的;个存储单

25、元开始一个新段,各段都是重叠的; 所以,所以,1MB最多可以有最多可以有2201621664K 个段个段 1MB空间最少能分成多少个段?空间最少能分成多少个段? 逻辑段最松散的划分方式逻辑段最松散的划分方式 每隔每隔 64K 个存储单元开始一个新段,各段不重叠;个存储单元开始一个新段,各段不重叠; 所以,所以,1MB最少可以有最少可以有 22021616 个段个段 2021年6月18日星期五29 分段模式下主存储器的地址类型分段模式下主存储器的地址类型 物理地址物理地址 每个存储单元在整个存储器中的唯一标识;每个存储单元在整个存储器中的唯一标识; 段地址段地址 逻辑段首单元的物理地址的高逻辑段

26、首单元的物理地址的高16位;位; 有效地址有效地址EA(段内偏移地址)(段内偏移地址) 该存储单元相对于段首单元的偏移量;该存储单元相对于段首单元的偏移量; 该单元物理地址该单元物理地址 = 有效地址有效地址 + 段首单元的物理地址;段首单元的物理地址; 逻辑地址逻辑地址 由段地址和有效地址表示的存储单元地址形式;由段地址和有效地址表示的存储单元地址形式; 某单元某单元A的物理地址为的物理地址为23000H 若段起始地址为若段起始地址为20000H,即段地址为,即段地址为2000H 则则A的有效地址为的有效地址为3000H 该段中,该段中,A的逻辑地址可表示为的逻辑地址可表示为2000H:30

27、00H 2021年6月18日星期五30 任意一个物理地址均可以用任意一个物理地址均可以用段地址段地址和和偏移地址偏移地址两部分形成;两部分形成; 逻辑地址逻辑地址:“段地址段地址 :偏移地址:偏移地址” 分段的不同,可导致分段的不同,可导致同一个物理地址对应多个不同的逻辑同一个物理地址对应多个不同的逻辑 地址地址。 物理地址物理地址(PA) = 段地址段地址16 + 偏移地址偏移地址 段地址段地址:段起始单元物理地址的高:段起始单元物理地址的高16位;位; 偏移地址偏移地址:也可称为:也可称为有效地址有效地址(EA) ,指实际单元和段,指实际单元和段 起始单元之间的距离。起始单元之间的距离。

28、将段地址左移将段地址左移4个二进制位个二进制位 物理地址的形成物理地址的形成 2021年6月18日星期五31 2.1.1 Intel 8086 CPU内部结构内部结构 功能上,包括运算器和控制器两大部件;功能上,包括运算器和控制器两大部件; 运算器:负责所有的算术逻辑运算;运算器:负责所有的算术逻辑运算; 控制器:负责微机系统的所有控制功能;控制器:负责微机系统的所有控制功能; 结构上,包括执行单元结构上,包括执行单元EU和总线接口单元和总线接口单元BIU两个模块;两个模块; 执行单元执行单元EU n包括指令译码部件、包括指令译码部件、ALU和通用寄存器组,负责指令译码和执行;和通用寄存器组,

29、负责指令译码和执行; 总线接口单元总线接口单元BIU n包括总线控制逻辑和专用的寄存器,负责包括总线控制逻辑和专用的寄存器,负责CPU与外界的通信联络;与外界的通信联络; 2021年6月18日星期五32 执行部件执行部件 (EU) 执行部分执行部分 控制电路控制电路 ALU 标志寄存器标志寄存器 AH AL BH BL CH CL DH DL SP BP SI DI 通用通用 寄存器寄存器 16位位DB 1 2 3 4 5 6 内部暂存器内部暂存器 IP ES SS DS CS 输入输入/输出输出 控制电路控制电路 外部总线外部总线 地址地址 加法加法 器器 指令队列指令队列 总线接口部件总线

30、接口部件 (BIU) 20位位AB 16位位DB 8位位 QB 8086/8088 CPU功能结构功能结构 2021年6月18日星期五33 1. 执行部件执行部件EU(Execution Unit) 功能功能 负责所有指令的译码和执行;负责所有指令的译码和执行; (1) 获取指令代码,获取指令代码,译码译码后产生控制信号;后产生控制信号; (2) 进行算术和逻辑运算,并根据运算结果进行算术和逻辑运算,并根据运算结果修改标志寄存修改标志寄存 器状态位状态器状态位状态; (3) 为为BIU提供提供需要传送的数据需要传送的数据和和16位有效地址位有效地址。 组成组成 寄存器组寄存器组 算术逻辑单元算

31、术逻辑单元ALU EU控制部件控制部件 2021年6月18日星期五34 算术逻辑单元算术逻辑单元ALU 16位的运算器,负责所有的指令执行期间的运算;位的运算器,负责所有的指令执行期间的运算; 算术运算:加、减、乘、除算术运算:加、减、乘、除 逻辑运算:与、或、非、异或逻辑运算:与、或、非、异或 8086 CPU的的ALU可完成可完成8位、位、16位数据的运算;位数据的运算; 计算指令执行时所需要的存储单元的有效地址;计算指令执行时所需要的存储单元的有效地址; 针对相对寻址、基址加变址寻址、相对基址加变址寻址针对相对寻址、基址加变址寻址、相对基址加变址寻址 这三种寻址方式而言;这三种寻址方式而

32、言; 2021年6月18日星期五35 EU控制部件控制部件 功能功能 负责从负责从BIU的指令队列中取出指令;的指令队列中取出指令; 对指令操作码进行译码分析;对指令操作码进行译码分析; 按照按照工作时序工作时序向相关的部件发送相应的控制信号;向相关的部件发送相应的控制信号; 组成组成 指令寄存器、指令译码器指令寄存器、指令译码器 时序控制部件时序控制部件 微操作控制部件微操作控制部件 2021年6月18日星期五36 2. 总线接口部件总线接口部件BIU(Bus Interface Unit) 功能功能 负责负责CPU所有的访问操作所有的访问操作; n段式方式访问主存;直接译码的方式访问段式方

33、式访问主存;直接译码的方式访问I/O端口;端口; (1) 从主存中从主存中读取指令读取指令; (2) 计算并形成所要访问计算并形成所要访问主存的物理地址主存的物理地址; (3) 访问主存、访问访问主存、访问I/O,以获取数据或保存结果。,以获取数据或保存结果。 组成组成 段寄存器和指令指针寄存器等段寄存器和指令指针寄存器等 地址加法器地址加法器 指令队列缓冲器指令队列缓冲器 总线控制逻辑总线控制逻辑 2021年6月18日星期五37 指令队列缓冲器指令队列缓冲器 功能功能 存放预取的指令,共存放预取的指令,共6字节字节容量;容量; 8088 CPU的指令队列缓冲器为的指令队列缓冲器为4字节字节容

34、量;容量; 使用规则使用规则 先进先出先进先出,按顺序送入,按顺序送入EU执行;执行; 提供提供EU执行的所有指令。执行的所有指令。 工作过程工作过程 顺序执行程序时,顺序执行程序时,有空闲即自动取指有空闲即自动取指; 程序发生转移时,清除缓冲器内容,重新获取指令。程序发生转移时,清除缓冲器内容,重新获取指令。 2021年6月18日星期五38 总结:分段管理模式下的访存总结:分段管理模式下的访存 CPU要访问存储器必须提供物理地址要访问存储器必须提供物理地址; 一般使用一般使用段寄存器段寄存器与与指针寄存器指针寄存器来共同表示逻辑地址;来共同表示逻辑地址; 在在CPU内部由内部由地址加法器地址

35、加法器完成运算,转换成物理地址输完成运算,转换成物理地址输 出访问主存储器;出访问主存储器; 代码段段寄存器代码段段寄存器CS指针寄存器为指针寄存器为IP。 数据段段寄存器数据段段寄存器DS指针寄存器指针寄存器一般一般用用BX、SI、DI。 附加段段寄存器附加段段寄存器ES指针寄存器指针寄存器一般一般用用DI(字符串操作字符串操作)。 堆栈段段寄存器堆栈段段寄存器SS指针寄存器指针寄存器SP指向栈顶,指针寄存指向栈顶,指针寄存 器器BP指向栈内任意位置。指向栈内任意位置。 2021年6月18日星期五39 地址加法器地址加法器 功能功能 形成形成16位系统的位系统的20位主存地址。位主存地址。

36、取指令取指令 PA=(CS)16 + IP 取数据取数据 PA=(DS/SS/ES)16 + 有效地址有效地址 访问访问I/O端口时不需进行运算。端口时不需进行运算。 2021年6月18日星期五40 指针寄存器指针寄存器 指针寄存器指针寄存器 其值可作为存储单元地址,用于指令或其值可作为存储单元地址,用于指令或CPU内部执行时寻内部执行时寻 址使用的寄存器。址使用的寄存器。 其值改变,所寻址到得存储单元也会不同,因此形象地称其值改变,所寻址到得存储单元也会不同,因此形象地称 之为指针。之为指针。 汇编语言程序中,凡是和地址有关的都可以认为是指针;汇编语言程序中,凡是和地址有关的都可以认为是指针

37、; 寄存器、立即数、变量、标号寄存器、立即数、变量、标号 能够标示一个存储单元地址,用于寻址;能够标示一个存储单元地址,用于寻址; 2021年6月18日星期五41 执行部件执行部件 (EU) 执行部分执行部分 控制电路控制电路 ALU 标志寄存器标志寄存器 AH AL BH BL CH CL DH DL SP BP SI DI 通用通用 寄存器寄存器 16位位DB 1 2 3 4 5 6 内部暂存器内部暂存器 IP ES SS DS CS 输入输入/输出输出 控制电路控制电路 外部总线外部总线 地址地址 加法加法 器器 指令队列指令队列 总线接口部件总线接口部件 (BIU) 20位位AB 16

38、位位DB 8位位 QB 8086/8088 CPU功能结构功能结构 2021年6月18日星期五42 物理地址的形成物理地址的形成 2021年6月18日星期五43 2.2.3 存储单元中数据的存取方法存储单元中数据的存取方法 基本原则:基本原则:高高低低原则高高低低原则 即即低地址低地址单元存放单元存放低字节低字节数据,数据, 高地址高地址单元存放单元存放高字节高字节数据。数据。 例如,存储器如右图所示例如,存储器如右图所示 将一个将一个字节数据字节数据12H存于存于12340H单元中;单元中; 将一个将一个字数据字数据3456H存于存于12341H单元中;单元中; 读取读取12342H单元中的

39、字数据为:单元中的字数据为: 注意:一般数据存储遵循注意:一般数据存储遵循“数据对齐规则数据对齐规则”; 字数据存放在偶地址单元。字数据存放在偶地址单元。 12340H 12341H 12342H 12343H 12344H 12 56 34 10 20 1034H 2021年6月18日星期五44 练习题练习题 1. 16位位CPU在取指令时,需要用到的寄存器有在取指令时,需要用到的寄存器有和和 ; 2. 访问访问堆栈段栈顶单元堆栈段栈顶单元要由要由段寄存器和段寄存器和寄存器组合寄存器组合 来寻址,访问来寻址,访问堆栈段中的单元堆栈段中的单元要由要由段寄存器和段寄存器和寄寄 存器组合来寻址;存

40、器组合来寻址; 3. 访问访问数据段中的单元数据段中的单元要由要由 段寄存器和段寄存器和 寄寄 存器组合来寻址;存器组合来寻址; 4. 在在16位微机系统中,一个程序位微机系统中,一个程序最多最多能同时使用能同时使用个数据段。个数据段。 CSIP SSSP SSBP DSBX、SI、DI 3 DS、ES、SS 2021年6月18日星期五45 接口技术基础接口技术基础 2.1.3 Intel 8086 微处理器引脚说明微处理器引脚说明 补充补充 Intel 8086 CPU工作时序工作时序 2021年6月18日星期五46 2.1.3 Intel 8086 微处理器引脚说明微处理器引脚说明 最小模

41、式最小模式 仅有仅有8086 CPU一个处理器,产生系统所需的所有控制信号;一个处理器,产生系统所需的所有控制信号; 8086 CPU始终占用总线控制权始终占用总线控制权,其他模块使用需要申请;,其他模块使用需要申请; 最大模式:最大模式:系统内包含多个处理器系统内包含多个处理器 8086 CPU为为主处理器主处理器,和其他,和其他协处理器协处理器构成多处理器系统;构成多处理器系统; n专用于数值计算的协处理器专用于数值计算的协处理器8087 n专用于输入输出操作的协处理器专用于输入输出操作的协处理器8089 总线控制逻辑由总线控制器总线控制逻辑由总线控制器8288产生和控制;产生和控制; n

42、8086 CPU输出传送类型的编码,由输出传送类型的编码,由8288转换为系统总线控制命令;转换为系统总线控制命令; 2021年6月18日星期五47 8086/8088 CPU芯片引脚芯片引脚 Intel 8086 CPU采用采用40条引脚,双列直插式(条引脚,双列直插式(DIP)封装;)封装; 8086 CPU有有16根数据总线,可一次性向外传送根数据总线,可一次性向外传送16位信息;位信息; 故称为故称为16位微处理器;位微处理器; 40根引脚可分做四部分:根引脚可分做四部分: 地址总线地址总线 数据总线;数据总线; n采用采用分时复用分时复用设置地址数据总线设置地址数据总线 控制总线;控

43、制总线; 时钟和电源线;时钟和电源线; 8086CPU 2021年6月18日星期五48 8086 CPU 引脚图引脚图 33号引脚号引脚MN/MX# 工作模式选择控制线工作模式选择控制线 高电平高电平最小模式最小模式 低电平低电平最大模式最大模式 其余总线可分为其余总线可分为2部分部分 两种模式公用总线两种模式公用总线 与工作模式相关总线与工作模式相关总线 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21

44、GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND VCC(5V) AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RD HOLD(RQ/GT0) HLDA(RQ/GT1) WR(LOCK) M/IO(S2) DT/R(S1) DEN(S0) ALE(QS0) INTA(QS1) TEST READY RESET 8086 2021年6月18日星期五49 8086 CPU引脚分类引脚分类 两种模式公用总线两种模式公用总线 地址地址/

45、数据数据复用复用总线和地址总线和地址/状态状态复用复用总线;总线; 高高8位数据总线允许位数据总线允许/状态线;状态线; 控制总线;控制总线; 与工作模式相关总线与工作模式相关总线 总线控制信号;总线控制信号; 写控制总线;写控制总线; 总线状态控制总线;总线状态控制总线; 中断响应、队列状态信号中断响应、队列状态信号 2 21616、3939号引脚号引脚 35353838号引脚号引脚 3434号引脚号引脚 1 1、1919、2020、4040号引脚号引脚 1717、1818、2121号引脚号引脚 2222、2323、3232号引脚号引脚 3030、3131号引脚号引脚 2929号引脚号引脚

46、26262828号引脚号引脚 2424、2525号引脚号引脚 2021年6月18日星期五50 地址总线与数据总线地址总线与数据总线 地址地址/数据数据复用复用总线总线AD15AD0: 每个总线周期开始每个总线周期开始(T1时刻时刻),为,为16位地址总线;位地址总线; 其余时间为其余时间为16位数据总线;位数据总线; 地址地址/状态状态复用复用总线总线A19A16/S6S3: 每个总线周期开始每个总线周期开始(T1时刻时刻),传送高,传送高4位地址总线;位地址总线; 其余时间为其余时间为4位状态总线,指示位状态总线,指示CPU的状态;的状态; nS4和和S3:现行使用哪个段寄存器;:现行使用哪

47、个段寄存器; nS5 :中断允许标志位状态(:中断允许标志位状态(IF);); nS6:指示是否:指示是否8086使用总线,使用总线,0是,是,1否否 。 S4S3段段R 00ES 01SS 10CS 11DS 2 21616、3939号引脚号引脚 35353838号引脚号引脚 2021年6月18日星期五51 高高8位数据总线允许位数据总线允许/状态线状态线BHE#/S7 在在T1时刻,作为时刻,作为BHE#信号信号 BHE#为低电平时,允许使用高为低电平时,允许使用高8位数据总线位数据总线D15D8; BHE#与与A0结合,决定数据访问类型;结合,决定数据访问类型; 其余时间,作为其余时间,

48、作为S7状态信号,状态信号, 8086 CPU对对S7没有定义。没有定义。 3434号引脚号引脚 2021年6月18日星期五52 时钟、电源线时钟、电源线 时钟信号时钟信号CLK 输入总线;输入总线; 8086 CPU需要占空比需要占空比(高低电平比高低电平比)为为1:3的基本定时脉冲;的基本定时脉冲; 电源信号电源信号Vcc 接正电压(接正电压(+5V0.5V);); 地线地线GND 输入地线;输入地线; 共两条接地线。共两条接地线。 1 1、1919、2020、4040号引脚号引脚 2021年6月18日星期五53 中断控制总线中断控制总线 可屏蔽中断请求信号可屏蔽中断请求信号INTR 输入

49、总线,引入输入总线,引入可屏蔽中断源可屏蔽中断源的中断请求信号;的中断请求信号; 非屏蔽中断请求信号非屏蔽中断请求信号NMI 输入总线,引入输入总线,引入非可屏蔽中断非可屏蔽中断请求信号,请求信号,上升沿有效上升沿有效; 复位信号复位信号RESET 输入总线,高电平时,输入总线,高电平时,CPU停止当前操作,初始化内部寄停止当前操作,初始化内部寄 存器,并从物理地址为存器,并从物理地址为0FFFF0H的单元开始执行程序。的单元开始执行程序。 1717、1818、2121号引脚号引脚 2021年6月18日星期五54 读写控制总线读写控制总线 读控制信号读控制信号RD# 三态、输出总线,低电平有效

50、;三态、输出总线,低电平有效; 由由M/IO#的状态决定是读存储器还是的状态决定是读存储器还是I/O设备设备 ; 等待控制信号等待控制信号READY 输入总线,决定是否需要插入等待周期输入总线,决定是否需要插入等待周期Tw以延长一次以延长一次 总线操作,总线操作,低电平时插入低电平时插入Tw状态状态; 等待测试控制信号等待测试控制信号TEST# 输入总线,低电平时结束等待状态,继续执行指令;输入总线,低电平时结束等待状态,继续执行指令; 与与WAIT指令结合使用,决定指令结合使用,决定WAIT指令是否结束;指令是否结束; 2222、2323、3232号引脚号引脚 2021年6月18日星期五55

51、 总线控制总线总线控制总线 最小模式:最小模式:总线保持请求信号总线保持请求信号HOLD、总线保持响应信号、总线保持响应信号HLDA; HOLD为请求输入信号,为请求输入信号,HLDA为响应输出信号;为响应输出信号; 在在8086 CPU与与DMAC之间转移总线的使用权;之间转移总线的使用权; 最大模式:最大模式:请求请求/允许总线访问控制信号允许总线访问控制信号RQ#/GT0#和和RQ#/GT1# ; 控制控制协处理器协处理器与与8086 CPU之间总线使用权的转移;之间总线使用权的转移; RQ#请求输入信号;请求输入信号;GT#响应输出信号;响应输出信号; n每根都是双向控制信号,每根都是

52、双向控制信号,RQ#/GT0#的优先权较高;的优先权较高; 3030、3131号引脚号引脚 2021年6月18日星期五56 写控制总线写控制总线 最小模式:写控制信号最小模式:写控制信号WR#; 输出总线,三态,低电平有效;输出总线,三态,低电平有效; 由由M/IO#的状态决定是写存储器还是的状态决定是写存储器还是I/O设备设备 ; 最大模式:总线封锁信号最大模式:总线封锁信号LOCK#; 输出总线,三态,低电平有效;输出总线,三态,低电平有效; 用于封锁其他主设备占用总线的请求,以保证某些操作用于封锁其他主设备占用总线的请求,以保证某些操作 的完整性;的完整性; 可使用前缀指令可使用前缀指令

53、LOCK来设置该信号;来设置该信号; 2929号引脚号引脚 2021年6月18日星期五57 总线状态控制总线总线状态控制总线 最小模式:数据允许信号最小模式:数据允许信号DEN#、数据发送、数据发送/接收控制信号接收控制信号 DT/R#、存储器、存储器/IO控制信号控制信号M/IO#; DEN#:三态输出总线,作为系统总线收发器的选通信号;:三态输出总线,作为系统总线收发器的选通信号; DT/R#:三态输出总线,区分:三态输出总线,区分CPU的输入的输入/输出操作;输出操作; M/IO#:输出总线,区分:输出总线,区分CPU访问存储器还是访问存储器还是I/O端口;端口; 最大模式:总线周期状态

54、信号最大模式:总线周期状态信号S2#、S1#、S0#; 三态输出总线;三态输出总线; 反映反映8086 CPU外部总线周期的操作类型;外部总线周期的操作类型; 总线控制器总线控制器8288对其进行译码,产生需要的控制信号;对其进行译码,产生需要的控制信号; 26262828号引脚号引脚 2021年6月18日星期五58 总线周期状态信号总线周期状态信号 S2#、S1#、S0# 总线周期的总线周期的T4周期周期内,内, S2#、S1#、S0#的变化指的变化指 示一个示一个新的总线周期新的总线周期的的 开始;开始; T3或或Tw周期周期内,内,S2#、 S1#、S0#返回返回无效状态无效状态, 表示

55、一个总线周期的结表示一个总线周期的结 束;束; DMA方式方式下,下,S2#、S1#、 S0#处于处于高阻状态高阻状态; S2# S1# S0# 操作类型操作类型控制信号控制信号 000中断响应中断响应INTA# 001读读I/O端口端口IORC# 010写写I/O端口、端口、 超前写超前写I/O端口端口 IOWC#、 AIOWC# 011暂停暂停无无 100取指令取指令MRDC# 101读存储器读存储器MRDC# 110写存储器、写存储器、 超前写存储器超前写存储器 MWTC#、 AMWC# 111无效无效无无 2021年6月18日星期五59 中断响应、队列状态信号中断响应、队列状态信号 最

56、小模式:中断响应信号最小模式:中断响应信号INTA#、地址锁存允许信号、地址锁存允许信号ALE INTA#:输出总线,低电平有效,用于:输出总线,低电平有效,用于响应响应INTR请求请求; ALE:输出总线,:输出总线,T1周期有效,用于将地址周期有效,用于将地址/数据复用总数据复用总 线上的地址信息保存至线上的地址信息保存至锁存器锁存器中;中; 最大模式:最大模式: 指令队列状态信号指令队列状态信号QS1、QS2; 输出总线,用于指示输出总线,用于指示 CPU内指令队列的状态;内指令队列的状态; QS1QS0含义含义 00空操作空操作 01 从队列中取出指令的第一个字节从队列中取出指令的第一

57、个字节 10队列空队列空 11从队列中取出指令的从队列中取出指令的后续字节后续字节 2424、2525号引脚号引脚 2021年6月18日星期五60 补充补充 Intel 8086 CPU工作时序工作时序 系统的复位和启动操作系统的复位和启动操作 最小模式下的总线读操作最小模式下的总线读操作 最小模式下的总线写操作最小模式下的总线写操作 2021年6月18日星期五61 CPU与主存储器的连接与主存储器的连接 CPUMM 地址地址 锁存器锁存器 AD15AD0 A19A16 /S6S3 A19A0 D15D0 T1时刻时刻 T2T4时刻时刻 T1T4时刻时刻 ALE 总线总线 收发器收发器 DEN

58、 2021年6月18日星期五62 1、系统的复位和启动操作、系统的复位和启动操作 当当8086 CPU的的RESET引脚引脚上检测上检测 到有上升沿时,进入复位时序;到有上升沿时,进入复位时序; 时钟脉冲时钟脉冲CLK同步外部复位信号同步外部复位信号 内部内部RESET在外部在外部RESET有效有效 后的时钟周期上升沿有效;后的时钟周期上升沿有效; 复位状态复位状态 地址线浮空,地址线浮空,ALE、HLDA信号信号 无效,其他控制信号保持半个时无效,其他控制信号保持半个时 钟周期高电平,再浮空;钟周期高电平,再浮空; 内部寄存器清零(内部寄存器清零(CS除外,置除外,置 为为0FFFFH),指令队列清空。),指令队列清空。 2021年6月18日星期五63 2、最小模式下的总线读操作、最小模式下的总线读操作 T1 数据数据/地址复用线发地址信息地址复用线发地址信息 在在ALE 控制下,地址信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论