1、2022年12月7日星期三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工作时序工作时序2022年12月7日星期三2汇编语言基础汇编语言基础2.1.2 Intel 8086 CPU内部寄存器内部寄存器2.2 存储器物理地址的形成存储器物理地址的形成2.1.1 Intel 8086 CPU内
2、部结构内部结构微型计算机的结构微型计算机的结构2022年12月7日星期三3输入设备输入设备控制器控制器输出设备输出设备存储器存储器运算器运算器计算计算1+2+3并不关心并不关心1+2的中间结果!的中间结果!2022年12月7日星期三42.1.2 Intel 8086内部寄存器内部寄存器 CPU中中为什么要使用寄存器为什么要使用寄存器寄存器比存储器存取速度快寄存器比存储器存取速度快使用灵活使用灵活(如暂存运算的中间数据如暂存运算的中间数据)、控制方便(如、控制方便(如IP)寄存器的分类寄存器的分类通用寄存器通用寄存器:传送和暂存数据;参与算术逻辑运算并保:传送和暂存数据;参与算术逻辑运算并保存运
3、算结果;存运算结果;段寄存器段寄存器:保存段地址,用于寻址时构成物理地址;:保存段地址,用于寻址时构成物理地址;专用寄存器专用寄存器:CPU运行的辅助工具。运行的辅助工具。用户编程时所用到的用户编程时所用到的CPU用户编程时所用到的用户编程时所用到的CPU2022年12月7日星期三5通通 用用 寄寄 存存 器器类别类别16位位8位位名称名称作用作用 AXAH、AL累加器累加器常作隐含操作数,可通用常作隐含操作数,可通用 BXBH、BL基地址寄存器基地址寄存器常作地址指针,可通用常作地址指针,可通用 CXCH、CL计数器计数器常存放计数值,可通用常存放计数值,可通用 DXDH、DL数据寄存器数据
4、寄存器常与累加器配合,可通用常与累加器配合,可通用 SI无无源变址寄存器源变址寄存器保存源操作数地址保存源操作数地址 DI无无目的变址寄存器目的变址寄存器保存目的操作数地址保存目的操作数地址 SP无无栈顶指针栈顶指针只能保存堆栈栈顶地址只能保存堆栈栈顶地址 BP无无堆栈指针堆栈指针可保存堆栈任意位置地址可保存堆栈任意位置地址堆栈指针堆栈指针寄存器寄存器数据数据寄存器寄存器变址变址寄存器寄存器2022年12月7日星期三6累加器累加器AX 16位寄存器可以存储位寄存器可以存储2个字节的数据;个字节的数据;例如,数值例如,数值2008H存放于存放于AX累加器中。累加器中。AX可分做两个可分做两个8位
5、的寄存器使用,分别为位的寄存器使用,分别为AH和和AL。(AX)=2008H,则(,则(AH)=20H,(,(AL)=08H;BX、CX、DX类似。类似。AX0123456789101112131415无符号数范围为无符号数范围为065535有符号数范围为有符号数范围为-32768+327670 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0AHAL2022年12月7日星期三7数据寄存器数据寄存器AX、BX、CX和和DX16位寄存器位寄存器高低高低8位位可分为两个独立寄存器使用;可分为两个独立寄存器使用;主要用于暂存指令执行过程中的数据;主要用于暂存指令执行过程中的数据;特殊用途特
6、殊用途AX:累加器累加器,ALU运算核心部件、某些指令的默认寄存器;运算核心部件、某些指令的默认寄存器;BX:基址寄存器基址寄存器,存放存储单元的有效地址;,存放存储单元的有效地址;CX:计数器计数器,串操作指令和循环指令中的默认计数器;,串操作指令和循环指令中的默认计数器;DX:与:与AX合用保存合用保存32位数据;位数据;I/O指令中存放端口地址。指令中存放端口地址。2022年12月7日星期三8变址寄存器变址寄存器SI、DI16位寄存器;位寄存器;常作为指针常作为指针,存放存储单元有效地址,也可暂存数据;,存放存储单元有效地址,也可暂存数据;特殊用法:特殊用法:SI、DI中保存的地址信息可
7、以随着指令的执行而自动改变;中保存的地址信息可以随着指令的执行而自动改变;SI:源变址寄存器源变址寄存器,串操作中存放源串地址,默认,串操作中存放源串地址,默认DS段;段;DI:目的变址寄存器目的变址寄存器,串操作中存放目的串地址,默认,串操作中存放目的串地址,默认ES段;段;该特殊用法只在字符串操作中有效该特殊用法只在字符串操作中有效,其它场合下作一般的指,其它场合下作一般的指针寄存器使用;针寄存器使用;2022年12月7日星期三9堆栈指针寄存器堆栈指针寄存器SP、BP堆栈是一个先进后出的数据结构,栈底位堆栈是一个先进后出的数据结构,栈底位置不变;置不变;栈顶指针栈顶指针SP其中始终存放栈顶
8、单元的有效地址;其中始终存放栈顶单元的有效地址;其值是其值是由出入栈指令自动更改由出入栈指令自动更改的,一的,一般不允许随意对该寄存器赋值;般不允许随意对该寄存器赋值;堆栈指针堆栈指针BP其中数据一般作为地址进行访存;其中数据一般作为地址进行访存;默认对应于默认对应于SS段段,可寻址堆栈中的任,可寻址堆栈中的任何单元。何单元。堆栈堆栈栈底栈底 1 2 31 2 3 3 2 1 栈顶栈顶2022年12月7日星期三10段段 寄寄 存存 器器类别类别16位位8位位名称名称作用作用段寄存器段寄存器无无代码段段寄存器代码段段寄存器存放代码段段地址存放代码段段地址无无数据段段寄存器数据段段寄存器存放数据段
9、段地址存放数据段段地址无无附加段段寄存器附加段段寄存器存放附加段段地址存放附加段段地址无无堆栈段段寄存器堆栈段段寄存器存放堆栈段段地址存放堆栈段段地址 一段汇编语言程序一段汇编语言程序至少有一个逻辑段至少有一个逻辑段代码段,用于存放代码段,用于存放代码;代码;一段汇编语言程序一段汇编语言程序最多有最多有4个逻辑段个逻辑段1个代码段,个代码段,3个数据个数据段,分别用于存放代码和数据;段,分别用于存放代码和数据;CSDSESSS2022年12月7日星期三11CS (Code Segment)代码段代码段用来存放要执行的用来存放要执行的指令序列指令序列;段首地址段首地址用代码段寄存器用代码段寄存器
10、CS来保存;来保存;指令指针寄存器指令指针寄存器IP指示本段中的地址;指示本段中的地址;n将要执行的下条指令的有效地址;将要执行的下条指令的有效地址;CPU利用利用CS:IP形成存储单元的物理地址,以获取下形成存储单元的物理地址,以获取下条要执行指令的代码。条要执行指令的代码。2022年12月7日星期三12DS (Data Segment)数据段数据段用来存放程序运行所需要的数据;用来存放程序运行所需要的数据;段首地址段首地址用数据段寄存器用数据段寄存器DS来保存;来保存;CPU利用利用DS:EA形成存储单元的物理地址,以获取形成存储单元的物理地址,以获取数据段中的数据;数据段中的数据;nEA
11、的形成方式详见第的形成方式详见第3章寻址方式的介绍。章寻址方式的介绍。2022年12月7日星期三13ES(Extra Segment)附加段附加段 即即附加的数据段附加的数据段,保存程序运行所需要的数据;,保存程序运行所需要的数据;段首地址段首地址用附加段寄存器用附加段寄存器ES来保存;来保存;CPU利用利用ES:EA形成存储单元的物理地址,以获取附加形成存储单元的物理地址,以获取附加段中的数据;段中的数据;串操作指令串操作指令常将附加段常将附加段ES作为目的操作数的存放区域。作为目的操作数的存放区域。2022年12月7日星期三14SS (Stack Segment)堆栈堆栈用于存储程序运行中
12、用于存储程序运行中需要临时保护的数据需要临时保护的数据;段首地址段首地址用堆栈段寄存器用堆栈段寄存器SS来保存;来保存;堆栈指针寄存器堆栈指针寄存器SP保存堆栈栈顶的有效地址;保存堆栈栈顶的有效地址;CPU利用利用SS:SP对堆栈栈顶单元进行操作;对堆栈栈顶单元进行操作;利用利用SS:BP对堆栈中的任一单元进行操作。对堆栈中的任一单元进行操作。2022年12月7日星期三15专专 用用 寄寄 存存 器器类别类别16位位8位位名称名称作用作用专用专用寄存器寄存器IP无无指令指针寄存指令指针寄存器器保存将要取出的指令有效地址保存将要取出的指令有效地址FLAG 无无标志寄存器标志寄存器保存保存CPU当
13、前的状态标志信息当前的状态标志信息 指令指针指令指针IP保存将要执行指令的有效地址;保存将要执行指令的有效地址;该寄存器的内容是该寄存器的内容是不允许人为更改不允许人为更改的,通过指令的执行的,通过指令的执行而自动改变。而自动改变。标志寄存器标志寄存器FLAG该寄存器是利用其中的该寄存器是利用其中的每一位每一位来反映当前来反映当前CPU执行指令执行指令的结果或控制指令执行形式。的结果或控制指令执行形式。2022年12月7日星期三1616位标志寄存器位标志寄存器 仅用到其中仅用到其中9位,且按位使用;位,且按位使用;6位状态标志位:反映位状态标志位:反映ALU的执行状态;的执行状态;n按照按照A
14、LU指令执行的结果设置各状态标志位;指令执行的结果设置各状态标志位;3位控制标志位:控制位控制标志位:控制CPU的某些功能;的某些功能;1514131211109876543210OFDFIFTFSFZFAFPFCF进位标志进位标志零标志零标志符号标志符号标志溢出标志溢出标志方向标志方向标志中断允许标志中断允许标志陷阱标志陷阱标志奇偶标志奇偶标志辅助进位标志辅助进位标志2022年12月7日星期三17常用的状态标志位常用的状态标志位 进位标志位进位标志位CF运算结果有进位或借位时,运算结果有进位或借位时,CF=1,否则,否则CF=0;溢出标志位溢出标志位OF运算结果超出了数据表示范围时,运算结果
15、超出了数据表示范围时,OF=1,否则,否则OF=0;符号标志位符号标志位SF运算结果为负数时,运算结果为负数时,SF=1,否则,否则SF=0;零标志位零标志位ZF运算结果为运算结果为0时,时,ZF=1,否则,否则ZF=0;标志位设置标志位设置例例1:3AH+7CH例例2:0AAH+7CH2022年12月7日星期三183A H=0011 1010 B+)7C H=0111 1100 B1011 0110 B=0B6HCF=SF=ZF=OF=1010AA H=1010 1010 B+)7C H=0111 1100 B1 0010 0110 B=(1)26HCF=SF=ZF=OF=01002022年
16、12月7日星期三192.2 存储器物理地址的形成存储器物理地址的形成2.2.1 存储器的结构存储器的结构2.2.2 物理地址的形成物理地址的形成2.2.3 存储器单元的地址和内容存储器单元的地址和内容2022年12月7日星期三202.2.1 存储器结构存储器结构主存储器用于存放系统运行所需要的所有的程序和数据;主存储器用于存放系统运行所需要的所有的程序和数据;开机后自动从开机后自动从BIOS和辅存中调入数据,掉电后丢失;和辅存中调入数据,掉电后丢失;存储器的基本单位是存储器的基本单位是存储单元存储单元;每个存储单元的大小可以是一个字节,或一个字;每个存储单元的大小可以是一个字节,或一个字;n8
17、086 CPU的主存是以字节进行组织的;的主存是以字节进行组织的;每个存储单元都有一个唯一的编号,称为每个存储单元都有一个唯一的编号,称为物理地址物理地址,用于,用于CPU访问;访问;存储器容量单位存储器容量单位bit、Byte、KB、MB、GB、TB、EB、PB、2022年12月7日星期三21物理地址(物理地址(Physical Address,PA)将将整个存储器整个存储器从第一单元到最后一个单元从第一单元到最后一个单元按按顺序编号顺序编号所得到的地址称为物理地址;所得到的地址称为物理地址;物理地址可以物理地址可以唯一唯一地标识每一个存储单元;地标识每一个存储单元;CPU访问主存时,必须通
18、过地址总线输出所访问主存时,必须通过地址总线输出所要访问存储单元的的物理地址。要访问存储单元的的物理地址。系统的最大主存容量系统的最大主存容量取决于地址总线的取决于地址总线的位数;位数;主存储器主存储器000B001B010B111B2022年12月7日星期三22CPU对主存储器的访问过程对主存储器的访问过程1.CPU通过通过控制总线控制总线,发出访存信号,通知主存准备数据读写;,发出访存信号,通知主存准备数据读写;2.CPU通过通过地址总线地址总线,发出存储单元的地址;,发出存储单元的地址;主存储器接收到地址后,译码,寻址正确的存储单元;主存储器接收到地址后,译码,寻址正确的存储单元;3.C
19、PU通过通过控制总线控制总线,发出读写的命令;,发出读写的命令;主存储器将准备执行读写操作;主存储器将准备执行读写操作;4.CPU通过通过数据总线数据总线,读出或写入的数据;,读出或写入的数据;CPU主存主存数据总线数据总线地址总线地址总线读写控制线读写控制线访存控制线访存控制线8086需要需要4个时钟周期,个时钟周期,80486只需要只需要1个时钟周期。个时钟周期。读读PA1100 0110允许允许1100 01102022年12月7日星期三232.2.2 8086 CPU对主存的分段管理模式对主存的分段管理模式 分段的原因分段的原因16位系统中,地址总线位系统中,地址总线20根根可寻址主存
20、空间为可寻址主存空间为220=1MB 物理地址区间物理地址区间00FFFFFH16位系统中,机器字长位系统中,机器字长16位位运算的最大位数、指针等只有运算的最大位数、指针等只有16位位可直接寻址的空间为可直接寻址的空间为216=64KB直接使用的地址区间直接使用的地址区间00FFFFH 因此,采用因此,采用分段方式分段方式管理和访问主存。管理和访问主存。2022年12月7日星期三24存储器的分段管理存储器的分段管理 分段的思想:分段的思想:将存储器划分成将存储器划分成若干区间若干区间,标记起始地址,区间内用较,标记起始地址,区间内用较少位数的地址寻址;少位数的地址寻址;用用两个两个16位地址
21、位地址合成的方法形成合成的方法形成一个一个20位的物理地址位的物理地址;n段地址、段内偏移地址(有效地址段地址、段内偏移地址(有效地址)关于分段的规定关于分段的规定段的起始段的起始:每个逻辑段的起始地址必须是每个逻辑段的起始地址必须是16的倍数。的倍数。即:即:xxxx xxxx xxxx xxxx 0000B 或:或:xxxx0H段的容量段的容量:每个逻辑段的最大容量可以达到每个逻辑段的最大容量可以达到64KB。n注意:注意:各逻辑段之间是可以重叠的各逻辑段之间是可以重叠的。主存实际上并没有从物理主存实际上并没有从物理上分段,段的划分只是来上分段,段的划分只是来自于自于CPUCPU的管理!的
22、管理!区间不固定,随机划分!区间不固定,随机划分!2022年12月7日星期三25存储器的分段示意存储器的分段示意物理地址物理地址00000H12340H12341H 22000H2233FH0FFFFFH主存储器主存储器段起始单元段起始单元逻辑段逻辑段1 1段地址为:段地址为:1234H1234H保存于段寄存器中保存于段寄存器中偏移地址偏移地址0000H0001H0002H 0FFFFH段起始单元段起始单元逻辑段逻辑段2 2段地址为:段地址为:2200H2200H保存于段寄存器中保存于段寄存器中偏移地址偏移地址0000H0001H0002H 0FFFFH2022年12月7日星期三26关于分段关
23、于分段 1MB空间最多能分成多少个段?空间最多能分成多少个段?逻辑段最密集的划分方式逻辑段最密集的划分方式每隔每隔16个存储单元开始一个新段,各段都是重叠的;个存储单元开始一个新段,各段都是重叠的;所以,所以,1MB最多可以有最多可以有2201621664K 个段个段 1MB空间最少能分成多少个段?空间最少能分成多少个段?逻辑段最松散的划分方式逻辑段最松散的划分方式每隔每隔 64K 个存储单元开始一个新段,各段不重叠;个存储单元开始一个新段,各段不重叠;所以,所以,1MB最少可以有最少可以有 22021616 个段个段2022年12月7日星期三27分段模式下主存储器的地址类型分段模式下主存储器
24、的地址类型 物理地址物理地址每个存储单元在整个存储器中的唯一标识;每个存储单元在整个存储器中的唯一标识;段地址段地址逻辑段首单元的物理地址的高逻辑段首单元的物理地址的高16位;位;有效地址有效地址EA(段内偏移地址)(段内偏移地址)该存储单元相对于段首单元的偏移量;该存储单元相对于段首单元的偏移量;该单元物理地址该单元物理地址=有效地址有效地址+段首单元的物理地址;段首单元的物理地址;逻辑地址逻辑地址由段地址和有效地址表示的存储单元地址形式;由段地址和有效地址表示的存储单元地址形式;某单元某单元A的物理地址为的物理地址为23000H若段起始地址为若段起始地址为20000H,即段地址为,即段地址
25、为2000H则则A的有效地址为的有效地址为3000H该段中,该段中,A的逻辑地址可表示为的逻辑地址可表示为2000H:3000H2022年12月7日星期三28 任意一个物理地址均可以用任意一个物理地址均可以用段地址段地址和和偏移地址偏移地址两部分形成;两部分形成;逻辑地址逻辑地址:“段地址段地址:偏移地址:偏移地址”分段的不同,可导致分段的不同,可导致同一个物理地址对应多个不同的逻辑同一个物理地址对应多个不同的逻辑地址地址。物理地址物理地址(PA)=段地址段地址16+偏移地址偏移地址段地址段地址:段起始单元物理地址的高:段起始单元物理地址的高16位;位;偏移地址偏移地址:也可称为:也可称为有效
26、地址有效地址(EA),指实际单元和段,指实际单元和段起始单元之间的距离。起始单元之间的距离。将段地址左移将段地址左移4个二进制位个二进制位物理地址的形成物理地址的形成2022年12月7日星期三292.1.1 Intel 8086 CPU内部结构内部结构功能上,包括运算器和控制器两大部件;功能上,包括运算器和控制器两大部件;运算器:负责所有的算术逻辑运算;运算器:负责所有的算术逻辑运算;控制器:负责微机系统的所有控制功能;控制器:负责微机系统的所有控制功能;结构上,包括执行单元结构上,包括执行单元EU和总线接口单元和总线接口单元BIU两个模块;两个模块;执行单元执行单元EUn包括指令译码部件、包
27、括指令译码部件、ALU和通用寄存器组,负责指令译码和执行;和通用寄存器组,负责指令译码和执行;总线接口单元总线接口单元BIUn包括总线控制逻辑和专用的寄存器,负责包括总线控制逻辑和专用的寄存器,负责CPU与外界的通信联络;与外界的通信联络;2022年12月7日星期三30执行部件执行部件(EU)执行部分执行部分控制电路控制电路ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用通用寄存器寄存器16位位DB1 2 3 4 5 6内部暂存器内部暂存器 IP ES SS DS CS输入输入/输出输出控制电路控制电路外部总线外部总线地址地址加法加法器器指令
28、队列指令队列总线接口部件总线接口部件(BIU)20位位AB16位位DB8位位QB8086/8088 CPU功能结构功能结构2022年12月7日星期三311.执行部件执行部件EU(Execution Unit)功能功能负责所有指令的译码和执行;负责所有指令的译码和执行;(1)获取指令代码,获取指令代码,译码译码后产生控制信号;后产生控制信号;(2)进行算术和逻辑运算,并根据运算结果进行算术和逻辑运算,并根据运算结果修改标志寄存修改标志寄存器状态位状态器状态位状态;(3)为为BIU提供提供需要传送的数据需要传送的数据和和16位有效地址位有效地址。组成组成寄存器组寄存器组算术逻辑单元算术逻辑单元AL
29、UEU控制部件控制部件2022年12月7日星期三32算术逻辑单元算术逻辑单元ALU 16位的运算器,负责所有的指令执行期间的运算;位的运算器,负责所有的指令执行期间的运算;算术运算:加、减、乘、除算术运算:加、减、乘、除逻辑运算:与、或、非、异或逻辑运算:与、或、非、异或 8086 CPU的的ALU可完成可完成8位、位、16位数据的运算;位数据的运算;计算指令执行时所需要的存储单元的有效地址;计算指令执行时所需要的存储单元的有效地址;针对相对寻址、基址加变址寻址、相对基址加变址寻址针对相对寻址、基址加变址寻址、相对基址加变址寻址这三种寻址方式而言;这三种寻址方式而言;2022年12月7日星期三
30、33EU控制部件控制部件 功能功能负责从负责从BIU的指令队列中取出指令;的指令队列中取出指令;对指令操作码进行译码分析;对指令操作码进行译码分析;按照按照工作时序工作时序向相关的部件发送相应的控制信号;向相关的部件发送相应的控制信号;组成组成指令寄存器、指令译码器指令寄存器、指令译码器时序控制部件时序控制部件微操作控制部件微操作控制部件2022年12月7日星期三342.总线接口部件总线接口部件BIU(Bus Interface Unit)功能功能负责负责CPU所有的访问操作所有的访问操作;n段式方式访问主存;直接译码的方式访问段式方式访问主存;直接译码的方式访问I/O端口;端口;(1)从主存
31、中从主存中读取指令读取指令;(2)计算并形成所要访问计算并形成所要访问主存的物理地址主存的物理地址;(3)访问主存、访问访问主存、访问I/O,以获取数据或保存结果。,以获取数据或保存结果。组成组成段寄存器和指令指针寄存器等段寄存器和指令指针寄存器等 地址加法器地址加法器指令队列缓冲器指令队列缓冲器 总线控制逻辑总线控制逻辑2022年12月7日星期三35指令队列缓冲器指令队列缓冲器 功能功能存放预取的指令,共存放预取的指令,共6字节字节容量;容量;8088 CPU的指令队列缓冲器为的指令队列缓冲器为4字节字节容量;容量;使用规则使用规则先进先出先进先出,按顺序送入,按顺序送入EU执行;执行;提供
32、提供EU执行的所有指令。执行的所有指令。工作过程工作过程顺序执行程序时,顺序执行程序时,有空闲即自动取指有空闲即自动取指;程序发生转移时,清除缓冲器内容,重新获取指令。程序发生转移时,清除缓冲器内容,重新获取指令。2022年12月7日星期三36总结:分段管理模式下的访存总结:分段管理模式下的访存 CPU要访问存储器必须提供物理地址要访问存储器必须提供物理地址;一般使用一般使用段寄存器段寄存器与与指针寄存器指针寄存器来共同表示逻辑地址;来共同表示逻辑地址;在在CPU内部由内部由地址加法器地址加法器完成运算,转换成物理地址输完成运算,转换成物理地址输出访问主存储器;出访问主存储器;代码段段寄存器代
33、码段段寄存器CS指针寄存器为指针寄存器为IP。数据段段寄存器数据段段寄存器DS指针寄存器指针寄存器一般一般用用BX、SI、DI。附加段段寄存器附加段段寄存器ES指针寄存器指针寄存器一般一般用用DI(字符串操作字符串操作)。堆栈段段寄存器堆栈段段寄存器SS指针寄存器指针寄存器SP指向栈顶,指针寄存指向栈顶,指针寄存器器BP指向栈内任意位置。指向栈内任意位置。2022年12月7日星期三37地址加法器地址加法器 功能功能形成形成16位系统的位系统的20位主存地址。位主存地址。取指令取指令PA=(CS)16+IP 取数据取数据PA=(DS/SS/ES)16+有效地址有效地址 访问访问I/O端口时不需进
34、行运算。端口时不需进行运算。2022年12月7日星期三38指针寄存器指针寄存器 指针寄存器指针寄存器其值可作为存储单元地址,用于指令或其值可作为存储单元地址,用于指令或CPU内部执行时寻内部执行时寻址使用的寄存器。址使用的寄存器。其值改变,所寻址到得存储单元也会不同,因此形象地称其值改变,所寻址到得存储单元也会不同,因此形象地称之为指针。之为指针。汇编语言程序中,凡是和地址有关的都可以认为是指针;汇编语言程序中,凡是和地址有关的都可以认为是指针;寄存器、立即数、变量、标号寄存器、立即数、变量、标号能够标示一个存储单元地址,用于寻址;能够标示一个存储单元地址,用于寻址;2022年12月7日星期三
35、39执行部件执行部件(EU)执行部分执行部分控制电路控制电路ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用通用寄存器寄存器16位位DB1 2 3 4 5 6内部暂存器内部暂存器 IP ES SS DS CS输入输入/输出输出控制电路控制电路外部总线外部总线地址地址加法加法器器指令队列指令队列总线接口部件总线接口部件(BIU)20位位AB16位位DB8位位QB8086/8088 CPU功能结构功能结构2022年12月7日星期三40物理地址的形成物理地址的形成2022年12月7日星期三412.2.3 存储单元中数据的存取方法存储单元中数据的存取
36、方法 基本原则:基本原则:高高低低原则高高低低原则即即低地址低地址单元存放单元存放低字节低字节数据,数据,高地址高地址单元存放单元存放高字节高字节数据。数据。例如,存储器如右图所示例如,存储器如右图所示将一个将一个字节数据字节数据12H存于存于12340H单元中;单元中;将一个将一个字数据字数据3456H存于存于12341H单元中;单元中;读取读取12342H单元中的字数据为:单元中的字数据为:注意:一般数据存储遵循注意:一般数据存储遵循“数据对齐规则数据对齐规则”;字数据存放在偶地址单元。字数据存放在偶地址单元。12340H12341H12342H12343H12344H1256341020
37、1034H2022年12月7日星期三42练习题练习题1.16位位CPU在取指令时,需要用到的寄存器有在取指令时,需要用到的寄存器有和和;2.访问访问堆栈段栈顶单元堆栈段栈顶单元要由要由段寄存器和段寄存器和寄存器组合寄存器组合来寻址,访问来寻址,访问堆栈段中的单元堆栈段中的单元要由要由段寄存器和段寄存器和寄寄存器组合来寻址;存器组合来寻址;3.访问访问数据段中的单元数据段中的单元要由要由 段寄存器和段寄存器和 寄寄存器组合来寻址;存器组合来寻址;4.在在16位微机系统中,一个程序位微机系统中,一个程序最多最多能同时使用能同时使用个数据段。个数据段。CSIPSSSPSSBPDSBX、SI、DI3D
38、S、ES、SS2022年12月7日星期三43接口技术基础接口技术基础2.1.3 Intel 8086 微处理器引脚说明微处理器引脚说明补充补充 Intel 8086 CPU工作时序工作时序2022年12月7日星期三442.1.3 Intel 8086 微处理器引脚说明微处理器引脚说明最小模式最小模式仅有仅有8086 CPU一个处理器,产生系统所需的所有控制信号;一个处理器,产生系统所需的所有控制信号;8086 CPU始终占用总线控制权始终占用总线控制权,其他模块使用需要申请;,其他模块使用需要申请;最大模式:最大模式:系统内包含多个处理器系统内包含多个处理器8086 CPU为为主处理器主处理器
39、,和其他,和其他协处理器协处理器构成多处理器系统;构成多处理器系统;n专用于数值计算的协处理器专用于数值计算的协处理器8087n专用于输入输出操作的协处理器专用于输入输出操作的协处理器8089总线控制逻辑由总线控制器总线控制逻辑由总线控制器8288产生和控制;产生和控制;n8086 CPU输出传送类型的编码,由输出传送类型的编码,由8288转换为系统总线控制命令;转换为系统总线控制命令;2022年12月7日星期三458086/8088 CPU芯片引脚芯片引脚 Intel 8086 CPU采用采用40条引脚,双列直插式(条引脚,双列直插式(DIP)封装;)封装;8086 CPU有有16根数据总线
40、,可一次性向外传送根数据总线,可一次性向外传送16位信息;位信息;故称为故称为16位微处理器;位微处理器;40根引脚可分做四部分:根引脚可分做四部分:地址总线地址总线数据总线;数据总线;n采用采用分时复用分时复用设置地址数据总线设置地址数据总线控制总线;控制总线;时钟和电源线;时钟和电源线;8086CPU2022年12月7日星期三468086 CPU引脚图引脚图33号引脚号引脚MN/MX#工作模式选择控制线工作模式选择控制线高电平高电平最小模式最小模式低电平低电平最大模式最大模式其余总线可分为其余总线可分为2部分部分两种模式公用总线两种模式公用总线与工作模式相关总线与工作模式相关总线01020
41、304050607080910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC(5V)AD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET80862022年12月7日星期三478086 C
42、PU引脚分类引脚分类两种模式公用总线两种模式公用总线地址地址/数据数据复用复用总线和地址总线和地址/状态状态复用复用总线;总线;高高8位数据总线允许位数据总线允许/状态线;状态线;控制总线;控制总线;与工作模式相关总线与工作模式相关总线总线控制信号;总线控制信号;写控制总线;写控制总线;总线状态控制总线;总线状态控制总线;中断响应、队列状态信号中断响应、队列状态信号2 21616、3939号引脚号引脚35353838号引脚号引脚3434号引脚号引脚1 1、1919、2020、4040号引脚号引脚1717、1818、2121号引脚号引脚2222、2323、3232号引脚号引脚3030、3131号
43、引脚号引脚2929号引脚号引脚26262828号引脚号引脚2424、2525号引脚号引脚2022年12月7日星期三48地址总线与数据总线地址总线与数据总线地址地址/数据数据复用复用总线总线AD15AD0:每个总线周期开始每个总线周期开始(T1时刻时刻),为,为16位地址总线;位地址总线;其余时间为其余时间为16位数据总线;位数据总线;地址地址/状态状态复用复用总线总线A19A16/S6S3:每个总线周期开始每个总线周期开始(T1时刻时刻),传送高,传送高4位地址总线;位地址总线;其余时间为其余时间为4位状态总线,指示位状态总线,指示CPU的状态;的状态;nS4和和S3:现行使用哪个段寄存器;:
44、现行使用哪个段寄存器;nS5:中断允许标志位状态(:中断允许标志位状态(IF););nS6:指示是否:指示是否8086使用总线,使用总线,0是,是,1否否。S4S3段段R00ES01SS10CS11DS2 21616、3939号引脚号引脚35353838号引脚号引脚2022年12月7日星期三49高高8位数据总线允许位数据总线允许/状态线状态线BHE#/S7 在在T1时刻,作为时刻,作为BHE#信号信号BHE#为低电平时,允许使用高为低电平时,允许使用高8位数据总线位数据总线D15D8;BHE#与与A0结合,决定数据访问类型;结合,决定数据访问类型;其余时间,作为其余时间,作为S7状态信号,状态
45、信号,8086 CPU对对S7没有定义。没有定义。3434号引脚号引脚2022年12月7日星期三50时钟、电源线时钟、电源线 时钟信号时钟信号CLK输入总线;输入总线;8086 CPU需要占空比需要占空比(高低电平比高低电平比)为为1:3的基本定时脉冲;的基本定时脉冲;电源信号电源信号Vcc接正电压(接正电压(+5V0.5V););地线地线GND输入地线;输入地线;共两条接地线。共两条接地线。1 1、1919、2020、4040号引脚号引脚2022年12月7日星期三51中断控制总线中断控制总线 可屏蔽中断请求信号可屏蔽中断请求信号INTR输入总线,引入输入总线,引入可屏蔽中断源可屏蔽中断源的中
46、断请求信号;的中断请求信号;非屏蔽中断请求信号非屏蔽中断请求信号NMI输入总线,引入输入总线,引入非可屏蔽中断非可屏蔽中断请求信号,请求信号,上升沿有效上升沿有效;复位信号复位信号RESET输入总线,高电平时,输入总线,高电平时,CPU停止当前操作,初始化内部寄停止当前操作,初始化内部寄存器,并从物理地址为存器,并从物理地址为0FFFF0H的单元开始执行程序。的单元开始执行程序。1717、1818、2121号引脚号引脚2022年12月7日星期三52读写控制总线读写控制总线 读控制信号读控制信号RD#三态、输出总线,低电平有效;三态、输出总线,低电平有效;由由M/IO#的状态决定是读存储器还是的
47、状态决定是读存储器还是I/O设备设备;等待控制信号等待控制信号READY输入总线,决定是否需要插入等待周期输入总线,决定是否需要插入等待周期Tw以延长一次以延长一次总线操作,总线操作,低电平时插入低电平时插入Tw状态状态;等待测试控制信号等待测试控制信号TEST#输入总线,低电平时结束等待状态,继续执行指令;输入总线,低电平时结束等待状态,继续执行指令;与与WAIT指令结合使用,决定指令结合使用,决定WAIT指令是否结束;指令是否结束;2222、2323、3232号引脚号引脚2022年12月7日星期三53总线控制总线总线控制总线 最小模式:最小模式:总线保持请求信号总线保持请求信号HOLD、总
48、线保持响应信号、总线保持响应信号HLDA;HOLD为请求输入信号,为请求输入信号,HLDA为响应输出信号;为响应输出信号;在在8086 CPU与与DMAC之间转移总线的使用权;之间转移总线的使用权;最大模式:最大模式:请求请求/允许总线访问控制信号允许总线访问控制信号RQ#/GT0#和和RQ#/GT1#;控制控制协处理器协处理器与与8086 CPU之间总线使用权的转移;之间总线使用权的转移;RQ#请求输入信号;请求输入信号;GT#响应输出信号;响应输出信号;n每根都是双向控制信号,每根都是双向控制信号,RQ#/GT0#的优先权较高;的优先权较高;3030、3131号引脚号引脚2022年12月7
49、日星期三54写控制总线写控制总线 最小模式:写控制信号最小模式:写控制信号WR#;输出总线,三态,低电平有效;输出总线,三态,低电平有效;由由M/IO#的状态决定是写存储器还是的状态决定是写存储器还是I/O设备设备;最大模式:总线封锁信号最大模式:总线封锁信号LOCK#;输出总线,三态,低电平有效;输出总线,三态,低电平有效;用于封锁其他主设备占用总线的请求,以保证某些操作用于封锁其他主设备占用总线的请求,以保证某些操作的完整性;的完整性;可使用前缀指令可使用前缀指令LOCK来设置该信号;来设置该信号;2929号引脚号引脚2022年12月7日星期三55总线状态控制总线总线状态控制总线 最小模式
50、:数据允许信号最小模式:数据允许信号DEN#、数据发送、数据发送/接收控制信号接收控制信号DT/R#、存储器、存储器/IO控制信号控制信号M/IO#;DEN#:三态输出总线,作为系统总线收发器的选通信号;:三态输出总线,作为系统总线收发器的选通信号;DT/R#:三态输出总线,区分:三态输出总线,区分CPU的输入的输入/输出操作;输出操作;M/IO#:输出总线,区分:输出总线,区分CPU访问存储器还是访问存储器还是I/O端口;端口;最大模式:总线周期状态信号最大模式:总线周期状态信号S2#、S1#、S0#;三态输出总线;三态输出总线;反映反映8086 CPU外部总线周期的操作类型;外部总线周期的