第3章指令系统与寻址方式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例1 MOV AX,MASK[BX][SI] 或 MOV AX,[MASK+BX+SI] 或 MOV AX,[BX+SI].MASK 有效地址:EA=MASK+(BX)+(SI) 物理地址= (DS)+EA 返回
练习: 已知(DS)=1500H,(SS)=2500H, (ES)=4350H, TABLE=4780H,VALUE=7567H,(BX)=4080H 求下列指令操作数的物理地址。 MOV MOV MOV MOV MOV MOV AX,105 AL,BH AX,DS:[1250] AX,TABLE AX,[BX] CX,[VALUE] MOV DS:[3A47H], AH
3.3.2 实验示例
示例3-1 根据题目要求,写出相应的汇编指 令: ( 1 ) AX 、 BX 寄 存 器 分 别 赋 值 为 0008H 和 0006H (2)AX和BX的内容相加,结果在AX中 (3)用寄存器间接寻址将相加的结果保存到 6号单元。 指令如下: MOV AX,0008H MOV BX,0006H ADD AX,BX MOV [BX],AX HLT ;停机指令
返回
基址变址寻址方式
操作数的物理地址 =(DS)×10H+(BX) + ( SI ) =(DS)×10H+(BX) + ( DI ) =(SS)×10H+(BP) + ( SI ) =(SS)×10H+(BP) + ( DI )
例1 MOV AX,[BX+DI] 执行前:(DS)=2100H,(BX)=0158H (DI)=10A5H,(AX)=0FFFFH (221FD)=34H,(221FE)=12H 有效地址: EA=(BX)+(DI)= 0158+10A5 =11FDH 物理地址 =21000+11FD =221FDH 执行后:(AX)=1234H
MOV MOV MOV MOV MOV
DL,ES:[TABLE] [VALUE],BH AX,SS:[BX] AX,3040H AX,CX
练 习 : 已 知 (DS)=1500H , (SS)=2500H , (ES)=4350H,(BX)=4080H,(BP)=7567H, (SI)=9578H,(DI)=8456H,COUNT=2345H, TOP=6930H,求下列指令操作数的物理地址。
例1 单操作数指令(一地址指令)
INC AX INC BL PUSH AX JMP LA1 ;加1指令。 ;加1指令。 ;进栈指令。 ;无条件转移指令。
例2 双操作数指令(两地址指令) MOV AX,5 ;传送指令。 ADD AX,BX ;加法指令。
目的操作数 源操作数
例3 三操作数指令(三地址指令) IMUL EBX,[ESI],7 ;乘法指令。 (80386机器指令) 例4 无操作数指令(零地址指令) CBW ;字节转换为字指令 CLC ;进位标志CF清零 NOP ;不操作指令 HLT ;停机指令
2.指令属性
(1)指令长度——根据指令的功能不同, 指令的长度也不一样(以字节为单位)。 分为单字节指令、双字节、三字节、四字 节和多字节指令等。 (2)指令的执行时间——指令的执行时间 (以CPU时钟周期为单位)也是一个重要的 属性。它会影响程序的执行速度,因此采用 较少执行时间的指令可提高程序的运行速度。
返回
相对基址变址寻址方式
操作数的物理地址 =(DS)×10H+(BX) + ( SI ) + 8位(16位)位移量 =(DS)×10H+(BX) + ( DI ) + 8位(16位)位移量 =(SS)×10H+(BP) + ( SI ) + 8位(16位)位移量 =(SS)×10H+(BP) + ( DI ) + 8位(16位)位移量
MOV BX,0A46DH
MOV CH,23
寄存器寻址方式
8位寄存器:AH、AL,BH、BL CH、CL, DH、DL 16位寄存器:AX、BX、CX、DX SI、DI、BP、SP 例1 MOV AX ,BX;两个操作数(16位) 都是寄存器寻址 执行前:(AX)=0000H (BX)=1234H, 执行后:(AX)=1234H (BX)=1234H。
实验内容: 参考示例3-1,完成下列实验内容: 两个操作数相减运算,结果放在数据段 的16号单元: (1)AX、BX寄存器分别赋值为0008H 和0010H (2)AX和BX的内容相减(SUB指令), 结果在AX中 (3)用直接寻址方式将相减的结果保存 到16号单元
实验要求:
(1)写出相关命令及操作步骤 (2)实验内容用截图形式记录实验结果 (3)写出实验结果分析。 提示:减法的结果以补码形式表示,对应的 真值为负数。标志位发生了改变。 实验拓展:
3.2.2 立即寻址方式 3.2.3寄存器寻址方式 3.2.4 存储器寻址方式
例 例
直接寻址方式 例1 寄存器间接寻址方式 寄存器相对寻址方式 基址变址寻址方式 相对基址变址寻址方式
例2
立即寻址方式 例:MOV
AL,5
MOV AX,3060H
返回
例:
MOV AX,3060H
MOV AL,5
MOV BL,0FFH
返回
(4)段超越
例4 VALUE EQU 1000H MOV AX,DS:[VALUE] MOV AX,ES:[VALUE] 若已知(ES)=3600H,EA=VALUE=1000H, 则指令源操作数的物理地址计算为: 物理地址=(ES)×10H+EA =36000H+1000H = 37000H 若(37000H) = 9091H 执行第二条指令后:(AX) = 9091H
机器指令可以用二进制表示也可以用十六进 制表示,指令的长度也可以不一样。如前两 条指令的长度为2字节,第三条指令的长度 为3字节。
用汇编指令实现将7加3的结果存入5号字节 单元的操作。 MOV AL,7
ADD AL,3
MOV DS:[5],AL
3.1.2 汇编指令
1、指令格式 汇编指令由操作码字段和操作数字段构成。 操作码字段 操作数字段
辽宁师范大学
计算机与信息技术学院 主讲人郑晓薇
第三章 指令系统与寻址方式
设问:
1.汇编指令的特点是什么? 2.汇编指令中出现寄存器、存储器吗? 3.指令中的操作数在哪儿存放? 4. 为什么要有寻址方式?
本章重点
汇编语言指令格式 指令的寻址方式 存储器寻址
3.1 汇编语言指令
3.1.1 机器指令
(1)根据自己的理解和喜好,设计并完成 其他寻址方式的指令
(2)这些实验对你有何启发?
又学完一章, 好棒!
习题三
3.1.3 指令系统
1.指令系统定义 计算机所能执行的各种代码指令的集 合。 2.指令的分类 数据传送指令 算术运算指令 8086的指令共分为六大类。分别是:
逻辑运算指令 字符串处理指令 控制与转移指令 处理机控制指令
3.2指令的寻址方式
3.2.1寻址方式
寻址方式:指令中提供操作数或操作数地址 的方式。 有效地址EA(Effective Address): 操作数的偏移地址。 操作数的物理地址=段地址×10H+EA 寻址方式的分类: 与数据有关的寻址方式 与转移地址有关的寻址方式
返回
寄存器间接寻址方式
例: MOV AX,[BX]
(BX) 操作数的物理地址=(DS)×10H+ ( SI ) (DI ) 操作数的物理地址=(SS)×10H+ ( BP ) 四个间址寄存器:BX,BP ,SI ,DI
返回
寄存器相对寻址方式
例:MOV AX,TOP[SI]
(BX) 操作数的物理地址=(DS)×10H+ ( SI )+ 8位(16位)位移量 (DI ) 操作数的物理地址=(SS)×10H+( BP ) + 8位(16位)位移量
执行: (1)在DEBUG下,用A命令输入上述四 条指令,再用R命令显示寄存器的情况 (2)用T命令单步执行,用D命令观察 结果。
3.3.3 实验任务
实验目的:
通过实验观察和分析在不同的寻址 方式下存储单元的逻辑地址的表示以 及指令的执行结果。熟练掌握DEBUG 的R命令、A命令、T命令和D命令的 用法。
MOV TOP[BX][SI],AX
MOV AH,ES:[BX] MOV [SI+BP],CX MOV DX, COUNT [DI]
3.3 实例三 寻找操作数
3.3.1 寻址方式的选择 常用的寻址方式有7种之多,其中立即 寻址和寄存器寻址无论从指令长度和 指令执行时间都比存储器寻址要好, 但是也要根据具体情况选用。 学会使用寻址方式是理解指令作用的 关键,也是掌握程序设计技巧的一种 途径。
例1 用机器指令实现将7加3的结果存入5号字节单元的 机器指令也称作代码指令。它是计算机能识 操作。 别的一组二进制代码。 1011 0000 0000 0111 B B007H 把数“7”送wk.baidu.comAL中。 0000 0100 0000 0011B 0403H 把数“3”与AL内容相加,结果放在AL中。 1010 0010 0101 0000 0000 0000B A25000H 把AL中的内容送到地址为5的存储单元中。 共需要三条机器指令实现。
返回
直接寻址方式
(1)存储器读操作
例1:MOV AX,DS:[2000H]
返回
(2)存储器写操作
例2 MOV DS:[4000H],AX
返回
(3)符号地址
例3 MOV AX,VALUE MOV AX,[VALUE]
有效地址:EA=VALUE=1000H 设VALUE=1000H 物理地址=(DS)×10H+EA 设(DS)=1500H =15000H+1000H=16000H 若 (16000 H) =5678H 执行指令后:(AX) =5678H
相关文档
最新文档