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

下载本文档

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

文档简介

05十二月20231第2章80X86微处理器汇编语言基础2.1.2Intel8086CPU内部寄存器2.2存储器物理地址的形成2.1.1Intel8086CPU内部结构接口技术基础2.1.3Intel8086微处理器引脚说明补充Intel8086CPU工作时序05十二月20232汇编语言基础2.1.2Intel8086CPU内部寄存器2.2存储器物理地址的形成2.1.1Intel8086CPU内部结构微型计算机的结构05十二月20233输入设备控制器输出设备存储器运算器计算1+2+3并不关心1+2

的中间结果!05十二月202342.1.2Intel8086内部寄存器CPU中为什么要使用寄存器寄存器比存储器存取速度快使用灵活(如暂存运算的中间数据)、控制方便(如IP)寄存器的分类通用寄存器:传送和暂存数据;参与算术逻辑运算并保存运算结果;段寄存器:保存段地址,用于寻址时构成物理地址;专用寄存器:CPU运行的辅助工具。用户编程时所用到的CPU用户编程时所用到的CPU05十二月20235通用寄存器类别16位8位名称作用

AXAH、AL累加器常作隐含操作数,可通用BXBH、BL基地址寄存器常作地址指针,可通用CXCH、CL计数器常存放计数值,可通用DXDH、DL数据寄存器常与累加器配合,可通用SI无源变址寄存器保存源操作数地址DI无目的变址寄存器保存目的操作数地址SP无栈顶指针只能保存堆栈栈顶地址BP无堆栈指针可保存堆栈任意位置地址堆栈指针寄存器数据寄存器变址寄存器05十二月20236累加器AX16位寄存器可以存储2个字节的数据;例如,数值2008H存放于AX累加器中。AX可分做两个8位的寄存器使用,分别为AH和AL。(AX)=2008H,则(AH)=20H,(AL)=08H;BX、CX、DX类似。AX0123456789101112131415无符号数范围为0~65535有符号数范围为-32768~+327670010000000001000AHAL05十二月20237数据寄存器AX、BX、CX和DX16位寄存器高低8位可分为两个独立寄存器使用;主要用于暂存指令执行过程中的数据;特殊用途AX:累加器,ALU运算核心部件、某些指令的默认寄存器;BX:基址寄存器,存放存储单元的有效地址;CX:计数器,串操作指令和循环指令中的默认计数器;DX:与AX合用保存32位数据;I/O指令中存放端口地址。05十二月20238变址寄存器SI、DI16位寄存器;常作为指针,存放存储单元有效地址,也可暂存数据;特殊用法:SI、DI中保存的地址信息可以随着指令的执行而自动改变;SI:源变址寄存器,串操作中存放源串地址,默认DS段;DI:目的变址寄存器,串操作中存放目的串地址,默认ES段;该特殊用法只在字符串操作中有效,其它场合下作一般的指针寄存器使用;05十二月20239堆栈指针寄存器SP、BP堆栈是一个先进后出的数据结构,栈底位置不变;栈顶指针SP其中始终存放栈顶单元的有效地址;其值是由出入栈指令自动更改的,一般不允许随意对该寄存器赋值;堆栈指针BP其中数据一般作为地址进行访存;默认对应于SS段,可寻址堆栈中的任何单元。堆栈栈底1

2

31

2

3

3

2

1栈顶05十二月202310段寄存器类别16位8位名称作用段寄存器无代码段段寄存器存放代码段段地址无数据段段寄存器存放数据段段地址无附加段段寄存器存放附加段段地址无堆栈段段寄存器存放堆栈段段地址一段汇编语言程序至少有一个逻辑段——代码段,用于存放代码;一段汇编语言程序最多有4个逻辑段——1个代码段,3个数据段,分别用于存放代码和数据;CSDSESSS05十二月202311CS(CodeSegment)代码段用来存放要执行的指令序列;段首地址用代码段寄存器CS来保存;指令指针寄存器IP指示本段中的地址;将要执行的下条指令的有效地址;CPU利用CS:IP形成存储单元的物理地址,以获取下条要执行指令的代码。05十二月202312DS(DataSegment)数据段用来存放程序运行所需要的数据;段首地址用数据段寄存器DS来保存;CPU利用DS:EA形成存储单元的物理地址,以获取数据段中的数据;EA的形成方式详见第3章寻址方式的介绍。05十二月202313ES(ExtraSegment)附加段即附加的数据段,保存程序运行所需要的数据;段首地址用附加段寄存器ES来保存;CPU利用ES:EA形成存储单元的物理地址,以获取附加段中的数据;串操作指令常将附加段ES作为目的操作数的存放区域。05十二月202314SS(StackSegment)堆栈用于存储程序运行中需要临时保护的数据;段首地址用堆栈段寄存器SS来保存;堆栈指针寄存器SP保存堆栈栈顶的有效地址;CPU利用SS:SP对堆栈栈顶单元进行操作;

利用SS:BP对堆栈中的任一单元进行操作。05十二月202315专用寄存器类别16位8位名称作用专用寄存器IP无指令指针寄存器保存将要取出的指令有效地址FLAG无标志寄存器保存CPU当前的状态标志信息指令指针IP保存将要执行指令的有效地址;该寄存器的内容是不允许人为更改的,通过指令的执行而自动改变。标志寄存器FLAG该寄存器是利用其中的每一位来反映当前CPU执行指令的结果或控制指令执行形式。05十二月20231616位标志寄存器仅用到其中9位,且按位使用;6位状态标志位:反映ALU的执行状态;按照ALU指令执行的结果设置各状态标志位;3位控制标志位:控制CPU的某些功能;1514131211109876543210OFDFIFTFSFZFAFPFCF进位标志零标志符号标志溢出标志方向标志中断允许标志陷阱标志奇偶标志辅助进位标志05十二月202317常用的状态标志位进位标志位CF运算结果有进位或借位时,CF=1,否则CF=0;溢出标志位OF运算结果超出了数据表示范围时,OF=1,否则OF=0;符号标志位SF运算结果为负数时,SF=1,否则SF=0;零标志位ZF运算结果为0时,ZF=1,否则ZF=0;标志位设置例1:3AH+7CH例2:0AAH+7CH05十二月2023183AH=00111010B+)7CH=01111100B10110110B=0B6HCF=SF=ZF=OF=1010AAH=10101010B+)7CH=01111100B100100110B=(1)26HCF=SF=ZF=OF=010005十二月2023192.2存储器物理地址的形成2.2.1存储器的结构2.2.2物理地址的形成2.2.3存储器单元的地址和内容05十二月2023202.2.1存储器结构主存储器用于存放系统运行所需要的所有的程序和数据;开机后自动从BIOS和辅存中调入数据,掉电后丢失;存储器的基本单位是存储单元;每个存储单元的大小可以是一个字节,或一个字;8086CPU的主存是以字节进行组织的;每个存储单元都有一个唯一的编号,称为物理地址,用于CPU访问;存储器容量单位bit、Byte、KB、MB、GB、TB、EB、PB、……05十二月202321物理地址(PhysicalAddress,PA)将整个存储器从第一单元到最后一个单元按顺序编号所得到的地址称为物理地址;物理地址可以唯一地标识每一个存储单元;CPU访问主存时,必须通过地址总线输出所要访问存储单元的的物理地址。系统的最大主存容量取决于地址总线的位数;……主存储器0•••00B0•••01B0•••10B……1•••11B05十二月202322CPU对主存储器的访问过程CPU通过控制总线,发出访存信号,通知主存准备数据读写;CPU通过地址总线,发出存储单元的地址;主存储器接收到地址后,译码,寻址正确的存储单元;CPU通过控制总线,发出读写的命令;主存储器将准备执行读写操作;CPU通过数据总线,读出或写入的数据;CPU主存数据总线地址总线读写控制线访存控制线8086需要4个时钟周期,80486只需要1个时钟周期。读PA11000110允许1100011005十二月2023232.2.28086CPU对主存的分段管理模式分段的原因16位系统中,地址总线20根 可寻址主存空间为220=1MB

物理地址区间0~0FFFFFH16位系统中,机器字长16位 运算的最大位数、指针等只有16位 可直接寻址的空间为216=64KB

直接使用的地址区间0~0FFFFH因此,采用分段方式管理和访问主存。05十二月202324存储器的分段管理分段的思想:将存储器划分成若干区间,标记起始地址,区间内用较少位数的地址寻址;用两个16位地址合成的方法形成一个20位的物理地址;段地址、段内偏移地址(有效地址)关于分段的规定段的起始:每个逻辑段的起始地址必须是16的倍数。即:xxxxxxxxxxxxxxxx0000B或:xxxx0H段的容量:每个逻辑段的最大容量可以达到64KB。注意:各逻辑段之间是可以重叠的。主存实际上并没有从物理上分段,段的划分只是来自于CPU的管理!区间不固定,随机划分!05十二月202325存储器的分段示意……………………物理地址00000H……12340H12341H……22000H……2233FH……0FFFFFH主存储器段起始单元……逻辑段1段地址为:1234H保存于段寄存器中偏移地址0000H0001H0002H……0FFFFH段起始单元……逻辑段2段地址为:2200H保存于段寄存器中偏移地址0000H0001H0002H……0FFFFH05十二月202326关于分段1MB空间最多能分成多少个段?逻辑段最密集的划分方式

——每隔16个存储单元开始一个新段,各段都是重叠的;所以,1MB最多可以有220÷16=216=64K个段1MB空间最少能分成多少个段?逻辑段最松散的划分方式

——每隔64K个存储单元开始一个新段,各段不重叠;所以,1MB最少可以有220÷216=16个段05十二月202327分段模式下主存储器的地址类型物理地址每个存储单元在整个存储器中的唯一标识;段地址逻辑段首单元的物理地址的高16位;有效地址EA(段内偏移地址)该存储单元相对于段首单元的偏移量;该单元物理地址=有效地址+段首单元的物理地址;逻辑地址由段地址和有效地址表示的存储单元地址形式;某单元A的物理地址为23000H若段起始地址为20000H,即段地址为2000H则A的有效地址为3000H该段中,A的逻辑地址可表示为2000H:3000H05十二月202328任意一个物理地址均可以用段地址和偏移地址两部分形成;逻辑地址:“段地址:偏移地址”分段的不同,可导致同一个物理地址对应多个不同的逻辑地址。物理地址(PA)=段地址×16+偏移地址段地址:段起始单元物理地址的高16位;偏移地址:也可称为有效地址(EA),指实际单元和段起始单元之间的距离。将段地址左移4个二进制位物理地址的形成05十二月2023292.1.1Intel8086CPU内部结构功能上,包括运算器和控制器两大部件;运算器:负责所有的算术逻辑运算;控制器:负责微机系统的所有控制功能;结构上,包括执行单元EU和总线接口单元BIU两个模块;执行单元EU包括指令译码部件、ALU和通用寄存器组,负责指令译码和执行;总线接口单元BIU包括总线控制逻辑和专用的寄存器,负责CPU与外界的通信联络;05十二月202330执行部件(EU)执行部分控制电路ALU标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器16位DB123456内部暂存器

IP

ES

SSDSCS输入/输出控制电路外部总线∑地址加法器指令队列总线接口部件(BIU)20位AB16位DB8位QB8086/8088CPU功能结构05十二月2023311.执行部件EU(ExecutionUnit)功能负责所有指令的译码和执行;(1)获取指令代码,译码后产生控制信号;(2)进行算术和逻辑运算,并根据运算结果修改标志寄存器状态位状态;(3)为BIU提供需要传送的数据和16位有效地址。组成寄存器组算术逻辑单元ALUEU控制部件05十二月202332算术逻辑单元ALU16位的运算器,负责所有的指令执行期间的运算;算术运算:加、减、乘、除逻辑运算:与、或、非、异或8086CPU的ALU可完成8位、16位数据的运算;计算指令执行时所需要的存储单元的有效地址;针对相对寻址、基址加变址寻址、相对基址加变址寻址这三种寻址方式而言;05十二月202333EU控制部件功能负责从BIU的指令队列中取出指令;对指令操作码进行译码分析;按照工作时序向相关的部件发送相应的控制信号;组成指令寄存器、指令译码器时序控制部件微操作控制部件05十二月2023342.总线接口部件BIU(BusInterfaceUnit)功能负责CPU所有的访问操作;段式方式访问主存;直接译码的方式访问I/O端口;(1)从主存中读取指令;(2)计算并形成所要访问主存的物理地址;

(3)访问主存、访问I/O,以获取数据或保存结果。组成段寄存器和指令指针寄存器等 √

地址加法器指令队列缓冲器

总线控制逻辑05十二月202335指令队列缓冲器功能存放预取的指令,共6字节容量;8088CPU的指令队列缓冲器为4字节容量;使用规则先进先出,按顺序送入EU执行;提供EU执行的所有指令。工作过程顺序执行程序时,有空闲即自动取指;程序发生转移时,清除缓冲器内容,重新获取指令。05十二月202336总结:分段管理模式下的访存CPU要访问存储器必须提供物理地址;一般使用段寄存器与指针寄存器来共同表示逻辑地址;在CPU内部由地址加法器完成运算,转换成物理地址输出访问主存储器;代码段段寄存器CS——指针寄存器为IP。数据段段寄存器DS——指针寄存器一般用BX、SI、DI。附加段段寄存器ES——指针寄存器一般用DI(字符串操作)。堆栈段段寄存器SS——指针寄存器SP指向栈顶,指针寄存器BP指向栈内任意位置。05十二月202337地址加法器功能形成16位系统的20位主存地址。取指令PA=(CS)×16+IP取数据PA=(DS/SS/ES)×16+有效地址访问I/O端口时不需进行运算。05十二月202338指针寄存器指针寄存器其值可作为存储单元地址,用于指令或CPU内部执行时寻址使用的寄存器。其值改变,所寻址到得存储单元也会不同,因此形象地称之为指针。汇编语言程序中,凡是和地址有关的都可以认为是指针;寄存器、立即数、变量、标号……能够标示一个存储单元地址,用于寻址;05十二月202339执行部件(EU)执行部分控制电路ALU标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器16位DB123456内部暂存器

IP

ES

SSDSCS输入/输出控制电路外部总线∑地址加法器指令队列总线接口部件(BIU)20位AB16位DB8位QB8086/8088CPU功能结构05十二月202340物理地址的形成05十二月2023412.2.3存储单元中数据的存取方法基本原则:高高低低原则即低地址单元存放低字节数据,

高地址单元存放高字节数据。例如,存储器如右图所示将一个字节数据12H存于12340H单元中;将一个字数据3456H存于12341H单元中;读取12342H单元中的字数据为:注意:一般数据存储遵循“数据对齐规则”;字数据存放在偶地址单元。…………12340H12341H12342H12343H12344H12563410201034H05十二月202342练习题16位CPU在取指令时,需要用到的寄存器有__和__;访问堆栈段栈顶单元要由__段寄存器和__寄存器组合来寻址,访问堆栈段中的单元要由__段寄存器和__寄存器组合来寻址;访问数据段中的单元要由__段寄存器和______寄存器组合来寻址;在16位微机系统中,一个程序最多能同时使用_个数据段。CSIPSSSPSSBPDSBX、SI、DI3DS、ES、SS05十二月202343接口技术基础2.1.3Intel8086微处理器引脚说明补充Intel8086CPU工作时序05十二月2023442.1.3Intel8086微处理器引脚说明最小模式仅有8086CPU一个处理器,产生系统所需的所有控制信号;8086CPU始终占用总线控制权,其他模块使用需要申请;最大模式:系统内包含多个处理器8086CPU为主处理器,和其他协处理器构成多处理器系统;专用于数值计算的协处理器8087专用于输入输出操作的协处理器8089总线控制逻辑由总线控制器8288产生和控制;8086CPU输出传送类型的编码,由8288转换为系统总线控制命令;05十二月2023458086/8088CPU芯片引脚Intel8086CPU采用40条引脚,双列直插式(DIP)封装;8086CPU有16根数据总线,可一次性向外传送16位信息;故称为16位微处理器;40根引脚可分做四部分:地址总线数据总线;采用分时复用设置地址数据总线控制总线;时钟和电源线;8086CPU05十二月2023468086CPU

引脚图33号引脚MN/MX#工作模式选择控制线高电平——最小模式

低电平——最大模式其余总线可分为2部分两种模式公用总线与工作模式相关总线01020304050607080910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC(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)TESTREADYRESET808605十二月2023478086CPU引脚分类两种模式公用总线地址/数据复用总线和地址/状态复用总线;高8位数据总线允许/状态线;控制总线;与工作模式相关总线总线控制信号;写控制总线;总线状态控制总线;中断响应、队列状态信号2~16、39号引脚35~38号引脚34号引脚1、19、20、40号引脚17、18、21号引脚22、23、32号引脚30、31号引脚29号引脚26~28号引脚24、25号引脚05十二月202348地址总线与数据总线地址/数据复用总线AD15~AD0:每个总线周期开始(T1时刻),为16位地址总线;其余时间为16位数据总线;地址/状态复用总线A19~A16/S6~S3:每个总线周期开始(T1时刻),传送高4位地址总线;其余时间为4位状态总线,指示CPU的状态;S4和S3:现行使用哪个段寄存器;S5

:中断允许标志位状态(IF);S6:指示是否8086使用总线,0—是,1—否。S4S3段R00ES01SS10CS11DS2~16、39号引脚35~38号引脚05十二月202349高8位数据总线允许/状态线BHE#/S7在T1时刻,作为BHE#信号BHE#为低电平时,允许使用高8位数据总线D15~D8;BHE#与A0结合,决定数据访问类型;其余时间,作为S7状态信号,8086CPU对S7没有定义。34号引脚05十二月202350时钟、电源线时钟信号CLK输入总线;8086CPU需要占空比(高低电平比)为1:3的基本定时脉冲;电源信号Vcc接正电压(+5V±0.5V);地线GND输入地线;共两条接地线。1、19、20、40号引脚05十二月202351中断控制总线可屏蔽中断请求信号INTR输入总线,引入可屏蔽中断源的中断请求信号;非屏蔽中断请求信号NMI输入总线,引入非可屏蔽中断请求信号,上升沿有效;复位信号RESET输入总线,高电平时,CPU停止当前操作,初始化内部寄存器,并从物理地址为0FFFF0H的单元开始执行程序。17、18、21号引脚05十二月202352读写控制总线读控制信号RD#三态、输出总线,低电平有效;由M/IO#的状态决定是读存储器还是I/O设备;等待控制信号READY输入总线,决定是否需要插入等待周期Tw以延长一次总线操作,低电平时插入Tw状态;等待测试控制信号TEST#输入总线,低电平时结束等待状态,继续执行指令;与WAIT指令结合使用,决定WAIT指令是否结束;22、23、32号引脚05十二月202353总线控制总线最小模式:总线保持请求信号HOLD、总线保持响应信号HLDA;HOLD为请求输入信号,HLDA为响应输出信号;在8086CPU与DMAC之间转移总线的使用权;最大模式:请求/允许总线访问控制信号RQ#/GT0#和RQ#/GT1#

;控制协处理器与8086CPU之间总线使用权的转移;RQ#——请求输入信号;GT#——响应输出信号;每根都是双向控制信号,RQ#/GT0#的优先权较高;30、31号引脚05十二月202354写控制总线最小模式:写控制信号WR#;输出总线,三态,低电平有效;由M/IO#的状态决定是写存储器还是I/O设备;最大模式:总线封锁信号LOCK#;输出总线,三态,低电平有效;用于封锁其他主设备占用总线的请求,以保证某些操作的完整性;可使用前缀指令LOCK来设置该信号;29号引脚05十二月202355总线状态控制总线最小模式:数据允许信号DEN#、数据发送/接收控制信号DT/R#、存储器/IO控制信号M/IO#;DEN#:三态输出总线,作为系统总线收发器的选通信号;DT/R#:三态输出总线,区分CPU的输入/输出操作;M/IO#:输出总线,区分CPU访问存储器还是I/O端口;最大模式:总线周期状态信号S2#、S1#、S0#;三态输出总线;反映8086CPU外部总线周期的操作类型;总线控制器8288对其进行译码,产生需要的控制信号;26~28号引脚05十二月202356总线周期状态信号

S2#、S1#、S0#总线周期的T4周期内,S2#、S1#、S0#的变化指示一个新的总线周期的开始;T3或Tw周期内,S2#、S1#、S0#返回无效状态,表示一个总线周期的结束;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无效无05十二月202357中断响应、队列状态信号最小模式:中断响应信号INTA#、地址锁存允许信号ALEINTA#:输出总线,低电平有效,用于响应INTR请求;ALE:输出总线,T1周期有效,用于将地址/数据复用总线上的地址信息保存至锁存器中;最大模式:

指令队列状态信号QS1、QS2;输出总线,用于指示

CPU内指令队列的状态;QS1QS0含义00空操作01从队列中取出指令的第一个字节10队列空11从队列中取出指令的后续字节24、25号引脚05十二月202358补充Intel8086CPU工作时序系统的复位和启动操作最小模式下的总线读操作最小模式下的总线写操作05十二月202359CPU与主存储器的连接CPUMM地址锁存器AD15~AD0A19~A16/S6~S3A19~A0D15~D0T1时刻T2~T4时刻T1~T4时刻ALE总线收发器DEN05十二月2023601、系统的复位和启动操作当8086CPU的RESET引脚上检测到有上升沿时,进入复位时序;时钟脉冲CLK同步外部复位信号内部RESET在外部RESET有效后的时钟周期上升沿有效;复位状态地址线浮空,ALE、HLDA信号无效,其他控制信号保持半个时钟周期高电平,再浮空;内

温馨提示

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

评论

0/150

提交评论