《第31寻址方式》-精选课件(公开PPT)

上传人:zhuma****mei2 文档编号:136335877 上传时间:2020-06-27 格式:PPT 页数:46 大小:936KB
返回 下载 相关 举报
《第31寻址方式》-精选课件(公开PPT)_第1页
第1页 / 共46页
《第31寻址方式》-精选课件(公开PPT)_第2页
第2页 / 共46页
《第31寻址方式》-精选课件(公开PPT)_第3页
第3页 / 共46页
《第31寻址方式》-精选课件(公开PPT)_第4页
第4页 / 共46页
《第31寻址方式》-精选课件(公开PPT)_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《《第31寻址方式》-精选课件(公开PPT)》由会员分享,可在线阅读,更多相关《《第31寻址方式》-精选课件(公开PPT)(46页珍藏版)》请在金锄头文库上搜索。

1、微机原理与接口技术,2009年8月,第3章 寻址方式与指令系统,第3章 寻址方式与指令系统,3.1 指令系统概述 3.2 8086寻址方式 3.3 8086 指令系统,3.1 指令系统概述,3.1.1 指令的基本概念 程序:是由完成一个完整任务的一系列有序指令组成的有序集合。 指令:是指示计算机进行某种操作的命令,通常一条指令对应着一种基本操作。 指令系统:计算机所能执行的全部指令的集合,称为处理器的。 3.1.2 指令格式 计算机中的指令通常由操作码(Operation)和操作数(Operand)组成,如图3.1所示。操作码部分规定计算机所执行的操作;操作数部分也称为地址码,用来描述该指令的

2、操作对象。,3.1.3 8086汇编语言格式,标号:操作码 操作数 ;注释 1双操作数指令 大多数指令需要两个操作数,分别称两个操作数为源操作数和目标操作数,指令运算结果存入目标操作数的地址中去。这样,目标操作数的原有数据将被取代。 格式:操作码 DST,SRC 其中,DST为目标操作数,SRC为源操作数。 2单操作数指令 指令中只给出一个操作数。若指令只需要一个操作数,则此操作数通常作为目标操作数,在运算前提供源操作数,运算后存放运算结果。若指令需2个操作数,则另一操作数由指令隐含指定。 格式:操作码 DST 3无操作数指令 格式:操作码 例如: HLT ; 停机指令,是无操作数指令 INC

3、 AX ; 增1指令,是单操作数指令 ADD AX,BX ; 加法指令,是双操作数指令,3.1.4 指令的执行,要执行的程序段的指令,均保存在存储器中,当计算机需要执行一条指令时,首先产生这条指令的相应地址,并根据地址号打开相应的存储单元,取出指令代码,CPU根据指令代码的要求以及指令中的操作数,去行相应的操作。,指令的组成:,操作码 说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分 操作数 是指令执行的参与者,即各种操作的对象 有些指令不需要操作数,通常的指令都有一个或两个操作数,3.2 8086的寻址方式,指令的助记符格式,操作码 :对应着机器指令的一

4、个二进制编码 src 源操作数 ,表示参与指令操作的一个对象 dst 目的操作数 ,不仅可以作为指令操作的一个对象,还可以用来存放指令操作的结果 分号后的内容是对指令的解释,操作码 dst , src ;注释,指令中的操作数来自何处?,DS,ES,SS,CS,IP,数据暂存器,PSW标志 寄存器,执行部件控制电路,指令译码器,AX BX CX DX,AH,BH,CH,DH,SI,DI,BP,SP,AL,BL,CL,DL,寄存器组,指 令 队 列,总线 接口控制电路,运 算 器,地址加法器,、 指令1 指令2 指令3 指令4 、 数据1 数据2 数据3 、,AB,DB,CB,地 址 译 码 器,

5、操作数的表示,寻找操作数的过程就是操作数的寻址,立即数:指令中直接出现的、一个具体的数值。 寄存器: 存储器:指明数据在主存中位置的地址。,3大类寻址方式,立即数寻址方式 寄存器寻址方式 存储器寻址方式,直接寻址方式 寄存器间接寻址方式 变址寻址方式 基址变址寻址方式,传送指令MOV的格式,MOV dst , src ;dstsrc,CPU,内存,1. 立即数寻址方式,指令中的操作数直接存放在机器代码中,紧跟在操作码之后(操作数作为指令的一部分存放在操作码之后的主存单元中) 这种操作数被称为立即数 它可以是8位数值(00HFFH) 也可以是16位数值(0000HFFFFH) 立即数寻址方式常用

6、来给寄存器赋初值,立即数寻址指令,MOV AL , 05H ;AL05H MOV AX , 0102H ;AX0102H,注意: SRC 和 DST的字长一致 MOV AH, 3064H,特点:立即寻址方式中操作数可以从指令中直接取得,不需要运行总线周期,所以其显著特征是速度快。,立即数寻址,1 数据寻址方式 1. 立即数寻址 操作数直接存放在指令中,紧跟在指令操作码之后。这样的数称为立即数,相应的寻址方式称为立即寻址方式。这种寻址方式在汇编语言格式中表示为: 数字表达式 这个数字表达式的值可以是一个8位无符号整数,也可以是一个16位无符号整数,但不可以为小数。 例如: MOV AX,251

7、;将十进制数251送入寄存器AX,“251”是立即数 MOV AL,5 ;将5的ASCII码送入寄存器AL,其中5是立即数 MOV AL,0E8H ;将8位立即数E8H送入寄存器AL MOV AX,2346H ;将16位立即数2346H送入寄存器AX 可以看到,立即数寻址方式主要用来给寄存器或存储单元赋值,因此这种寻址方式不能用于单操作数指令;若用于双操作数指令,也只能用于源操作数字段,不能用于目标操作数字段。 特点:立即寻址方式中操作数可以从指令中直接取得,不需要运行总线周期,所以其显著特征是速度快。,2. 寄存器寻址方式,操作数存放在CPU的内部寄存器reg中,可以是: 8位寄存器: AH

8、、AL、BH、BL、CH、CL、DH、DL 16位寄存器: AX、BX、CX、DX、SI、DI、BP、SP 段寄存器seg:CS、DS、SS、ES,寄存器寻址指令,MOV BX , 1234H ;BX1234H MOV AX , BX ;AXBX,注意: SRC 和 DST的字长一致 MOV AH , BX CS不能用MOV指令改变 MOV CS , AX,寄存器寻址,3. 内存寻址方式,指令中给出是操作数的偏移地址或计算得到的偏移地址,即有效地址EA(Effective Address) 。 8086设计了多种内存寻址方式 1、直接寻址方式 2、寄存器间接寻址方式 3、寄存器相对寻址方式 4

9、、基址变址寻址方式 5、相对基址变址寻址方式,当操作数在内存中时为内存寻址,(1)直接寻址方式,例: MOV AL,1234H,EA由指令中直接给出的16位偏移量单独构成时,称为直接寻址。默认的段地址在DS段寄存器。 物理地址PA = (DS) 16d + EA,16位偏移量在方括号之内。, MOV AX,1234H,直接寻址,段超越是在偏移地址的前面加上段名来表示。 段寄存器:偏移地址,例:MOV BX,ES:2000H,默认的段地址在DS段寄存器,可使用段超越前缀改变,(2).寄存器间接寻址方式,操作数是在存储器中,但操作数地址的16位偏移地址包含在以下四个寄存器SI、DI、BP、BX之一

10、中,称为寄存器间接寻址。,段地址对应BX/SI/DI寄存器默认是DS,对应BP寄存器默认是SS;可用段超越前缀改变 MOV AX , SI ;AXDS:SI MOV AX, BP ;AXSS:BP,例:设DS = 3000H,SI = 1000H。 MOV AX,SI,寄存器间接寻址,(3)寄存器相对寻址方式,有效地址是寄存器内容与有符号8位或16位位移量之和,寄存器可以是BX、BP或SI、DI,段地址对应BX/SI/DI寄存器默认是DS,对应BP寄存器默认是SS;可用段超越前缀改变,MOV AX,DI+06H ;AXDS:DI+06H MOV AX,BP+06H ;AXSS:BP+06H,例

11、:设DS = 3000H,SI = 2000H,DISP = 1000H。 MOV AX,DISPSI,寄存器相对寻址,(4)基址变址寻址方式,有效地址由基址寄存器(BX或BP)的内容加上变址寄存器(SI或DI)的内容构成:,MOV AX,BX+SI ;AXDS:BX+SI MOV AX,BP+DI ;AXSS:BP+DI MOV AX,DS:BP+DI ;AXDS:BP+DI,段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;可用段超越前缀改变,例:设DS=4000H,BX=1000H,SI=2000H。 MOV AX,BXSI,基址变址寻址,(5)相对基址变址寻址方式,有效

12、地址是基址寄存器(BX/BP)、变址寄存器(SI/DI)与一个8位或16位位移量之和:,MOV AX,BX+SI+06H ;AXDS:BX+SI+06H,段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;可用段超越前缀改变,例:设DS=3000H,BX=1000H,SI=2000H,DISP=0200H。 MOV AX,DISPBXSI,相对基址变址寻址,用符号表示位移量,在寄存器相对寻址或相对基址变址寻址方式中,位移量可用符号表示: MOV AX,SI+COUNT ;COUNT是事先定义的变量或常量(就是数值) MOV AX,BX+SI+WNUM ;WNUM也是变量或常量,多

13、种表达形式,同一寻址方式可以写成不同的形式: MOV AX , BXSI ;等同于 MOV AX , BX+SI MOV AX , COUNTSI ;等同于 MOV AX , SI+COUNT MOV AX , WNUMBXSI ;等同于 MOV AX , WNUMBX+SI ;等同于 MOV AX , BX+SI+WNUM,总结:寻址方式,立即数寻址方式 寄存器寻址方式 内存寻址方式,直接寻址方式 寄存器间接寻址方式 寄存器相对寻址方式 基址变址寻址方式 相对基址变址寻址方式,寻址方式小结,立即寻址、寄存器寻址,【例1】下列程序执行后,(AX)=?(BX)=? MOV AX,1234H MO

14、V BX,5678H ADD AX,BX ; AX (AX)+(BX),执行:1234HAX ; 5678HBX ; (AX)+(BX)AX 执行后:(AX)=68ACH,(BX)=5678H,直接寻址,【例2】 已知(DS)=2000H , (ES)=3000H , (32000H)字节=15H, (32001H)字节=24H。 执行指令 MOV AX , ES: 2000H 执行后(AX)?,若执行 MOV AL , ES :2000H 则 (AL)=15H,EA = 2000H PA = (ES)10H+EA= 32000H (AX) = 2415H,3.2.2 程序地址寻址方式,1.

15、段内直接寻址 这种寻址方式的汇编格式有三种: 指令名 SHORT 转移目标地址标号 指令名 转移目标地址标号 指令名 NEAR PTR 转移目标地址标号 指令中直接指明了要转移的目标地址,因此叫直接寻址;又因为这种指令只改变IP寄存器的值而不改变CS寄存器的值,因此又叫段内寻址。汇编这种指令寻址方式时,汇编程序计算转移目标地址标号与本条指令的下一条指令的地址的差值,将其补码称为位移量,写入指令的地址码字段。,当执行这种寻址方式的转移指令时,机器取出位移量,与当前(IP)相加,和送入IP寄存器中,CS寄存器内容保持不变,从而实现转移,如图3.12所示:,图3.12 段内直接寻址示意图 由此可看出,这种寻址方式实现的是相对转移。 位移量不同,转移范围不同。当位移量为8位时,只允许转移到与本条指令的下一条指令相距-128+127范围内的存储单元去。当位移量为16位时,允许转移到当前代码段内任何地方。 要注意的是:条件转移指令的位移量只能是8位,而无条件转移的指令可以是8位,也可以是16位。8位叫短跳转,16位叫近跳转。,2. 段间直接寻址 这种寻址方式的汇编格式有以下两种形式: 指令名 FAR PTR 转移地址标号 指令名 段地址:段偏移地址 指令中直接指明了要转移的目标地址,此转

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号