第3章-指令系统(位操作指令)-2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言 单程序设击计 此处编辑母版标题样式
• 单击此汇处编编辑母语版言文本程样式序设计
• 第二级 • 第三级
(第三章)
• 第四级
• 第辽五宁级石油化工大学计算机与通信工程学院
主讲:王晓虹
1
汇编语言
三、位操作指令 单程序设击计 此处编辑母版标题样式
• 单击此处编辑母版文本样式 • 第二级 • 第三级 • 第四级 • 第五级
检测某一位或某几位的条件是否满足。编程时常与条件转移指
令一起使用,可在TEST指令后面加上条件转移指令,来测试操
作数某位是否为1,或者是否为0。
7
汇编语言 单程序设击计 此处编辑母版标题样式 【例】测试AX中的第12位是否为0,不为0则转L。

单T击EST此处AX,编_1_辑0_0_0_母H_ 版文本样式 JNE L
4
汇编语言(单程2序)设逻击计辑或此指令处编辑母版标题样式
格式:OR OPD,OPS
•功单能:击将即此目:的O处P操D←作编(数O辑与PD源)母操∨版作(数O文P按S)位本。相样或,式结果送目的操作数。 • 第二级 说明:
① “或”操作的运算原则是:1∨1=1,0∨1=1,1∨0=1,0∨0=0。
• 第三级 ② OR指令常用于: (a) 使一个操作数中的若干位保持不变,而另外若干位置1的
• 第四级场合。这时,要保持不变的这些位与“0”相或;而要置1 的这些位与“1”相或。
• 第五级 (b) 某一操作数,自己和自己相“或”,操作数不变,但可以 使进位标志CF清0。
【例】将AL寄存器中第3位和第7位置1。
NOT AX
;(AX)=7875H
8
汇编语言 单程序设击计 此处编辑母版标题样式 - AND指令对一个数据的指定位清0。例如,AND AL,0FH指令就实现将高4 位清0。 •- O单R指击令常此常用处来编对一辑些母指定版位置文1。本例样如,式指令OR AL,02实现对累加器中 的D1位置1。 • 第二级 - XOR指令常常用在一些程序的开头使某个寄存器清0,以配合初始化工作 • 第三级 的完成。例如,XOR AX,AX,使累加器清0。 - NOT指令常用来将某个数据取成反码,再加上1,便得到补码。 • 第四级 - TEST指令一般用来检测指定位是1还是0,而这个指定位往往对应一个物 理量。 • 第五级 例如,某一个状态寄存器的最低位反映一种状态,为1时,说明状态信号 满足要求,于是,就可以先将状态寄存器的内容读到AL中,再用TEST AL, 01指令,此后就可以通过对ZF的判断来了解此状态位是否为1。如果ZF= 1,说明结果为0,即最低位为0,条件不满足;如果ZF=0,说明结果不 为0,即最低位不为0,而为1,所以条件满足。
令执行后将使CF和OF位为0,AF位不确定,而SF、ZF和PF位则根据运算结果设
• 第三级 置;NOT指令是单操作数指令,符合单操作数指令的一般规律,它的执行不影
响标志位。
(• 1格)第式逻:四辑A与N级D指令OPD,OPS • 第五级 功能:将目的操作数与源操作数按位相与,结果送目的操作数。
即:OPD←(OPD)∧(OPS)。 说明:① “与”的运算原则是:1∧1=1,0∧1=0,1∧0=0,0∧0=0。
如指令XOR AX,AX ;AX清0。
(c) 测试某一操作数是否与另一确定的操作数相等。这种操作在检查地址是 否匹配时是常用的。
6
汇编语言 单程序设击计 此处编辑母版标题样式 【例】按位加运算。
• 单击MX此OORV处AA编LL,,辑4351母HH 版文; ;本( (AA样LL) )式==?45H
2
三、位操作指令 汇编语言 程序设计 单击此处编辑母版标题样式 8086提供的位操作指wenku.baidu.com包括逻辑运算指令和移位指令,这类指令可直接对
寄存器或存储器中的位进行操作。
• 单逻辑击运此算指处令包编括辑:A母ND指版1令.文、逻O辑本R指运令算样指、式令XOR指令、TEST指令和NOT指令, • 第二级 其中前四种指令是双操作数指令,符合双操作数指令的一般规律,这四条指
•② 第XO三R指级令常用于: • 第四级 (a) 使一个操作数中的若干位保持不变,而另外若干位取反的场合。这时,
要保持不变的这些位与“0”相异或;而要取反的那些位与“1”相异或。
• 第五级 (b) 使某一操作数清0。由于一个操作数自身做“异或”时,每一位都相同,
“异或”结果必为0,且使进位标志也为0。因此这是使操作数的初值置0的常用 的有效的方法。
;(AL)=74H
• 第(二4)级测试指令
• 第三级 格式:TEST OPD,OPS 功能:目的操作数与源操作数按位相与,结果反映在标志位上,
• 第四级但不送回目的操作数。 即:(OPD)∧(OPS)。
说明:
• 第五级 ① 该指令完成与AND指令相同的操作,但TEST指令不改变目的操
作数的值。
② TEST指令常用于:在不希望改变原有的操作数的情况下,用来
MOV AL,0
OR AL,88H
5
单击此处编辑母版标题样式 汇编语言 程序设计
(3)逻辑异或指令
格式:XOR OPD,OPS
功能:将目的操作数与源操作数按位相异或,结果送目的操作数。
说•明单: 击此即:处O编PD←辑(母OP版D)文⊕(本OP样S)式。 • 第二级 ① “异或”操作的运算原则是:1⊕1=0,0⊕0=0,0⊕1=1,1⊕0=1。
② AND指令常用于: (a)使一个操作数中的若干位保持不变,而若干位清为0的场合。 (b)某一操作数,自己和自己相“与”,操作数不变,但可以使进
位标志CF清0。
3
单击此处编辑母版标题样式 汇编语言 程序设计 【例】将AL中第3位和第7位清零。 MOV AL,0FFH • 单击此A处ND 编AL,辑77母H 版文本样式 • 第二级 • 第三级 • 第四级 • 第五级
• 第(二5)级逻辑非指令
• 第格三式级:NOT OPD • 第功四能级:将目的操作数各位取反,结果送目的操作数。
即:OPD←(OPD)。
• 第五级 说明:若将整个操作数取反,则应使用NOT指令,若只需将操作数
的一部分位取反,则应使用XOR指令。 【例】逻辑非运算。
MOV AX,878AH ;(AX)=878AH
相关文档
最新文档