编辑: AA003 | 2019-05-21 |
? 逻辑运算指令和移位指令;
? 控制转移指令;
? 算术运算指令;
? 串操作指令. 8086指令系统中包含133条基本指令.主要分为以下几类: ? www.xju.edu.cn 本节中要用到的符号: ? OPRD 泛指各种类型的操作数 ? mem 存储器操作数 ? acc 累加器操作数 ? dest 目的操作数 ? src 源操作数 ? disp 8位或16位偏移量,可用符号地址表示 ? DATA 8位或16位立即数 ? port 输入输出端口,可用数字或表达式表示 ? () 表示寄存器的内容 ? [ ] 表示存储单元的内容或偏移地址 3.3 8086指令系统 ? www.xju.edu.cn 3.3.1 数据传送类指令 传送类指令是指令系统中最活跃的一类指令,也是条数最多 的一类指令,主要用于数据的保存及交换等场合,绝大多数都不 会对状态寄存器FLAGS产生影响.这类指令分为4种. 特点: 既可一次传送一个字节(8位),也可一次传送一个字(16位);
可使用各种寻址方式;
可实现以下各种传送: 1)一般传送指令MOV ? 通用数据传送指令 ? 目标地址传送指令 ? 标志传送指令 ? 输入输出指令
1、通用数据传送指令 ?格式:MOV dest,src 将一个操作数从原 地址传送到目的地 址,而原地址中的 操作数保持不变. ? www.xju.edu.cn 可实现以下各种传送: 寄存器与寄存器或寄存器与段寄存器之间的传送 寄存器与存储器之间的传递 立即数到寄存器的传送 立即数到存储器的传送 存储器与段寄存器之间的传送 MOV AL,CL MOV [BX],AX MOV DX,5040H MOV [BP+SI],5 MOV DS,[1000H] 3.3.1 数据传送类指令 ? www.xju.edu.cn ? MOV指令的两个操作数类型必须相同. ? 不能用一个指令完成在两个内存单元之间直接传送数据 ? 不能用立即数直接给段寄存器直接赋值(需要两个MOV指令) ? 不能在段寄存器之间进行直接数据传送(需要两个MOV指令) ? 在通用传送指令中,寄存器既可以作为源操作数,也可以作为目 的操作数,但CS和IP这两个寄存器不能作为目的操作数,这两个 寄存器的值不能随意修改. ? 用BX、SI、DI间接寻址时,默认的段寄存器为DS,而用BP来间接 寻址时,默认的段寄存器为SS. ? 所有的通用传送指令都不改变标志. ? FLAGS整体不能作为操作数. 需要注意的几点: 3.3.1 数据传送类指令 ? www.xju.edu.cn 判断下列指令的正确性: ? MOV AL,BX MOV AL,BL或MOV AX,BX ? MOV [BX],[SI] MOV AX,[SI] MOV [BX],AX ? MOV DS,1000H MOV AX,1000H MOV DS,AX ? MOV DX,ES MOV AX,ES MOV DS,AX ? 判断下列指令的正确性: ? MOV AL,BX ? MOV AX,[SI]05H ? MOV [BX][BP],BX ? MOV DS,1000H ? MOV DX,09H ? MOV [1200],[SI] 3.3.1 数据传送类指令 ? www.xju.edu.cn [例3-12]把内存中首地址为MEM1的200个字节送到首地 址为MEM2的区域中. MOV SI,OFFSET MEM1 MOV DI, OFFSET MEM2 MOV CX,
20 NEXT:MOV AL,[SI] MOV [DI], AL INC SI INC DI DEC CX JNZ NEXT HLT 3.3.1 数据传送类指令 ? www.xju.edu.cn 将(*) 的ASCII码2AH送入内存1000H开始的100个 单元中: MOV DI,1000H MOV CX,64H MOV AL,2AH AGAIN:MOV [DI],AL INC DI ;
DI+1 DEC CX ;
CX-1 JNZ AGAIN ;
CX≠0则继续 HLT 3.3.1 数据传送类指令 ? www.xju.edu.cn 上段程序在代码段中的存放形式 设CS=109EH,IP=0100H,则各条指令存放地址 如下: CS : IP 109E:0100 MOV DI,1000H 109E:0103 MOV CX,64H 109E:0106 MOV AL,2AH 109E:0108 MOV [DI],AL 109E:010A INC DI 109E:010B DEC CX 109E:010C JNZ
0108 109E:010E HLT 3.3.1 数据传送类指令 ? www.xju.edu.cn 数据段中的分布 送上2AH后数据段中相应存储单元的内容改 变如下: DS:1000 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1010 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1020 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1030 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1040 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1050 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1060 2A 2A 2A 2A