《微机原理与接口技术》PPT电子课件教案-第四章 80868088的指令系统(4)

上传人:jiups****uk12 文档编号:54890472 上传时间:2018-09-21 格式:PPT 页数:75 大小:480KB
返回 下载 相关 举报
《微机原理与接口技术》PPT电子课件教案-第四章  80868088的指令系统(4)_第1页
第1页 / 共75页
《微机原理与接口技术》PPT电子课件教案-第四章  80868088的指令系统(4)_第2页
第2页 / 共75页
《微机原理与接口技术》PPT电子课件教案-第四章  80868088的指令系统(4)_第3页
第3页 / 共75页
《微机原理与接口技术》PPT电子课件教案-第四章  80868088的指令系统(4)_第4页
第4页 / 共75页
《微机原理与接口技术》PPT电子课件教案-第四章  80868088的指令系统(4)_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《《微机原理与接口技术》PPT电子课件教案-第四章 80868088的指令系统(4)》由会员分享,可在线阅读,更多相关《《微机原理与接口技术》PPT电子课件教案-第四章 80868088的指令系统(4)(75页珍藏版)》请在金锄头文库上搜索。

1、1,第三节 8086/8088的指令系统(续)四. 逻辑运算指令五. 控制转移指令,2,四. 逻辑运算指令,逻辑指令指令分类,3,逻辑运算 :与、或、非、异或,特点:二进制数运算 ,按位进行,与运算:有0则0,全1则,或运算:有1则1,全0则0,4,非运算: 0则1,1则0,异或运算:异则1,同则0,5,1. 逻辑运算指令,6,AND AL , 0000 1111B OR BX , 00FFH NOT CL XOR DL, AL TEST AL, 0000 0001B,除NOT指令单操作数外,其它均为双操作数可进行字节或字操作NOT指令不影响标志TEST只影响标志位,不影响操作数。,7,例 数

2、字字符的ASCII 对应的二进制数,应用:MOV AH, 1 ;利用DOS调用INT 21H ;从键盘输入字符到AL中AND AL, 0000 1111B ;高4位为0,低4位不变、,8,逻辑运算常用于使操作数的某位为0或1, 或测试某位为0还是1。使某位为1用该位与1 相或,不变的位与0或。使某位为0用该位与0 相与,不变的位与1与。使某位求反用该位与1 异或,不变的位与0异或。测试某位的值用TEST指令,据标志判断,9,例 21H端口管理中断系统,管理8个外设的中断,允许键盘中断:IN AL,21H ;读入21端口内容AND AL,1111 1101B ;置D1 = 0,其他位不变OUT

3、21H ,AL ;送出屏蔽字到21H端口,禁止键盘中断:IN AL,21H OR AL,0000 0010B ;使D1为1OUT 21H,AL,10,例 379H端口的D7存放打印机的状态,用查询方式控制打印机工作:MOV DX, 379H ask: IN AL, DX ;从379H端口读状态 TEST AL, 1000 0000B ;检测D7位JZ ask ;为0,打印机忙,继续查询 print: 、 ;输出字符打印,11,2. 移位指令,12,移位规则 左移: 高位 低位右移: 高位 低位 移出位进入CF标志 对移位指令,移出CF标志后丢失 逻辑左移、算术左移的结果相同 逻辑右移,新移入的

4、信息以0填入算术右移,保持最高有效位原来的值(符号为不变),13,例 若(AL)=96H, CF=0执行 SHL AL, 1,执行前:(AL)=96H ,CF=0,1,0,0,1,0,1,1,0,执行后:(AL)=E5H ,CF=1,CF,例 若(AL)=96H, CF=0, (CL) =2执行 SAR AL, CL,14,3. 循环移位指令,指令格式,ROL oprd,1 CL,ROR oprd,1 CL,RCL oprd,1 CL,RCR oprd,1 CL,15,移位规则 左移: 高位 低位右移: 高位 低位 移出位进入CF标志 对循环移位指令,改变各位的位置,信息不丢失 带进位循环移位

5、,CF标志参加循环移位,16,例 若(AL)= 96H, CF=0执行 ROL AL, 1,17,18,对标志位的影响 移位指令: 据结果设置CF、SF、ZF、PF,对AF无定义 OF只在移位次数为1时有效,其他无定义移位后,最高有效位发生变化,则OF=1,否则为0(SAL,SHL最高位CF, 则: OF = 1, 否则:无变化时,OF = 0)(SAR,SHR最高位次高位, 则 : OF=1; 否则 : OF=0。)对循环移位指令: 据移位结果设置CF,对其他标志无影响 OF标志ROL、 RCL影响标志OF、CF情况相同 ;移位后,最高有效位 CF, 则: OF = 1,否则:(无变化时)O

6、F = 0ROR 、 RCR影响标志OF、CF情况相同 。移位后,最高位次高位, 则 : OF=1;否则 : OF=0。,19,逻辑移位可用于无符号数乘除算术移位用于带符号数 的乘除 左移一次,相当于乘2 右移一次,相当于除2例 将AL中的带符号数乘10 , 若(AL)=XSAL AL ,1 ; (AL)=2XMOV BL ,AL ; (BL)=2X SAL AL ,1 ; (AL)=4X SAL AL ,1 ; (AL)=8XADD AL ,BL ; (AL)=(8X+2X)=10X,20,应用举例: (BX)=84F0H(1) 若(BX)无符号数,求(BX)/2 SHR BX,1 ; (B

7、X)=4278 CF=0,OF=1,SF=0,ZF=0(2) 若(BX)带符号数,求(BX)/4MOV CL,02H 或SAR BX,1 SAR BX,CL SAR BX,1; CF=0,OF无意义,SF=1,ZF=0,21,利用带进位循环移位指令将两个寄存器或存储器单元组合起来一起移位。例: 将DX、AX组合起来构成32位寄存器向左移一位。如下图所示:,程序: SHL AX , 1RCL DX , 1,32位寄存器向左移一位,22,五. 控制转移指令,在8086/8088中,指令的地址固定由CS和IP两个寄存器决定。,CPU 总线 内存,23,CS和IP两寄存器的内容决定了程序的流程,改变C

8、S和IP寄存器的值,就改变了程序执行的流程。,CS:IP,CS:IP,24,8086/8088 中CS和IP的变化规则:,第一条指令在内存的ROM区。,1、 RESET复位后,( CS ) = FFFFH,( IP ) = 0000H故8086从内存FFFF:0000H处取第一条指令执行。,25,2、非控制转移指令,指令本身对CS和IP均无操作,形成顺序执行结构。,BB 00 01 B1 20 90,指令1,指令2,指令3,CS:IP,顺序执行结构: 顺序存放,顺序执行程序是指令的集合指令在内存中顺序存放对非控制转移指令,CPU取来一条指令后,自动将IP的值加上该指令的字节数,使IP顺序指向下

9、一条指令,CPU取来紧连着的指令执行。(此时IP的变化由CPU内部的硬件自动完成),26,3、 控制转移指令以CS和IP为主要操作对象,改变CS和IP的值,使程序产生分支、调用结构。,39 D8 7D 02 87 C3 A3 00 20,CS:IP,分支结构、调用结构: 顺序存放,非顺序执行CMP AX, BX JGE great XCHG AX, BX great: MOV max, AX、,控制转移指令JGE可以改变IP的值, 使程序非顺序执行,27,控制转移指令分类,掌握:JMP, JZ, JNZ, JC, LOOPCALL, RET, INT N, IRET,28,控制转移指令(JMP

10、、Jcc、LOOPxx、CALL)概述,例 JMP exitJZ zeroLOOP nxetCALL display,指令格式: 助记符 操作数助记符 JMP、Jcc、LOOPxx、CALL操作数 给出要转移到的目的地址,29,30, 符号地址 : 在汇编格式指令中用符号来表示地址可以是标号、过程名(子程名), 标号 指示指令所在的地址。 用 符号名: 表示。 例 CMP AX, BX JGE great XCHG AX, BX great: MOV max, AX,根据标号与控制转移指令所在位置,标号有三种类型: SHORT 短属性 NEAR 近属性 FAR 远属性,31,过程名 ( 子程名

11、 ) 过程指示过程(子程)第一条指令的地址。,例 display PROC near、display ENDP,按过程与调用语句间的位置,过程有两种类型: NEAR类型:调用指令与过程在同一个段中 FAR类型:调用指令与过程不在同一个段中,过程定义方法: 符号名 PROC 类型、 符号名 ENDP,32,例 JMP again JMP BXJMP WORD PTR BXJMP DWORD PTR BXJnz next (若 next的位移量在-128127)Jz AXLOOP BXJnz next (若 next的位移量超出-128127)指令JMP、Jcc、LOOPxx、CALL本身对标志无

12、影响。,33,(1) 无条件转移指令JMP格式 JMP 目标地址执行操作 无条件转移到目标地址处转移方式 5种方式均可例 、JMP next 、 next: MOV AX, BX、,34,35,按转移条件不同,条件转移指令可以分为四大类:, 以单个状态标志作为转移条件, 以CX的值为0作为转移条件,36, 以两个无符号数比较的结果作为转移条件, 以两个带符号数比较的结果作为转移条件,37,38,循环指令说明:,比较两串时,当有字符不等,就可退出,说明两字符串不等。可用LOOPZ,当相等时继续比较。,39,例 在string字符串中查找空格字符,串长度为N。,40,41,42,思考: 去掉指令J

13、MP exit ,程序执行结果会怎样? PUSHF、POPF可否去掉?若要去掉,程序如何修改? 执行完LOOPNZ后,可否根据CX=0来判断查找结果?有人认为CX=0,即说明没找到,对吗?,用条件转移: MOV CX, N MOV AX, SEG string MOV DS, AX LEA BX,string MOV AL,20H next: CMP AL,BX JZ find INC BX DEC CX JNZ next 未找到处理 JMP exit find: 找到处理 exit: 结束出口,用循环指令:MOV CX, NMOV AX, SEG stringMOV DS, AXLEA BX, stringMOV AL, 20H next: CMP AL,BXPUSHFINC BXPOPFLOOPNZ nextJZ find未找到处理JMP exit find: 找到处理 exit: 结束出口,

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

当前位置:首页 > 中学教育 > 其它中学文档

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