微型计算机原理及应用:逻辑运算指令_第1页
微型计算机原理及应用:逻辑运算指令_第2页
微型计算机原理及应用:逻辑运算指令_第3页
微型计算机原理及应用:逻辑运算指令_第4页
微型计算机原理及应用:逻辑运算指令_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1逻辑运算指令逻辑运算指令包括:AND(and)逻辑与、OR(or)逻辑或、NOT(not)逻辑非、XOR(exclusive or)异或、TEST(test)测试。逻辑指令对字节或字数据进行按位的操作。指令格式及操作如下:AND逻辑与指令指令格式:AND DST,SRC执行的操作:(DST)(DST)(SRC)指令功能: AND指令执行按位逻辑与操作。为双操作数指令,两个操作数宽度必须相等,即同为字节或字,执行结果存入DST中并且是按位进行。2【例】要求屏蔽寄存器AH的高四位,保留其低四位的数据。AND AH,0FH这条指令执行的结果使(AH)=0000 xxxxB。运算如下:3OR 逻辑或

2、指令指令格式:OR DST,SRC执行的操作:(DST)(DST)(SRC)指令功能:OR指令执行按位逻辑或操作。它们均为双操作数指令,两个操作数宽度必须相等,即同为字节或字,执行结果存入DST中并且是按位进行。【例】要求把寄存器AH的高四位置1,保留其低四位的数据。OR AH,0F0H这条指令执行的结果使(AH)=1111xxxxB。运算如下:NOT 逻辑非指令指令格式:NOT OPR执行的操作:(OPR) (OPR)XOR 逻辑异或指令指令格式:XOR DST,SRC执行的操作:(DST)(DST)(SRC)指令功能:XOR指令执行按位逻辑异或操作。它们均为双操作数指令,两个操作数宽度必须

3、相等,即同为字节或字,执行结果存入DST中并且是按位进行。说明:异或的运算法则为;11=0,10=1,01=1,00=0。相异为1,相同为0。TEST 测试指令指令格式:TEST OPR1,OPR2执行的操作:(OPR1)(OPR2)指令功能:对两个操作数指定的内容进行与操作, 但不保留结果,只是根据结果状态,对标志位进行置位。由此可用TEST指令对指定的字节或字的对应位进行测试,并根据测试结果进行不同的操作。 45注意:XOR AX,AX ;不仅清CF位,而且也清AX。逻辑非指令为单操作数指令,不允许使用立即数,也不影响标志位。其他4条指令为双操作数指令,当源操作数不是立即数时,两个操作数中

4、的一个要采用寄存器寻址方式,另一个操作数可以采用任何寻址方式。运算结果将影响标志位ZF(零标志)、SF(符号)和PF(奇),使CF(进借位)、OF(溢出)置0,对AF(半进借位)无影响。【例】分析下列各种逻辑运算指令。AND AH,0FH ;屏蔽寄存器AH的高四位,保留其低四位的数据。ORBX,0F00H;将寄存器BH的低四位置1,其他位数据不变。XOR CX,00FFH ;寄存器CH数据保持不变,对寄存器CL数据求反。 TEST AL,00000001B;如果寄存器AL最低位是0,则使零标志ZF=1(运算结果为0)。MOV AX,878AH ;(AX)=878AHNOT AX;(AX)=78

5、75H6(7)移位指令移位指令包括:SHL(shift logical left)逻辑左移、SAL(shift arithmetic left) 算术左移、SHR(shift logical right)逻辑右移、SAR(shift arithmetic right)算术右移、ROL(rotate left)循环左移、ROR(rotate right)循环右移、RCL(rotate left through carry)带进位循环左移、RCR(rotate right through carry)带进位循环右移。移位指令从移位方向上分为左移或右移;从移位功能上可以分为算术逻辑移位或循环移位,前

6、者是开环的,后者是闭环的;从移位次数上可以分为一次移位或多次移位。指令格式及操作如下: SHL 逻辑左移指令指令格式:SHL OPR,CNT执行的操作:如图(a)所示。其中OPR用除立即数外的任何寻址方式。移位次数由CNT决定,在8086中它可以是1或CL。CNT为1时只移一位,如需要移位的次数大于1,则可以在该移位指令前把移位次数置于CL寄存器中,而移位指令中的CNT写为CL即可。位操作指令包括逻辑运算指令和移位指令。位操作指令可以对字或字节执行逻辑运算。由于位操作指令是按位操作的,因此一般来说,其操作数应该是位串而不是数。 SAL 算术左移指令指令格式:SAL OPR,CNT执行的操作:与

7、SHL相同,如图(a)所示。 SHR逻辑右移指令指令格式:SHR OPR,CNT执行的操作:如图(b)所示。 SAR算术右移指令指令格式:SAR OPR,CNT执行的操作:如图(c)所示。 ROL循环左移指令指令格式:ROL OPR,CNT执行的操作:如图(d)所示。 ROR循环右移指令指令格式:ROR OPR,CNT执行的操作:如图(e)所示。 RCL带进位循环左移指令指令格式:ROL OPR,CNT执行的操作:如图(f)所示。 RCR带进位循环右移指令指令格式:ROR OPR,CNT执行的操作:如图(g)所示。8 由图可见,算术左移指令与逻辑左移相同,左移一位最低位补零,最高位移入CF,可

8、用于无符号数乘2操作;逻辑右移指令右移一位最高位补零,移出位进入CF,可用于无符号数除2操作;算术右移指令右移一位,最高位保持不变,移出位进入CF,可以用于有符号数除2操作。 所有移位指令都可以对字或字节操作数进行移位。移位结果对状态标志的影响是: 算术逻辑移位指令将影响标志位SF、ZF、CF和PF;循环移位指令只影响标志位CF OF,对其他标志位无影响。OF位只有当CNT=1时才有效,否则该位无定义。当CNT=1时,在移位后最高有效位的值发生变化时OF为置1,否则置0。9【例】各种移位指令的运用如下。操作数的初值执行的指令执行后操作数的内容对标志位的影响(BL)=00100011BSHL B

9、L,1(BL)=01000110BOF=0,CF=0,SF=0,ZF=0,FP=0(BL)=00100011B(CL)=4SHL BL,CL(BL)=00110000B(CL)=4OF=X,CF=0,SF=0,ZF=0,FP=0(BL)=01001110BSHR BL,1(BL)=00100111BOF=0,CF=0,SF=0,ZF=0,FP=1(BL)=00100011BSAL BL,1(BL)=01000110BOF=0,CF=0,SF=0,ZF=0,FP=0(BL)=01011010BSAR BL,1(BL)=00101101BOF=0,CF=0,SF=0,ZF=0,FP=1(AL)=01011011BROL AL,1(AL)=10110110BOF=1,CF=0(AL)=01011011B(CL)=4ROL AL,CL(AL)=10110101BOF=X,CF=0(AL)=01101011BROR AL,1(AL)=10110101BOF=1,CF=1(AL)=01101011BCF=1RC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论