汇编中OR与AND指令详细意义

2024-11-30 02:21:34
推荐回答(2个)
回答1:

汇编中OR的指令为逻辑或运算,该指令会置CF=OF=0,其结果影响SF、ZF、PF。指令格式为OR r/m,r/m/i。例如:mov al,01100011B(换行符)or al,00111011B的执行结果为al=01111011B。

汇编中AND的指令为逻辑与运算,该指令会置CF=OF=0,其结果影响SF、ZF、PF。指令格式为AND r/m, r/m/i。例如:mov al,01100011B(换行符)and al,00111011B的执行结果为al=00100011B。

OR EAX,80008000H和AND CH,80H的逻辑与或运算,执行需要参考对应逻辑常量与变量之间的数值才能得出执行结果。

扩展资料

汇编中出了OR与AND的逻辑运算之外,还有XOR、NOT和TEST指令。该五个指令构成了最基本的汇编逻辑运算,通过指令之间的灵活配合使用进而实现程序员的编程目的。

XOR为逻辑异或操作,异或指令的格式为XOR OPRD1 OPRD2。标志位同与运算指令,某个操作数自身异或,值不变,可使进位标志CF=0。而与0异或,不变,与1异或,取反。

NOT为逻辑否操作,否指令的格式为NOT OPRD。把OPRD取反,再回送给OPRD。该操作对标志位没有影响。某个操作数自身或,值不变,可使进位标志CF=0。

TEST为测试操作,测试指令的格式为TEST OPRD1 OPRD2,该指令与AND类似,但结果不回送。该指令执行后,ZF,PF,SF反映运算结果,CF=OF=0

参考资料来源:百度百科-汇编指令

回答2:

OR称为(或)运算,是一种位运算,即用1的位与对应值进运算 ,运算之前进行2进制转换
如 0B00001111 OR 0B11000000 值为0B11001111,
AND为叠加时取0 如 0B00001111 AND 0B11000011 值为0B00000011,