操作数的寻址方式
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CH CL DH DL
SP BP SI DI
16位
16位
CS
DS
SS
输入/输出
ES
控制电路
IP
外
内部暂存器
部
总
线
ALU
标志寄存器
执行部分 控制电路
12 3 4 5 6
8位
指令队列缓冲器
①②③MOV AX , 1B[B2XX3]4H
执行部件 (EU)
总线接口部件 (BIU)
寻址方式中的符号表示
符号 含义
2020年5月9日星期六
12
直接寻址方式——举例
➢ 执行指令MOV BX , [1234H]时,(DS)=2000H,存储单元 21234H的值为5213H,问执行该指令后BX的值是什么?
✓ 该指令源操作数的寻址方式为直接寻址方式;
✓ 有效地址EA = 1234H,无段超越,为默认的DS段;
✓ 物理地址PA = 2000H ×16 + 1234H = 21234H
✓物理地址PA =(DS)×16 + EA
➢ 若数据不在DS段,可用显式指明段寄存器的段超越方式。
✓指令形式:MOV ES:[100H] , AL
✓物理地址PA =(ES)×16 + 100H
➢ 指令MOV AX , [100H]与MOV AX , SS:[100H]执行结果是 否相同?
✓ 不相同!所访问存储单元不同。
两条指令为立即数寻址方式;
✓ 数据数制不同:前两条为十六进制;第三条为十进制。
➢ 问2:MOV AX,X 和 MOV AX,[X] 效果一样吗?
✓ 一样。符号地址加不加括号指的都是之前定义的单元。
➢ 问3:高级语言的 y=x; 用汇编指令如何实现?
✓ 需要使用两条指令完成赋值。
MOV AX,X MOV Y ,AX
➢ 除IP、FR外的所有寄存器(包括段寄存器)都可以用作寄 存器寻址方式。
➢ 由于操作数存在于CPU中,指令执行时不需访存,因此具 有较快的执行速度。
2020年5月9日星期六
9
寄存器寻址方式举例
➢ MOV AX , 1234H ;(AX)=1234H
✓ 源操作数是立即数寻址方式;
✓ 目的操作数是寄存器寻址方式。
BH
BL
MOV X1 , 34
MOV AL , 300 正确吗? 位数不匹配,不正确!
代码段
BB
操作码
78
低地址单元
34
高地址单元
2020年5月9日星期六
……
8
3.2 寄存器寻址方式
➢ 寄存器寻址方式 ✓操作数在寄存器中,指令的操作码之后给出该寄存器的编 号或名称。 ✓ 某些系统的指令是将寄存器编号与操作码一起编码的。
✓ 所以,该指令执行后 (BX)=5213H
……
21234H 13H
21235H 52H
……
2020年5月9日星期六
13
思考问题
MOV AX,[2000H]
➢ 问1:右边所示的三条指令有何不同?
MOV AX,2000H MOV AX,2000
✓ 源操作数的寻址方式不同:第一条指令为直接寻址方式;后
2020年5月9日星期六
1
寻址方式
➢ 寻址方式可分为指令寻址和数据寻址两种类型;
本章主要介绍数据寻址方式。
➢ 数据寻址方式
✓ 在指令中,指定操作数或操作数存放位置的方法。
➢ 一般,指令系统中会设计多种操作数的寻址方式;
✓ 操作数采取不同的寻址方式,指令的执行速度也会不同。
思考:数据、程序都在存储器中,如何区分?
➢ 特点 ✓ 优点:执行速度快;
不需访存即可执行
✓ 缺点:立即数不能修改,通用性差(适用于常数)。
➢ 注意:
✓ 立即数不能作为目的操作数;
✓ 可以为8位也可以为16位,常用于给寄存器赋值。
2020年5月9日星期六
7
立即数寻址方式举例
➢ MOV BL , 12H ➢ MOV BX,3478H
✓机器指令:BB 78 34 ✓ 在存储器中的存放格式
答:由控制器区分,通过CS和IP寻址的为指
令,其他为数据。
2020年5月9日星期六
2
示例指令
➢ 数据传送指令 ✓MOV <目的操作数>,<源操作数>
➢ 例如: ✓MOV AX , 1234H ✓MOV AX , BX ✓MOV AX , [BX]
➢ 注意:寻址方式是针对操作数的,而不是指令的。 ✓ 指定操作数的寻址方式时,一定要指明是对源操作数还是对 目的操作数而言。
Imm 立即数
R
寄存器
SR
段寄存器
M
存储单元
S
源操作数
D
目的操作数
() …中的数据
[]
地址单元
2020年5月9日星期六
➢ (BX)=1000H ➢ [BX]=…… ➢ [2000H]=…… ➢ (AX)=(AX)+(BX)
6
3.1 立即数寻址方式
➢ 立即数寻址方式
✓ 操作数的数值紧跟在操作码之后,直接在指令中出现。
2020年5月9日星期六
3
指令中数据的位置
➢ 指令中 ✓ 立即数寻址方式;
➢ 寄存器中 ✓ 寄存器寻址方式;
➢ 存储单元中 ✓ 直接、间接、相对、基址变址、相对基址变址寻址方式;
区别在于:形成操作数有效地址的方式不同;
2020年5月9日星期六
4
地址加法器
∑
20位
AH AL 通用寄存器
BH BL
➢ MOV BX , AX ; (BX)=(AX)=1234H
✓ 源操作数及目的操作数均为寄存器寻址方式。
➢ MOV X , AX
✓ 源操作数是寄存器寻址方式;
✓ 目的操作数是直接寻址方式。
2020年5月9日星期六
10
3.3 直接寻址方式
➢ 直接寻址方式
✓ 操作数在存储单元中,指令的操作码之后给出该存储单元的 有效地址。
2020年5月9日星期六
14
Biblioteka Baidu 3.4 寄存器间接寻址方式
➢ 寄存器间接寻址方式 ✓操作数在存储单元中,指令的操作码之后给出存放该单元 有效地址的寄存器编码或名称。
➢ 有效地址EA
✓ 也称为偏移地址,是相对于段起始地址的偏移量;
✓ 指令中,EA可以是数值形式,也可以是符号地址形式;
✓例如:MOV AX , [100H]
;数值地址必须加方括号
MOV AX , DATA
;符号地址必须事先定义
2020年5月9日星期六
11
直接寻址方式——物理地址的形成
➢ 在默认情况下,数据在DS段中
3.0 寻址方式预备知识
指令格式
操作码
操作数
➢ 指令由操作码和操作数两部分组成; ✓ 操作码说明计算机要执行哪种操作,用一个唯一的助记符 表示,对应着一个机器指令的二进制编码; ✓ 操作数是指令执行的参与者,即各种操作的对象;
➢ 指令中操作码是不可缺少的,但操作数则是可选部分; ✓ 16位系统中,操作数的数目一般为0~2个,用逗号分隔。