3-4逻辑运算指令.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微型计算机原理及应用 第3章 8086指令系统 第3章 8086指令系统 指令是让计算机完成某种操作的命令,指令的集合称作指令系统,不同CPU的计算机有不同的指令系统。指令是根据计算机CPU硬件特点研制出来的,指令的符号用规定的英文字母组成,称为助记符。 操作码 [操作数],[操作数] 逻辑运算和移位指令 3.3.3 逻辑运算和移位指令 Test指令的的测试功能实例  例:设AL中存有报警信号,若D7=1,表示温度报警,程序转向报警处理程序T-ALARM;若D6=1,转向压力报警程序P-ALARM。 可用以下指令实现: TEST AL,1000 0000B ;查AL的D7=1? JNZ T-ALARM;是1(非零),转向温度报警程序。 TEST AL,0100 0000B ;D7=0 , D6=1? JNZ P-ALARM ;是1(非零),转向压力报警程序 (1)非循环移位指令 (2)循环移位指令 [例1]把以DATA为首址的两个连续单元中的16位无符号数乘以10。 课堂练习 方法(1): MOV BL,AL ADD AL,AL ADD AL,AL ADD AL,BL 方法(2): MOV BL,AL MOV CL,2 SAL AL,CL ADD AL,BL * * 目标操作数,用以存放结果 源操作数 助记符,用以说明CPU执行的操作 立即操作数 具有固定数值的操作数,即常数。它不会由于指令的执行而发生变化,存在于指令之中。立即数操作数只能用作源操作数,而不能用作目标操作数。 寄存器操作数 存放在8086CPU的8个通用寄存器或段寄存器中,既可作为源操作数,也可以用作目标操作数。 存储器操作数 可以是字节、字或双字,分别存放在1个、2个或4个存储单元中。存储器操作数在指令中既可作为源操作数,也用作目的操作数。对大多数指令, 注意他们的应用! 1.逻辑运算指令   8086的逻辑运算指令包括AND、OR、NOT、XOR指令和TEST(测试)指令。比如: AND AL,0FH ;AL的内容和0FH相与,结果在AL中 OR AX,00F0H ;AX和00F0相或,结果在AX中 NOT BX ;BX中内容求反,结果在BX中 XOR AX,AX ;AX的内容本身进行异或,结果AX清零。 8086指令系统提供对8位数和16位数的逻辑操作指令。 AND “与1相与,该位被保留;与0相与,该位变成0” OR  与1相或该位变成1;与0相或该位被保留 XOR 与0相异或保留,与1相异或反相 1、AND指令对一个数据的指定位清0 2、OR指令常用来对一些指定位置1 3、XOR指令常用在程序的开头使某个寄存器清0。 4、NOT指令常用于将某个数据取成反码再加上1,便得到补码。 AND、OR、XOR逻辑运算指令的作用 1、要求保留AL的D7、D5、D4、D0位,其余各位置“1” 分析:只有或指令可以置1,可以采用:OR AL,0100 1110B指令。 2、要求保留AL的D7、D5、D4、D0位,其余各位置“0” 分析:只有与指令可以置0,可以采用:AND AL,1011 0001B指令。 3、若AL中存有一端口的状态信息,D1位控制扬声器发声,要求该位在0、1之间来回变化,其余位保持不变。 分析:可用以下指令实现: L1: XOR AL , 0000 0010B OUT XXH,AL JMP L1 AND、OR、XOR逻辑运算指令的的应用实例 一会儿叫一会儿停,叫的时候1有效,停的时候0有效  TEST指令和AND指令执行同样的操作,但TEST指令不送回操作结果,不改变目的操作数。而仅仅影响标志位。 TEST AX,8000H ;如AX的最高位为1,则ZF=0,否则 ZF=1   TEST指令一般用来检测指定位是1还是0。  例: 1010 1010B 0101 0101B ∩ 0000 0001B ∩ 0000 0001B 0000 0000B 0000 0001B Test指令的的格式、功能 注意:逻辑运算指令执行后CF=0, 可以利用这一点,在需要清除进位标志时,使用逻辑运算指令,但是不要改变操作数的值。 1、写出3种使AX清零的指令 MOV AX,0000H SUB

文档评论(0)

canjiadyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档