《第四章 典型CPU及指令系统举例 教案.ppt》由会员分享,可在线阅读,更多相关《第四章 典型CPU及指令系统举例 教案.ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章 典型CPU及指令系统举例,学习内容,理解8086/8088CPU的寄存器结构、主存储器、堆栈结构。掌握8086/8088指令系统的寻址方式。(本章的重点内容)理解8086/8088指令类型。了解提高CPU性能的一些措施与当前常用的实际CPU基本组成。,4.1 8086/8088CPU,4.1.1 8086/8088CPU的结构1. 8086/8088内部结构:8086/8088CPU采用指令流水线结构,将取指令(或取操作数)与执行指令的功能分别由两个独立部件实现,即总线接口部件BIU与执行部件EU,主要任务是完成CPU与主存储器或I/O之间的信息传送。,主要任务是执行指令,总线接口部件
2、BIU与执行部件EU功能见教材P114。,2. 8086/8088主存地址的形成,段基值:在BIU中设置段寄存器,用以存放20位段起始地址的高16位,称为段基值。偏移量:由EU或指令指针IP提供段内的偏移量,即一个主存单元与所在段的段基址之间的字节距离。,4.1. 8086/8088寄存器,1. 段寄存器:CS(代码段寄存器)用来存放程序的指令代码序列,用来存放当前代码段段首址的高16位,即段基值。DS(数据段寄存器)存放程序的有关数据,用来存放当前数据段的段基值。SS(堆栈段寄存器)用来存放按后进先出顺序存取的信息。存放当前堆栈段的段基值。ES(附加段寄存器)存放运算结果或辅助数据,存放当前
3、附加段的段基值。,2 . 通用寄存器(1)地址指针寄存(2)数据寄存器3. 用于控制的寄存器(1)指令指针IP:(2)标志寄存器FR,作用类似于PC,当现行指令执行完毕,由IP提供下一条指令地址,4.2 主存储器,4.2.1 8086/8088主存储器的特点4.2.2 主存储器的段结构4.2.3 逻辑地址与物理地址逻辑地址:段基值和偏移量物理地址逻辑地址的来源,4.3 8086/8088堆栈,4.3.1 堆栈组织8086/8088的堆栈是由SS指定的一段存储区(64KB)构成,并采用向上(地址码减小)生成方式,由堆栈指针SP指向栈顶。SS提供堆栈段的段基值,SP的内容为栈顶单元相对堆栈段段基址
4、的字节距离(偏移量)。8086/8088堆栈规定以字(2个字节)为单位进行存取。,4.3.2 堆栈操作先设置堆栈,主要是对堆栈段寄存器SS物堆栈指针SP赋初值。对堆栈的操作均在栈顶进行的,其基本操作的:压栈:用压栈指令PUSH可以将通用寄存器、段寄存器或字存储单元内容压入堆栈。2. 出栈:用弹出指令POP可以将当前栈顶字单元内容取出送到通用寄存器、段寄存器或字存储单元中。,4.4 8086/8088指令系统,4.4.1 8086/8088寻址方式1 . 寄存器寻址方式:指令所需的操作数存放在CPU的寄存器(通用寄存器或段寄存器)中,通过指令中给出寄存器地址去找到操作数。,寻址过程:例:(BX)
5、 =1234H MOV AX,BX :将BX中的内 容送到AX中 (AX) =1234H,操作码 REC,操作数S,Ri,是指令代码中的寻址字段,表示操作数的寄存器地址,2. 立即数寻址方式,立即数寻址方式:指令所需的操作数直接在指令代码中,随着取指令一起取到BIU的指令队列中。,操作码,操作码,F5H,12H,34H,一条指令,一条指令,AX,AX,(A)MOV AX,1234H,(B)MOV AL,0F5H,3. 存储器寻址方式,在汇编语言程序中,一个存储单元的地址采用逻辑地址来表示:(形式:段基值:偏移量)段基值:是由某个段寄存器提供,由指令隐含给出。偏移量:是指存放操作数的存储单元与段
6、起始(段基址)之间的字节距离,字由CPU的EU按指令中操作数的寻址方式计算而得到,又称为有效地址EA。有效地址EA:由位移量、基地址、变址量三个地址分量的某种组合求得。,(1)直接寻址方式,定义:指令所需的操作数存放在存储单元中,操作数的有效地址EA直接由指令代码中的位移量提供。寻址过程:在源程序中,直接寻址方式可用数值地址或符号地址来表示。,EA,用数值地址表示:在采用直接寻址方式的汇编指令中,用数值表示操作数的有效地址,则操作数所在段的段寄存器必须指明,不能缺省。,MOV BX,DS:1000H完成将当前数据段偏移1000H个字节的字单元内容1234H送入BX中。,用符号地址表示:在源程序
7、中,常用符号地址表示存放操作数的存储单元,所以在汇编指令中,可用符号地址表示的直接寻址方式来存取操作数。例题:P130,(2)寄存器间接寻址方式,寄存器间接寻址方式:指令所需的操作数在存储单元中,操作数的有效地址EA直接从基址寄存器(BP或BX)或变址寄存器(SI或DI)中获得。见P131的图4-22 寄存器间接寻址方式,(2)寄存器间接寻址方式,SI,DI,BX,BP,OR,OR,OR,EA,寻址过程,是指令代码中的寻址字段,寄存器间接寻址方式实际上是将有效地址事先存放在一个寄存器中,如同一个地址指针。因此在程序中只要修改间址寄存器的内容,就可以用一条指令访问不同的存储单元。,(3)变址寻址
8、和基址寻址方式,变址寻址和基址寻址方式:指令所需的操作数在存储单元中,操作数的有效地址EA是基址寄存器(BP或BX)或变址寄存器(SI或DI)的内容与指令中给出的位移量(8位或16或)两个地址分量之和。使用SI或DI称为变址寻址。使用BX或BP称为基址寻址。,变址寻址和基址寻址方式,SI,DI,BX,BP,OR,OR,OR,+,EA,寻址方式的使用格式:变址或基址寻址方式用来访问顺序存放在主存中的一维数组、表格、字符串等。典型用法:是将指令中不能修改的位移量作为基准地址,而变址或基址寄存器内容作为修改量例题4-1:见教材132页。,(4)基址变址寻址方式,SI,DI,BP,BX,OR,OR,+
9、,EA,寻址过程,寻址方式的使用格式:基址变址寻址方式用来访问存放在主存中的二维数组。(其寻址方式中有两地址分量可在程序执行过程中进行修改)例题4-2:见教材133-134页。,4. 串操作寻址方式,串操作寻址方式:串操作指令规定:隐含使用SI作为在数据段中的源串(即源操作数)的地址指针隐含使用DI作为在附加段中的目的串的地址指针。,SI,DI,源串有效地址EA,目的串有效地址EA,4.4.2 8086/8088指令,8086/8088指令按操作数地址划分: 双操作数指令:OPR DEST,SRC 单操作数指令:OPR DEST 无操作数指令:OPR,8086/8088指令按功能划分: 传送类
10、指令 算术运算类指令 位操作类指令 串操作类指令 程序转移类指令 处理器控制类指令,具体内容见课件,四、串操作类指令,“串”是指存储器中一序列字或字节单元,其内容是字符或数据。串操作是对这一序列或字单元的内容进行某种操作。,1 . 取串指令指令格式:LODS源串指令功能:(1)AX/AL (DS:(SI)(2)SI (SI)1或2(3)对标志寄存器无影响2 . 存串指令指令格式:STOS目的串/STOSB/STOSW指令功能:(1)ES:(DI) (AX)/(AL)(2)DI (DI)1或2(3)对标志寄存器无影响,3 .串比较指令指令格式:MOVS目的串、源串/MOVSB/MOVSW指令功能
11、:(1)(ES:(DI) (DS:(SI)(2)SI (SI)1或2,DI (DI)1或2(3)对标志寄存器无影响4. 串比较指令指令格式:CMPSI源串,目的串/CMPSB/CMPSW指令功能:(1)(DS:(SI)(ES:(DI)(2) SI (SI)1或2, DI (DI)1或2(3)影响标志位OF,SF,ZF,AF,PF,CF,5 .串搜索指令指令格式:SCAS目的串/SCASB/SCASW指令功能:(1)(AX/AL)(ES:(DI)(2)DI (DI)1或2(3)影响标志位OF,SF,ZF,AF,PF,CF6. 重复前缀指令(3条)指令格式:REP重复执行串操作指令的条件是:(CX)0指令格式:REPE/REPZ重复执行串操作指令的条件是:(CX)0AND ZF=1指令格式:REPNE/REPNZ重复执行串操作指令的条件是:(CX)0 AND ZF=1,五、处理器控制指令,1. 标志位操作指令2. 与外部事件同步的指令3. 空操作指令,4.5 提高CPU性能的一些措施,了解自学,作业:,见教材P164,T3-27做在书上作业:做在作业本上1、编写一程序段,将AL的低4位与BL的低4位互换,AL和BL的高4位保持不变。2、编写计算5X-Y+10多项式值的程序段。说明:多项式值存于AX中,X、Y是无符号数,设中间和最后结果不超过16位二进制数。,
限制150内