《指令的寻址方式》PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(*)四个部分可以用制表符隔开。
• 寻址方式:指令中给出操作数的方式
操作数的寻址,例如 MOV AX,[1234H]Байду номын сангаас指令的寻址, 例如 JUMP LAB
操作数的来源: ①指令代码中直接给出。 MOV AX,1200H
②存放在寄存器中。
MOV AX,BX
③存放在指定的存储单元中。 MOV AX,[3456H]
址的组合 错误:MOV AX,[SI][DI] MOV AX.[BX][BP]
(4D)相对基址变址寻址:
例如: MOV AX,100[BX][SI] MOV AX,[BX+SI+100H] MOV AX,100[BX+SI]
(*)所有的存储器操作数寻址方式都支持段跨越前缀。 (*)使用BP寄存器做间接寻址时注意默认的段。
(4C)基址变址寻址: 基址变址寻址是操作数的有效地址EA由指令 指定的一个基址寄存器(BX或BP)和一个变址寄 存器(SI或D1)内容之和。
例如: MOV AX, [BX][DI] MOV AX ,[BX+DI]
(*)基址变址寻址可以用来寻址二维表中的数据 (*)要注意只能是基址和变址的组合而不能用两个基址或两个变
(1)数据传送类指令
(4)字符串处理指令
(2) 算术运算类指令
(5)控制转移类指令
(3)逻辑运算与移位类指令 (6)处理器控制类指令
一、传送指令
指令类型 通用数据传送 目标地址传送 标志位传送 I/O数据传送
4、间接寻址 (4A)寄存器间接寻址:操作数的有效地址在指令中指定的某个寄存
器中。
例如:MOV AX, [BX]
(*)可用的寄存器只有四个BX,BP,SI,DI 错误:MOV AX,[DX]
(*)如果间址寄存器为BP则默认为是堆栈段,如果间址寄存器为 BX,SI,DI则默认为是数据段。 (*)在一条指令中,不能同时有两个存储器操作数 (避免指令过
测试题一:
写出下列指令中源操作数的寻址方式:
(1)MOV SI,1000
(2)MOV BH,AL .
(3)MOV AX, [SI][BX] (4)MOV BP,[BX]
(5)MOV DI,[2130H] (6)MOV DL,[BX十SI十20H]
(7)MOV DI,[BX十100]
测试题二: 指出下列指令的错误之处 (1)MOV 1000H,AX (2)MOV AX,[DX] (3)MOV AX,[SI][DI] (4)MOV [BX],[SI] (5)MOV BP,AL
• 汇编语言:采用助记符表示的程序设计语言。汇编语言源程序是 机器语言程序的符号表示。(编译器处理)
MOV AX,O3H
• 汇编语言指令的格式:标号:指令助记符 操作数 ;注释
例如:
LINE1: INC CX
;计数器加一
ADD AX, BX
DAA
(*)标号的命名规则 (*)指令助记符不可缺省 (*)操作数在不同的情况下可以有2个,1个或者是没有 (*)注释必须以分号开头,注释不生成目标代码
测试题三: 设有关寄存器及有关存储单元的内容如下: (DS)=2000H, (BX)=0100H, (SI)=0002H, (20100H)=12H (20101H)=34H, (20102H)=56H, (20103H)=78H (21200H)=2AH, (21201H)=4CH, (21202H)=0B7H (21203H)=65H
5.1 8086指令的寻址方式
• 指令:微处理器提供的某一种基本操作功能。 (*)进行什么操作(操作码) (*)对什么进行操作(操作数或操作数的来源) 操作后的结果数据可以存放到某个原来的操作数位置
• 指令系统: 计算机提供所有的指令的集合。 (*)指令系统随CPU的不同而不同
• 机器语言:采用二进制的机器码表示指令、数据和指令 数据的地址等信息的。10111000 00000101 00000000
试说明下列各条指令执行后AX寄存器的内容 (1)MOV AX,1200H (2)MOV AX,BX (3)MOV AX,[1200H] (4)MOV AX,[BX] (5)MOV AX,1100[BX] (6)MOV AX,[BX+SI]
5.2 8086指令系统
8086/8088指令系统共包含133条基本指令,按功能可分为六类
1、立即寻址: 操作数直接包含在指令中,在操作码之后。, (*)不必执行总线周期访问存储器,故称之为立即数。 (*)立即数可以是一个8位或16位数。 例如: MOV AL, 80H
MOV AX, 1090H (*)立即数寻址方式只能用于源操作数,不能用于目的操作数。
错误:MOV 1200,AX
2、寄存器寻址:操作数包含在CPU内的某个寄存器中,指令中直 接给出该寄存器名, 16位:AX,BX,CX,DX, SI, DI, SP,BP 8位:AL,BL,CL, DL,AH,BH,CH,DH
例如:INC CX MOV AX, BX
以下介绍的几个寻址方式将针对存储器操作数而言的。若操作数 在存储器中,一般位于数据段、堆栈段或附加段中,这时指令中 给出的是操作数所在单元的地址(EA)或产生EA的计算方式。显然 执行这类指令时: ①CPU首先要计算出有效地址EA(EA是一个不带符号的16位数) ②再由总线接口部件BIU计算出物理地址 ③再执行总线周期按该物理地址访问存储器并取出操作数送给EU, 由EU具体执行该指令。
长)。错误:MOV [BX],[1200H]
(4B)寄存器相对间接寻址: 有效地址EA等于指令所指示的寄存器 中 的内容再加上指令中给定的8/16位的位移量。
例如: MOV AX, [SI+100] MOV AX, [SI]+100 MOV AX, 100[SI]
(*)寄存器相对寻址有以上三种写法 (*)寄存器相对寻址可以用来寻址一维表中的数据
3、直接寻址:操作数在存储器中的16位有效地址由指令直接给出。
例如: MOV AX, [1070H] MOV AL, [1070H]
(*)要用方括号括起地址以免与立即数寻址混淆 (*)默认是从数据段取数,如果不是数据段则要在前面加段跨越
前缀 例如:MOV BX, [2000H]
MOV BX, ES:[2000H]
• 寻址方式:指令中给出操作数的方式
操作数的寻址,例如 MOV AX,[1234H]Байду номын сангаас指令的寻址, 例如 JUMP LAB
操作数的来源: ①指令代码中直接给出。 MOV AX,1200H
②存放在寄存器中。
MOV AX,BX
③存放在指定的存储单元中。 MOV AX,[3456H]
址的组合 错误:MOV AX,[SI][DI] MOV AX.[BX][BP]
(4D)相对基址变址寻址:
例如: MOV AX,100[BX][SI] MOV AX,[BX+SI+100H] MOV AX,100[BX+SI]
(*)所有的存储器操作数寻址方式都支持段跨越前缀。 (*)使用BP寄存器做间接寻址时注意默认的段。
(4C)基址变址寻址: 基址变址寻址是操作数的有效地址EA由指令 指定的一个基址寄存器(BX或BP)和一个变址寄 存器(SI或D1)内容之和。
例如: MOV AX, [BX][DI] MOV AX ,[BX+DI]
(*)基址变址寻址可以用来寻址二维表中的数据 (*)要注意只能是基址和变址的组合而不能用两个基址或两个变
(1)数据传送类指令
(4)字符串处理指令
(2) 算术运算类指令
(5)控制转移类指令
(3)逻辑运算与移位类指令 (6)处理器控制类指令
一、传送指令
指令类型 通用数据传送 目标地址传送 标志位传送 I/O数据传送
4、间接寻址 (4A)寄存器间接寻址:操作数的有效地址在指令中指定的某个寄存
器中。
例如:MOV AX, [BX]
(*)可用的寄存器只有四个BX,BP,SI,DI 错误:MOV AX,[DX]
(*)如果间址寄存器为BP则默认为是堆栈段,如果间址寄存器为 BX,SI,DI则默认为是数据段。 (*)在一条指令中,不能同时有两个存储器操作数 (避免指令过
测试题一:
写出下列指令中源操作数的寻址方式:
(1)MOV SI,1000
(2)MOV BH,AL .
(3)MOV AX, [SI][BX] (4)MOV BP,[BX]
(5)MOV DI,[2130H] (6)MOV DL,[BX十SI十20H]
(7)MOV DI,[BX十100]
测试题二: 指出下列指令的错误之处 (1)MOV 1000H,AX (2)MOV AX,[DX] (3)MOV AX,[SI][DI] (4)MOV [BX],[SI] (5)MOV BP,AL
• 汇编语言:采用助记符表示的程序设计语言。汇编语言源程序是 机器语言程序的符号表示。(编译器处理)
MOV AX,O3H
• 汇编语言指令的格式:标号:指令助记符 操作数 ;注释
例如:
LINE1: INC CX
;计数器加一
ADD AX, BX
DAA
(*)标号的命名规则 (*)指令助记符不可缺省 (*)操作数在不同的情况下可以有2个,1个或者是没有 (*)注释必须以分号开头,注释不生成目标代码
测试题三: 设有关寄存器及有关存储单元的内容如下: (DS)=2000H, (BX)=0100H, (SI)=0002H, (20100H)=12H (20101H)=34H, (20102H)=56H, (20103H)=78H (21200H)=2AH, (21201H)=4CH, (21202H)=0B7H (21203H)=65H
5.1 8086指令的寻址方式
• 指令:微处理器提供的某一种基本操作功能。 (*)进行什么操作(操作码) (*)对什么进行操作(操作数或操作数的来源) 操作后的结果数据可以存放到某个原来的操作数位置
• 指令系统: 计算机提供所有的指令的集合。 (*)指令系统随CPU的不同而不同
• 机器语言:采用二进制的机器码表示指令、数据和指令 数据的地址等信息的。10111000 00000101 00000000
试说明下列各条指令执行后AX寄存器的内容 (1)MOV AX,1200H (2)MOV AX,BX (3)MOV AX,[1200H] (4)MOV AX,[BX] (5)MOV AX,1100[BX] (6)MOV AX,[BX+SI]
5.2 8086指令系统
8086/8088指令系统共包含133条基本指令,按功能可分为六类
1、立即寻址: 操作数直接包含在指令中,在操作码之后。, (*)不必执行总线周期访问存储器,故称之为立即数。 (*)立即数可以是一个8位或16位数。 例如: MOV AL, 80H
MOV AX, 1090H (*)立即数寻址方式只能用于源操作数,不能用于目的操作数。
错误:MOV 1200,AX
2、寄存器寻址:操作数包含在CPU内的某个寄存器中,指令中直 接给出该寄存器名, 16位:AX,BX,CX,DX, SI, DI, SP,BP 8位:AL,BL,CL, DL,AH,BH,CH,DH
例如:INC CX MOV AX, BX
以下介绍的几个寻址方式将针对存储器操作数而言的。若操作数 在存储器中,一般位于数据段、堆栈段或附加段中,这时指令中 给出的是操作数所在单元的地址(EA)或产生EA的计算方式。显然 执行这类指令时: ①CPU首先要计算出有效地址EA(EA是一个不带符号的16位数) ②再由总线接口部件BIU计算出物理地址 ③再执行总线周期按该物理地址访问存储器并取出操作数送给EU, 由EU具体执行该指令。
长)。错误:MOV [BX],[1200H]
(4B)寄存器相对间接寻址: 有效地址EA等于指令所指示的寄存器 中 的内容再加上指令中给定的8/16位的位移量。
例如: MOV AX, [SI+100] MOV AX, [SI]+100 MOV AX, 100[SI]
(*)寄存器相对寻址有以上三种写法 (*)寄存器相对寻址可以用来寻址一维表中的数据
3、直接寻址:操作数在存储器中的16位有效地址由指令直接给出。
例如: MOV AX, [1070H] MOV AL, [1070H]
(*)要用方括号括起地址以免与立即数寻址混淆 (*)默认是从数据段取数,如果不是数据段则要在前面加段跨越
前缀 例如:MOV BX, [2000H]
MOV BX, ES:[2000H]