资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
逻辑运算和移位指令逻辑运算和移位指令 1. 1. 逻辑运算指令逻辑运算指令 (1) (1) 逻辑非指令逻辑非指令NOTNOT 指令功能:将指令功能:将OPROPR内容按位取反并送回内容按位取反并送回 指令格式:指令格式: NOT OPR NOT OPR 指令操作:指令操作: OPR (OPR)OPR (OPR) 对标志位的影响:不影响标志寄存器对标志位的影响:不影响标志寄存器(2) (2) 逻辑逻辑与指令与指令ANDAND 指令功能:指令功能:两个操作数进行按位逻辑与运算,结果送目的操作数两个操作数进行按位逻辑与运算,结果送目的操作数 指令格式:指令格式:AND DSTAND DST,SRCSRC 指令操作:指令操作:DST (DST)(SRC) DST (DST)(SRC) 运算法则:运算法则:11=111=1,10=010=0,01=001=0,00=000=0。 对标志位的影响:指令执行后使对标志位的影响:指令执行后使CF=0CF=0,OF=0OF=0,且影响标志位,且影响标志位SFSF、ZFZF和和PFPF,而对,而对AFAF未定义。未定义。 该指令可以清除目的操作数中与源操作数为该指令可以清除目的操作数中与源操作数为0 0的对应位的对应位 1.1.逻辑运算指令逻辑运算指令(3)(3) 指令功能:指令功能:两个操作数进行按位逻辑或运算两个操作数进行按位逻辑或运算, , 并将结果送目的操作数并将结果送目的操作数 指令格式:指令格式: OR DSTOR DST, SRCSRC 指令操作:指令操作: DST DST (DST) (DST)(SRC)(SRC) 运算法则:运算法则:11=111=1,10=110=1,01=101=1,00=000=0 对标志位的影响同对标志位的影响同ANDAND 该指令该指令可以使操作数中某些位置可以使操作数中某些位置1 1,而其他位保持不变,而其他位保持不变逻辑或指令逻辑或指令OROR逻辑异或指令逻辑异或指令XORXOR(4)(4) 指令功能:两个操作数进行按位逻辑异或运算,并将结果送目的操作数指令功能:两个操作数进行按位逻辑异或运算,并将结果送目的操作数 指令格式:指令格式: XOR DSTXOR DST, SRCSRC 指令操作:指令操作: DST (DST)(SRC)DST (DST)(SRC) 运算法则:运算法则:11=011=0,10=110=1,01=101=1,00=0 00=0 对标志位的影响同对标志位的影响同ANDAND XORXOR指令可以将指定位求反指令可以将指定位求反 1.1.逻辑运算指令逻辑运算指令(5)(5) 测试指令测试指令TESTTEST 指令功能:指令功能:与与ANDAND指令的唯一区别是结果不回送目的地址指令的唯一区别是结果不回送目的地址 指令格式:指令格式: TEST OPR1TEST OPR1,OPR2OPR2 指令操作:指令操作: (OPR1)(OPR2) (OPR1)(OPR2) 对标志位的影响同对标志位的影响同ANDAND 可在不改变源操作数的情况下,测试某一位或几位的值可在不改变源操作数的情况下,测试某一位或几位的值注意注意逻辑运算指令中除逻辑非逻辑运算指令中除逻辑非NOTNOT指令不影响标志位外,指令不影响标志位外, 其余均影响标志位:其余均影响标志位:CF=0CF=0;OF=0OF=0;SFSF、ZFZF、PFPF依据运算结依据运算结 果设置。果设置。 指令功能:算术左移指令功能:算术左移 / / 右移指令右移指令逻辑左移逻辑左移 / / 右移指令右移指令循环左移循环左移 / / 右移指令右移指令 指令格式:操作符 指令格式:操作符 OPROPR,1 1 或或CLCL。注意注意当移动一位时,后一操作数为当移动一位时,后一操作数为1 1,当移动位数超过一位时,当移动位数超过一位时 ,使用,使用CLCL寄存器的值表示。寄存器的值表示。 2. 2.移位指令移位指令移位指令移位指令举例举例SHLSHL(shift logical leftshift logical left)逻辑左移逻辑左移SALSAL(shift arithmetic leftshift arithmetic left) 算术左移算术左移SHRSHR(shift logical rightshift logical right)逻辑右移逻辑右移SARSAR(shift arithmetic rightshift arithmetic right) 算术右移算术右移ROLROL(rotate leftrotate left) 不带进位循环左移不带进位循环左移RORROR(rotate rightrotate right)不带进位循环右移不带进位循环右移RCLRCL(rotate left carryrotate left carry)带进位循环左移带进位循环左移RCRRCR(rotate right through carryrotate right through carry)带进位循环右移带进位循环右移 移位指令示意图循环移位指令示意图
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号