第四章 典型CPU及指令系统举例.ppt
《第四章 典型CPU及指令系统举例.ppt》由会员分享,可在线阅读,更多相关《第四章 典型CPU及指令系统举例.ppt(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章 典型CPU及指令系统举例,学习内容:,41 8086/8088 CPU的结构42 主存储器43 8086/8088堆栈44 8086/8088指令系统45 提高CPU性能的一些措施,学习目标,理解8086/8088CPU的寄存器结构、主存储器、堆栈结构。掌握8086/8088指令系统的寻址方式。(本章的重点内容)理解8086/8088指令类型。了解提高CPU性能的一些措施与当前常用的实际CPU基本组成。,重点难点:8086/8088指令系统的寻址方式。课时安排:6课时。媒体使用:使用多媒体投影,主要采用PowerPoint准备的电子教案。,4.1 8086/8088CPU,4.1.1
2、8086/8088CPU的结构1. 8086/8088内部结构:8086/8088CPU采用指令流水线结构,将取指令(或取操作数)与执行指令的功能分别由两个独立部件实现,即总线接口部件BIU与执行部件EU,主要任务是完成CPU与主存储器或I/O之间的信息传送。,主要任务是执行指令,1、执行部件EU:包括一个16位算术逻辑部件ALU、一组通用寄存器、暂存器、标志寄存器和EU控制器。2、EU主要任务是执行指令。3、执行部件EU功能见教材P114。,总线接口部件BIU见教材P115。,1、总线接口部件BIU:包括一段寄存器、指令指针、6字节的指令队列、20位总线地址形成部件和总线控制逻辑。2、BIU
3、主要任务是完成CPU与主存储器或I/O端口之间的信息传送。3、总线接口BIU功能见教材P115。,2. 8086/8088主存地址的形成,段基值:在BIU中设置段寄存器,用以存放20位段起始地址的高16位,称为段基值。偏移量:由EU或指令指针IP提供段内的偏移量,即一个主存单元与所在段的段基址之间的字节距离。(16位)段基址:由段基值左移4位后,得到一个物理地址。,二者相加形成20位主存单元的物理地址。,2. 8086/8088主存地址的形成,2. 8086/8088主存地址的形成,我们把提供一个20位地址的两个寄存器中的值分别称之为:20位寄存器中的值称之为段基址(Segment base
4、value)16位寄存器中的值称之为偏移量(Offset)或有效地址(Effective address)段基址是由四个段寄存器提供20位的高16位,低四位补0形成的偏移量是由CPU内的EU部分提供的,4.1. 8086/8088寄存器,1. 段寄存器:CS(代码段寄存器)用来存放程序的指令代码序列,用来存放当前代码段段首址的高16位,即段基值。DS(数据段寄存器)存放程序的有关数据,用来存放当前数据段的段基值。SS(堆栈段寄存器)用来存放按后进先出顺序存取的信息。存放当前堆栈段的段基值。ES(附加段寄存器)存放运算结果或辅助数据,存放当前附加段的段基值。,1.段寄存器,8086/8088CP
5、U,2 . 通用寄存器(1)地址指针寄存(2)数据寄存器3. 用于控制的寄存器(1)指令指针IP:(2)标志寄存器FR,作用类似于PC,当现行指令执行完毕,由IP提供下一条指令地址,4.2 主存储器4.2.1 8086/8088主存储器的特点,8086/8088CPU有20条地址引出线,因此具有1M字节(210*210=220)的寻址能力,即可以在1M个字节单元中寻找出所需的一个存储单元。在8086/8088主存中,一个字节数据占用一个存储单元。一个字(Word)数据(16位)则占用二个相邻的存储单元,数的低8位(低字节)存放在低地址单元;高8位(高字节)存放在高地址单元,并以低字节所在存储单
6、元地址作为字数据的单元地址。,4.2.2 主存储器的段结构,8086/8088把1MB主存空间按需要划分为若干段(segment)。每个段都由连续的字节单元组成,最大长度为64K(即65536),可作为独立寻址的逻辑单位。一个段起始单元的地址,称为对应段的段基址(20位)。,4.2.2 主存储器的段结构,在程序中设置的段称为逻辑段。主存可分成任意多个段,但在某一时刻,一个程序只能访问4个段寄存器指向的当前段的内容。4个段寄存器CS、DS、SS和ES,分别保存代码段、数据段、堆栈段和附加段这4个当前段的段基址的高16位段基值。,4.2.3 逻辑地址与物理地址,逻辑地址段基值:偏移量(书写形式)(
7、1)段基值:由某个段寄存器(CS,DS,SS,ES)给出,它是段基址的高16位。(2)偏移量:(也称偏移地址)由IP或EU按寻址方式产生的有效地址提供,它是段内某存储单元与段基址之间的字节距离。物理地址是指实际的20位主存单元地址,1MB主存空间的每个存储单元只对应惟一的物理地址,其范围为00000HFFFFFH。,逻辑地址物理地址的转换方式: 将段基值左移4位形成20位段基址,再加上偏移量,产生20位物理地址。逻辑地址的来源CPU在执行指令时,是按指令所需的操作类型从不同的来源获得存储单元的逻辑地址,然后形成对应的物理地址以访问主存。(具体内容见教材的P124表4-2逻辑地址的来源),4.3
8、 8086/8088堆栈,4.3.1 堆栈组织8086/8088的堆栈是由SS指定的一段存储区(64KB)构成,并采用向上(地址码减小)生成方式,由堆栈指针SP指向栈顶。SS提供堆栈段的段基值,SP的内容为栈顶单元相对堆栈段段基址的字节距离(偏移量)。8086/8088堆栈规定以字(2个字节)为单位进行存取。,4.3.2 堆栈操作,堆栈组织,4.3.2 堆栈操作,先设置堆栈,主要是对堆栈段寄存器SS物堆栈指针SP赋初值。对堆栈的操作均在栈顶进行的,其基本操作的压栈出栈,压 栈,压栈-用压栈指令PUSH可以将通用寄存器、段寄存器或字存储单元内容压入堆栈。执行压栈指令PUSH的操作过程分二步进行:
9、(1)(SP)-2SP;首先修改栈顶指针,SP减2以指向空字单元(即新栈顶)(2)数据(SP);将寄存器或存储单元内容送入SP指向的空字单元中,(AL)=34H,(AH)=12H,(BH)=56H,(BL)=78H,BX,AX,56,78,12,34,(SP)-2SP;(AX) (SP),压栈之前(SP),(SP)-2SP;(BX) (SP),压栈指令,出栈,出栈-用弹出指令POP可以将当前栈顶字单元内容取出送到通用寄存器、段寄存器或字存储单元中。执行出栈指令POP的操作过程分二步进行:(1)(SP)寄存器/字单元;将栈顶单元内容送到指定的寄存器或字单元(2)(SP)+2SP;修改栈顶指针,S
10、P加2以指向新栈顶,BX,AX,56,78,12,34,(BL)=78H,(BH)=56H,(AL)=34H,(AH)=12H,(SP) BX;(SP)+2SP,(SP) AX;(SP)+2SP,出栈之后(SP),AX,BX,堆栈操作-1.压栈2.出栈,4.4 8086/8088指令系统,4.4.1 8086/8088寻址方式1 . 寄存器寻址方式:指令所需的操作数存放在CPU的寄存器(通用寄存器或段寄存器)中,通过指令中给出寄存器地址去找到操作数。,寻址过程:例:(BX) =1234H MOV AX,BX :将BX中的内 容送到AX中 (AX) =1234H,操作码 REC,操作数S,Ri,
11、是指令代码中的寻址字段,表示操作数的寄存器地址,2. 立即数寻址方式,立即数寻址方式:指令所需的操作数直接在指令代码中,随着取指令一起取到BIU的指令队列中。,操作码,操作码,F5H,12H,34H,一条指令,一条指令,AX,AX,(A)MOV AX,1234H,(B)MOV AL,0F5H,3. 存储器寻址方式,在汇编语言程序中,一个存储单元的地址采用逻辑地址来表示:(形式:段基值:偏移量)段基值:是由某个段寄存器提供,由指令隐含给出。偏移量:是指存放操作数的存储单元与段起始(段基址)之间的字节距离,字由CPU的EU按指令中操作数的寻址方式计算而得到,又称为有效地址EA。有效地址EA:由位移
12、量、基地址、变址量三个地址分量的某种组合求得。,段基址,段基值左移四位,段基值,(1)直接寻址方式,定义:指令所需的操作数存放在存储单元中,操作数的有效地址EA直接由指令代码中的位移量提供。寻址过程:在源程序中,直接寻址方式可用数值地址或符号地址来表示。,EA,用数值地址表示:在采用直接寻址方式的汇编指令中,用数值表示操作数的有效地址,则操作数所在段的段寄存器必须指明,不能缺省。MOV BX,DS:1000H完成将当前数据段偏移1000H个字节的字单元内容1234H送入BX中。,用符号地址表示:在源程序中,常用符号地址表示存放操作数的存储单元,所以在汇编指令中,可用符号地址表示的直接寻址方式来
13、存取操作数。若指令中不必给出数据段寄存器名,即隐含使用DS;其他须指定。例题:P130,(2)寄存器间接寻址方式,寄存器间接寻址方式:指令所需的操作数在存储单元中,操作数的有效地址EA直接从基址寄存器(BP或BX)或变址寄存器(SI或DI)中获得。见P131的图4-22 寄存器间接寻址方式。若以BX,SI或DI间接寻址时,隐含使用的段寄存器是DS,若以BP间接寻址时,隐含使用的段寄存器是SS。,SI,DI,BX,BP,OR,OR,OR,EA,寻址过程,是指令代码中的寻址字段,寄存器间接寻址方式实际上是将有效地址事先存放在一个寄存器中,如同一个地址指针。因此在程序中只要修改间址寄存器的内容,就可
14、以用一条指令访问不同的存储单元。,(2)寄存器间接寻址方式,变址寻址和基址寻址方式:指令所需的操作数在存储单元中,操作数的有效地址EA是基址寄存器(BP或BX)或变址寄存器(SI或DI)的内容与指令中给出的位移量(8位或16或)两个地址分量之和。使用SI或DI称为变址寻址。使用BX或BP称为基址寻址。,(3)变址寻址和基址寻址方式,变址寻址和基址寻址方式,SI,DI,BX,BP,OR,OR,OR,+,EA,寻址方式的使用格式:变址或基址寻址方式用来访问顺序存放在主存中的一维数组、表格、字符串等。典型用法:是将指令中不能修改的位移量作为基准地址,而变址或基址寄存器内容作为修改量例题4-1:见教材
15、132页。,(4)基址变址寻址方式,SI,DI,BP,BX,OR,OR,+,EA,寻址过程,寻址方式的使用格式:基址变址寻址方式用来访问存放在主存中的二维数组。(其寻址方式中有两地址分量可在程序执行过程中进行修改)例题4-2:见教材133-134页。,上半部分表示由CPU的执行部件EU根据寻址方式计算有效地址EA。,下半部分表示由总线接口部件BIU形成操作数的物理地址。按操作数的物理地址就可直接访问操作数的存储单元。,4. 串操作寻址方式,串操作寻址方式:串操作指令规定:隐含使用SI作为在数据段中的源串(即源操作数)的地址指针隐含使用DI作为在附加段中的目的串的地址指针。,SI,DI,源串有效
16、地址EA,目的串有效地址EA,5. I/O端口寻址,了解,4.4.2 8086/8088指令,8086/8088指令按操作数地址划分: 双操作数指令:OPR DEST,SRC 单操作数指令:OPR DEST 无操作数指令:OPR,8086/8088指令按功能划分: 传送类指令 算术运算类指令 位操作类指令 串操作类指令 程序转移类指令 处理器控制类指令,一、传送类指令,分类:(仅存标志指令SAHF、标志出栈指令POPF对标位有影响)数据传送类指令交换指令标志位传送指令地址传送指令,1数据传送类指令(Move),格式:MOV DEST,SRC功能: DEST(SRC)将源地址的内容(源操作数)传
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 典型 cpu 指令系统 举例
限制150内