微型计算机接口技术幻灯片第三章1

上传人:F****n 文档编号:88143038 上传时间:2019-04-19 格式:PPT 页数:95 大小:275.50KB
返回 下载 相关 举报
微型计算机接口技术幻灯片第三章1_第1页
第1页 / 共95页
微型计算机接口技术幻灯片第三章1_第2页
第2页 / 共95页
微型计算机接口技术幻灯片第三章1_第3页
第3页 / 共95页
微型计算机接口技术幻灯片第三章1_第4页
第4页 / 共95页
微型计算机接口技术幻灯片第三章1_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《微型计算机接口技术幻灯片第三章1》由会员分享,可在线阅读,更多相关《微型计算机接口技术幻灯片第三章1(95页珍藏版)》请在金锄头文库上搜索。

1、第3章 指令系统(1),主要内容:,指令系统的一般概念 对操作数的寻址方式 六大类指令的操作原理,操作码的含义 指令对操作数的要求 指令执行的结果,3.1 概述,了解: 指令及指令系统 指令的格式 指令中的操作数类型,一、指令与指令系统,指令: 控制计算机完成某种操作的命令 指令系统: 处理器所能识别的所有指令的集合 指令的兼容性: 同一系列机的指令都是兼容的,二、指令格式,指令中应包含的信息:,运算数据的来源 运算结果的去向 执行的操作,指令格式:,操作码 操作数,操作数,执行何种操作,目标操作数,源操作数,参加操作的数据 或数据存放的地址,指令格式:,零操作数指令: 操作码 单操作数指令:

2、 操作码 操作数 双操作数指令: 操作码 操作数,操作数 多操作数指令: 三操作数及以上,三、指令中的操作数,表征参加操作的数据本身 立即数 表征数据存放的地址,寄存器 存储器,操作数:,立即数操作数: 表示参加操作的数据本身,可以是8位或16位 例: MOV AX,1234H MOV BL,22H 立即数无法作为目标操作数 立即数可以是无符号或带符号数,其数值应在可取值范围内,操作数:,寄存器操作数: 表示参加运算的数存放在指令给出的寄存器中,可以是16位或8位。 例:MOV AX,BX MOV DL,CH,操作数:,存储器操作数: 表示当前参加运算的数存放在存储器的某一个或某两个单元中 例

3、:MOV AX,1200H MOV AL,1200H,22H,11H,1200H,偏移地址,AH AL,四、指令字长与机器字长,指令字长由操作码的长度、操作数地址长度、操作数个数决定 8088/8086CPU采用变字长指令格式 机器字长: 计算机能够直接处理的二进制数的位数,五、指令的执行速度,指令的字长影响指令的执行速度 (常用指令的执行时间见表3-1) 对不同的操作数,指令执行的时间不同: 存储器 立即数 寄存器,快!,3.2 寻址方式,寻找操作数所在地址的方法 寻找转移地址的方法,本节,一、立即寻址,指令中的源操作数是立即数,即源操作数是参加操作的数据本身 例:MOV AX,1234H,

4、12H,34H,AH AL,MOV,代码段,二、直接寻址,指令中直接给出操作数的偏移地址 例:MOV AX,1200H,22H,11H,1200H,偏移地址,AH AL,11 22,数据段,直接寻址,直接寻址方式下,操作数的段地址默认为数据段,但允许段重设,即由指令定义段。 例:MOV AX,ES:1200H,三、寄存器寻址,参加操作的操作数在CPU的通用寄存器中。 例:MOV AX,BX,AX,BX,四、寄存器间接寻址,参与操作的操作数存放在内存中,其偏移地址为指令中的寄存器的内容。 例:MOV AX,BX 设(BX)=1200H,22H,11H,1200H,偏移地址,AH AL,11 22

5、,数据段,代码段,MOV,寄存器间接寻址,由寄存器间接给出操作数的偏移地址 存放偏移地址的寄存器称为间址寄存器,它们是:BX,BP,SI,DI 操作数的段地址(数据处于哪个段)取决于选择哪一个间址寄存器: BX,SI,DI 默认在数据段 BP 默认在堆栈段,寄存器间接寻址,寄存器 间接寻址,基址寻址(间址寄存器为基址寄存 器BX,BP) 变址寻址(间址寄存器为变址寄存 器SI,DI),五、寄存器相对寻址,操作数的偏移地址为寄存器的内容加上一个位移量 例:MOV AX,BX+DATA 设DS=2000H,BX=0220H,DATA=05H 则:AX=20225H,六、基址、变址寻址,操作数的偏移

6、地址为一个基址寄存器的内容加上一个变址寄存器的内容,操作数的段地址由选择的基址寄存器决定 例:MOV AX,SI+BX,七、基址、变址、相对寻址,操作数的偏移地址为一个基址寄存器的内容加上一个变址寄存器的内容,再加上一个位移量 操作数的段地址由选择的基址寄存器决定 例:MOV AX,BP+SI+DATA,八、隐含寻址,指令隐含了的一个或两个操作数的地址,即操作数在默认的地址中 例: MUL BL 指令的执行:ALBL AX,3.3 8086指令系统,从功能上包括六大类:,数据传送 算术运算 逻辑运算和移位 串操作 程序控制 处理器控制,一、数据传送,通用数据传送 输入输出 地址传送 标志位操作

7、,1. 通用数据传送,一般数据传送指令 堆栈操作指令 交换指令 查表转换指令 字位扩展指令,特点: 该类指令的执行对标志位不产生影响,一般数据传送指令,一般数据传送指令 MOV 格式:MOV dest,src 操作:src dest 例: MOV AL,BL,一般数据传送指令,注: 两操作数字长必须相同 两操作数不允许同时为存储器操作数 两操作数不允许同时为段寄存器 在源操作数是立即数时,目标操作数不能是段寄存器 IP和CS不作为目标操作数,FLAGS一般也不作为操作数在指令中出现,一般数据传送指令,判断下列指令的正确性: MOV AL,BX MOV AX,SI05H MOV BXBP,BX

8、MOV DS,1000H MOV DX,09H MOV 1200,SI,一般数据传送指令应用例,将(*) 的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 ;CX0则继续 HLT,上段程序在代码段中的存放形式,設CS=109EH,IP=0100H,则各条指令存放地址 如下: CS : IP 109E:0100 MOV DI,1000H 109E:0103 MOV CX,64H 109E:0106 MOV AL

9、,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:103

10、0 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,偏移地址DI,堆栈操作指令,掌握: 有关堆栈的概念 栈顶、栈首、栈底 堆栈指令的操作原理,执行过程,执行结果,堆栈操作的原则,先进后出 以字为单位,堆栈操作指令,压

11、栈指令 PUSH 格式: PUSH OPRD 出栈指令 POP 格式: POP OPRD,压栈指令 PUSH,指令执行过程: (SP)(SP)-2 (SP)-1操作数高字节 (SP)-2操作数低字节,压栈指令的操作,设AX=1234H,SP=1200H 执行 PUSH AX 指令后堆栈区的状态:,1200H,堆栈段,SP-2=11FEH,12H,34H,1200H,堆栈段,12H 34H,AX,入栈后,入栈前,出栈指令POP,指令执行过程: (SP) 操作数低字节 (SP)+1 操作数高字节 (SP)(SP)+2,出栈指令的操作,执行 POP AX 堆栈区的状态:,12H,34H,11FEH,

12、堆栈段,代码段,PUSH,12 34,AX,SP+2,堆栈操作指令说明,指令的操作数必须是16位的 操作数可以是寄存器或存储器两单元,但不能是立即数 不能从栈顶弹出一个字给CS PUSH和POP指令在程序中一般成对出现 PUSH指令的操作方向是从高地址向低地址,而POP指令的操作正好相反,堆栈操作指令例,PUSH AX PUSH BX PUSH WORD PTRBX POP WORD PTRBX POP AX POP BX,如此,会使AX和BX的内容互换,交换指令,格式: XCHG REG,MEM/REG 两操作数必须有一个是寄存器操作数 不允许使用段寄存器。 例: XCHG AX,BX XC

13、HG 2000,CL,查表指令,格式: XLAT 说明:用BX的内容代表表格首地址,AL内容为表内位移量,BX+AL得到要查找元素的偏移地址 操作:BX+AL AL 例:教材第112页,查表指令例,数据段中存放有一 张ASCII码转换表, 设首地址为2000H, 现欲查出表中第11 个代码的ASCII码 (设DS=4000H),30,31,32,.,39,41,42,.,45,46,.,42000H+0,42000H+11,0,1,2,9,A,B,E,F,查表指令例,可用如下指令实现: MOV BX,2000H ;(BX)表首地址 MOV AL,0BH ;(AL)序号 XALT ; 查表转换

14、执行后得到:(AL)=42H,字位扩展指令,将符号数的符号位扩展到高位 指令为零操作数指令,采用隐含寻址,隐含的操作数为AX及AX,DX 无符号数的扩展规则为在高位补0,字节到字的扩展指令,格式: CBW 操作:将AL内容扩展到AX 规则:若最高位=1,则执行后AH=FFH 若最高位=0,则执行后AH=00H,字到双字的扩展指令,格式: CWD 操作:将AX内容扩展到DX AX 规则:若最高位=1,则执行后DX=FFFFH 若最高位=0,则执行后DX=0000H,字位扩展指令例,MOV AL,44H CBW ;执行结果 MOV AX,0AFDEH CWD MOV AL,86H CBW,?,2.

15、 输入输出指令,掌握: 指令的格式及操作 指令的两种寻址方式 指令对操作数的要求,输入输出指令,专门面向I/O端口操作的指令 包括,输入指令 IN acc,PORT 输出指令 OUT PORT,acc,端口地址,指令寻址方式,直接寻址 直接给出8位端口地址,可寻址256个端口 间接寻址 16位端口地址由DX指定,可寻址64K个端口,I/O指令例,IN AX,80H MOV DX,2400H IN AL,DX OUT DX,AX OUT AL,35H,3. 地址传送指令,取偏移地址指令LEA LDS指令 LES指令,取偏移地址指令LEA,将变量的16位偏移地址取出送目标寄存器 格式: LEA REG,MEM 指令要求源操作数必须是一个存储器操作数,目标操作数通常是间址寄存器,,LEA指令,比较下列指令: LEA SI,DATA1 MOV SI,DATA1 MOV BX,BX LEA BX,BX,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号