全球旧事资料 分类
。3逻辑异或指令格式:XORDEST,SRC功能:目的操作数和源操作数按位进行逻辑异或运算,结果送目的操作数。源操作数可以是通用寄存器、存储器或立即数。目的操作数可以是通用寄存器或存储器操作数。例3.43XORAX,BXXORBX,1010HXOR指令常用于将操作数中某些位取反,只须将要取反的位异或1,其它不改变的位异或0即可。XORAL,OFH;将AL中低4位取反,高4位保持不变。例3.44XOR指令影响标志位为SF,ZF,PF,并且使OFCF0。4逻辑非指令格式:NOTDEST功能:对目的操作数按位取反,结果回送目的操作数。目的操作数可以为通用寄存器或存储器。例3.45NOTEAXNOTBYTEPTRBXNOT指令对标志位无影响。5测试指令格式:TESTDEST,SRC功能:目的操作数和源操作数按位进行逻辑与操作,结果不回送目的操作数。源操作数可以为通用寄存器、存储器或立即数。目的操作数可以为通用寄存器或存储器操作数。例3.46TESTDWORDPTRBX,80000000HTESTAL,CLTEST指令常用于测试操作数中某位是否为1,而且不会影响目的操作数。如果测试某位的状态,对某位进行逻辑与1的运算,其它位逻辑与0,然后判断标志位。运算结果为0,ZF1,表示被测试位为0;否则ZF0,表示被测试位为1。TESTAL,80H;测试AL中最高位例347JNZNEXT;如果最高位为1,转到标志NEXT处。TEST指令影响标志位为SF,ZF,PF,并且使OFCF0。二、移位指令移位指令对操作数按某种方式左移或右移,移位位数可以由立即数直接给出,或由CL间接给出。移位指令分一般移位指令和循环移位指令。1一般移位指令1算术逻辑左移指令。格式:SALDEST,OPRD
fSHLDEST,OPRD功能:按照操作数OPRD规定的移位位数,对目的操作数进行左移操作,最高位移入CF中。每移动一位,右边补一位0。如图312a所示。目的操作数可以为通用寄存器或存储器操作数。SAL,SHL指令影响标志位OF,SF,ZF,PF,CF。
图312
移位指令示意图移位指令示意图
例348SHLBYTEPTRDI,2SALBX,CL2算术右移指令。格式:SARDEST,OPRD功能:按照操作数OPRD规定的移位次数,对目的操作数进行右移操作,最低位移至CF中,最高位即符号位保持不变。如图312b所示。目的操作数可以为通用寄存器或存储器操作数。SAR指令影响标志位OF,SF,ZF,PF,CF。例3.49SARAL,5SARWORDPTRECXCL3逻辑右移指令。格式:SHRDEST,SRC功能:按照操作数OPRD规定的移位位数,对目的操作数进行右移操作,最低位移至CF中。每移动一位,左边补一位0。如图312c所示,目的操作数可以为通用寄存r
好听全球资料 返回顶部