微机原理与接口技术的课件第3章

上传人:aa****6 文档编号:57540041 上传时间:2018-10-22 格式:PPT 页数:94 大小:1.52MB
返回 下载 相关 举报
微机原理与接口技术的课件第3章_第1页
第1页 / 共94页
微机原理与接口技术的课件第3章_第2页
第2页 / 共94页
微机原理与接口技术的课件第3章_第3页
第3页 / 共94页
微机原理与接口技术的课件第3章_第4页
第4页 / 共94页
微机原理与接口技术的课件第3章_第5页
第5页 / 共94页
点击查看更多>>
资源描述

《微机原理与接口技术的课件第3章》由会员分享,可在线阅读,更多相关《微机原理与接口技术的课件第3章(94页珍藏版)》请在金锄头文库上搜索。

1、1,第3章 指令系统,2,主要内容:,指令系统的一般概念 对操作数的寻址方式 六大类指令的操作原理:,操作码的含义 指令对操作数的要求 指令执行的结果,3,3.1 概述,4,了解:,指令及指令系统; 指令的格式; 指令中的操作数类型; 指令字长与机器字长; 指令的执行时间 CISC和RISC指令系统,5,一、指令与指令系统,指令: 控制计算机完成某种操作的命令 指令系统: 处理器所能识别的所有指令的集合 指令的兼容性: 同一系列机的指令都是兼容的。,6,二、指令格式,指令中应包含的信息:,运算数据的来源 运算结果的去向 执行的操作,7,指令格式,操作码 操作数,操作数,指令的功能(即执行何种操

2、作),目标操作数,源操作数,指令的操作对象,指明参加操作的数据或数据存放的地址,8,指令格式:,零操作数指令: 操作码 单操作数指令: 操作码 操作数 双操作数指令: 操作码 操作数,操作数 多操作数指令: 三操作数及以上,9,三、指令中的操作数类型,立即数操作数 寄存器操作数 存储器操作数,表征参加操作的数据本身,表征数据存放的地址,10,立即数操作数,立即数只能作为源操作数。其本身是参加操作的数据,可以是8位或16位。例: MOV AX,1234HMOV BL,22H立即数无法作为目标操作数 立即数可以是无符号或带符号数,其数值应在可取值范围内。,11,寄存器操作数:,参加运算的数存放在指

3、令给出的寄存器中,可以是16位或8位。例: MOV AX,BXMOV DL,CH,12,存储器操作数,参加运算的数存放在存储器的某一个或某两个单元中。 表现形式: ,立即数或寄存器,13,存储器操作数例,例: MOV AX,1200HMOV AL,1200H,22H,11H,1200H,偏移地址,AH AL,14,四、指令字长与机器字长,指令字长: 由操作码的长度、操作数地址长度、操作数个数决定; 机器字长: 计算机能够直接处理的二进制数的位数。,15,五、指令的执行速度,指令的字长影响指令的执行速度。(常用指令的执行时间见表3-4) 对不同的操作数,指令执行的时间不同:存储器,快!,立即数,

4、寄存器,16,六、CISC和RISC指令系统,CISC(复杂)指令系统 指令的功能强,种类多,高级语言和机器语言间的距离缩小; 指令系统复杂,难使用。 RISC(精简)指令系统 指令功能较弱,种类少,格式简单; 多数指令在一个计算机周期内完成; 对存储器的结构和存取速度要求较高。,17,3.2 寻址方式,18,寻址方式,寻找操作数所在地址的方法寻找转移地址的方法,本节,19,一、立即寻址,指令中的源操作数是立即数,即源操作数是参加操作的数据本身。 主要用于给寄存器或存储单元赋初值。 例:MOV AX,1200H,12H,00H,AH AL,MOV,代码段,20,二、直接寻址,操作数在内存中,指

5、令中直接给出操作数的偏移地址。操作数一般在DS段(默认)。 例:MOV AX,1200H,22H,11H,1200H,偏移地址,数据段,AH AL,21,直接寻址,直接寻址方式下,操作数的段地址默认为数据段,但允许段重设,即由指令定义段。例:MOV AX,ES:1200H,22,三、寄存器寻址,参加操作的操作数在CPU的通用寄存器中。例:MOV AX,BX,AX,BX,23,四、寄存器间接寻址,参与操作的操作数存放在内存中,用寄存器的内容表示操作数的偏移地址。,24,寄存器间接寻址,由寄存器间接给出操作数的偏移地址; 存放偏移地址的寄存器称为间址寄存器,它们是:BX,BP,SI,DI 操作数的

6、段地址(数据处于哪个段)取决于选择哪一个间址寄存器:BX,SI,DIBP,默认在数据段,默认在堆栈段,25,寄存器间接寻址例,例:MOV AX,BX设BX=1200H,22H,11H,1200H,偏移地址,AH AL,11 22,数据段,代码段,MOV,26,寄存器间接寻址,寄存器 间接寻址,基址寻址(间址寄存器为基址寄存器BX,BP)变址寻址(间址寄存器为变址寄存器SI,DI),27,五、寄存器相对寻址,操作数的偏移地址为寄存器的内容加上一个位移量。 例: MOV AX,BX+DATA设:DS=2000H,BX=0220H,DATA=05H 则:AX=20225H,28,六、基址、变址寻址,

7、操作数的偏移地址为一个基址寄存器的内容加上一个变址寄存器的内容,操作数的段地址由选择的基址寄存器决定。例 3-9( P103 ):MOV AX,SI+BX,29,七、基址、变址、相对寻址,操作数的偏移地址为一个基址寄存器的内容加上一个变址寄存器的内容,再加上一个位移量。 操作数的段地址由选择的基址寄存器决定。例:3-10(P104),30,八、隐含寻址,指令隐含了的一个或两个操作数的地址,即操作数在默认的地址中。例: MUL BL指令的执行:ALBL,AX,31,3.3 8086指令系统,32,掌握:,指令码的含义 指令对操作数的要求 指令的对标志位的影响 指令的功能,33,8086指令系统,

8、从功能上包括六大类:,数据传送 算术运算 逻辑运算和移位 串操作 程序控制 处理器控制,34,数据传送指令,通用数据传送 输入输出 地址传送 标志位操作,35,一、通用数据传送,一般数据传送指令 堆栈操作指令 交换指令 查表转换指令 字位扩展指令,特点: 该类指令的执行对标志位不产生影响,36,1. 一般数据传送指令,格式: MOV DST, SRC目的操作数 源操作数 功能:将源操作数传送至目的地址中,源保持不变。(SRC)DST 例: MOV AL,BL,37,一般数据传送指令,注: 两操作数字长必须相同 ; 两操作数不允许同时为存储器操作数; 两操作数不允许同时为段寄存器; 在源操作数是

9、立即数时,目标操作数不能是段寄存器; IP和CS不作为目标操作数,FLAGS一般也不作为操作数在指令中出现。,38,39,一般数据传送指令,判断下列指令的正确性: MOV AL,BX MOV AX,SI05H MOV DS,1000H MOV BXBP,BX MOV CS,BX MOV DX,09H MOV 1200,SI MOV 2000H,AX,X,类型不一致X,立即数不能送段寄存器X,CS不能做目的操作数X,不能同时为存储器操作数 X,目的不能为立即操作数,40,2. 堆栈操作指令,掌握: 有关堆栈的概念 栈顶、栈首、栈底 堆栈指令的操作原理,执行过程,执行结果,41,堆栈操作的原则,先

10、进后出 以字为单位,42,堆栈操作指令,压栈指令 PUSH格式: PUSH OPRD 出栈指令 POP格式: POP OPRD,43,进栈指令 PUSH,指令执行过程:(SP)(SP)-2(SP)-1操作数高字节(SP)-2操作数低字节 过程:SP-1,存源操作数的高8位; SP-2,存源操作数的低8位,完成进栈操作。,SP,堆栈段,SP,高8位,低8位,44,进栈指令的操作,设AX=1234H,SP=1200H 执行 PUSH AX 指令后堆栈区的状态:,1200H,堆栈段,SP-2=11FEH,12H,34H,1200H,堆栈段,12H 34H,AX,入栈后,入栈前,45,出栈指令POP,

11、指令执行过程: 将SS:SP所指示的栈顶处的两个字节的数据传送到目的操作数中。 SP+2,指示当前栈顶位置,完成出栈操作。SPSP+1SP SP+2,操作数低字节,操作数高字节,SP,堆栈段,SP,高8位,低8位,46,出栈指令的操作,执行 POP AX,12H,34H,11FEH,堆栈段,代码段,PUSH,12 34,AX,SP+2,1200H,出栈后,出栈前,47,堆栈操作指令说明,指令的操作数必须是16位的; 操作数可以是寄存器或存储器两单元,但不能是立即数; 不能从栈顶弹出一个字给CS; PUSH和POP指令在程序中一般成对出现; PUSH指令的操作方向是从高地址向低地址,而POP指令

12、的操作正好相反。,48,堆栈操作指令例,PUSH AX PUSH BXPOP AX POP BX,如此,会使AX和BX的内容互换,49,3. 交换指令,格式:XCHG REG,MEM/REG 操作: (DST) (SRC) 即源地址与目的地址中的内容互换 注: 两操作数必须有一个是寄存器操作数 不允许使用段寄存器。 例: XCHG AX,BX XCHG 2000,CL,50,例:XCHG AX, BX XCHG BH, BL XCHG AX, 1122H XCHG DS, AX XCHG SI, BP XCHG SI, DI ,51,4. 查表指令,格式:XLAT操作:(BX+AL) AL,

13、即将BX为首址(偏移地址),AL为位移量的字节单元的内容AL 该指令常用于进行代码转换,转换时先建立相应表。表首址BX,与表有关的某个偏移值 (一般为被传送的字节到表头地址的字节数) AL 。 该指令的操作数是隐含寻址,不带操作数或带表头地址。 说明: 用BX的内容代表表格首地址,AL内容为表内位移量,BX+AL得到要查找元素的偏移地址,52,查表指令例,数据段中存放有一 张ASCII码转换表, 设首地址为2000H, 现欲查出表中第11 个代码的ASCII码,30,31,32,.,39,41,42,.,45,46,2000H+0,2000H+11,0,1,2,9,A,B,E,F,53,查表指

14、令例,可用如下指令实现:MOV BX,2000H ;BX表首地址MOV AL,0BH ;AL序号XALT ;查表转换执行后得到:AL = 42H,54,二、输入输出指令,掌握: 指令的格式及操作 指令的两种寻址方式 指令对操作数的要求,55,指令寻址方式,直接寻址直接给出8位端口地址,可寻址256个端口间接寻址16位端口地址由DX指定,可寻址64K个端口,56,输入输出指令,专门面向I/O端口操作的指令。 输入指令: IN acc(累加器AL或AX),PORT(端口地址) 操作:从端口输入一个字节到AL或输入一个字到AX。 指令格式为: IN AL , n IN AX , n IN AL ,

15、DX IN AX , DX,直接寻址输入指令(n为8位端口地址),DX寄存器间接寻址输入指令(端口地址为16位),57,输入输出指令,输出指令 :OUT PORT(端口地址),acc(累加器AL或AX)操作:将AL或AX的内容输出到指定端口。指令格式为: OUT n, AL OUT n, AX OUT DX, AL OUT DX, AX,直接寻址输出指令(n为8位端口地址),DX寄存器间接寻址输出指令(端口地址为16位),58,三、地址传送指令,取偏移地址指令LEA *LDS指令 *LES指令,59,取偏移地址指令LEA,操作: 将变量的16位偏移地址取出送目标寄存器 格式:LEA REG,MEM 指令要求: 源操作数必须是一个存储器操作数,目标操作数通常是间址寄存器。,

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

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

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