第五章微机原理第二部分2012.ppt
文本预览下载声明
8086和8088的指令系统 传送类指令 数据操作类指令 串操作指令 控制类指令 传 送 类 指 令 传送类指令是指令系统中最活跃的一类指令,也是条数最多的一类指令,主要用于数据的保存及交换等场合。这类指令分为以下四种: 通用数据传送指令 目标地址传送指令 标志位传送指令 输入/输出数据传送指令 小结 传送类指令 通用数据传送指令 通用数据传送指令主要由以下几部分组成: 最基本的传送指令 MOV 堆栈操作指令 PUSH/POP 数据交换指令 XCHG 查表换码指令 XLAT 最基本的传送指令 MOV指令示例 MOV指令示例 一般数据传送指令 注意: 两操作数字长必须相同 两操作数不允许同时为存储器操作数 两操作数不允许同时为段寄存器 在源操作数是立即数时,目标操作数不能是段寄存器 IP和CS不作为目标操作数,FLAGS一般也不作为操作数在指令中出现 一般数据传送指令应用例 将(*) 的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 上段程序在代码段中的存放形式 设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 数据段中的分布 送上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 00 00 00 00 00 00 00 00 00 00 00 00 堆栈操作指令 堆栈操作指令 掌握: 有关堆栈的概念 栈顶、栈首、栈底 堆栈指令的操作原理 堆栈操作指令 压栈指令 PUSH 执行过程: (SP)←(SP)-2 (SP)-1←操作数高字节 (SP)-2←操作数低字节 压栈指令的操作 设AX=1234H,SP=1200H,执行 PUSH AX 指令后堆栈区的状态: 出栈指令的操作 执行 POP AX 堆栈区的状态: 堆栈操作指令说明 指令的操作数必须是16位的 操作数可以是寄存器或存储器两单元,但不能是立即数 不能从栈顶弹出一个字给CS PUSH和POP指令在程序中一般成对出现 PUSH指令的操作方向是从高地址向低地址,而POP指令的操作正好相反 堆栈操作指令示例 堆栈操作指令示例 数据交换指令 数据交换指令示例 换 码 指 令 查表指令例 数据段中存放有一 张ASCII码转换表, 设首地址为2000H, 现欲查出表中第11 个代码的ASCII码 (设DS=4000H) 查表指令例 可用如下指令实现: MOV BX,2000H ;(BX)←表首地址 MOV AL,0BH ;(AL)←序号 XALT ; 查表转换 执行后得到:(AL)=42H 换码指令示例 表十进制数的七段显示码
显示全部