请教大家,51汇编语言,如何比较两个BIT是否相同?
如题:如果定义了 位变量B1 BIT 10H;
B2 BIT 11H;
51汇编怎样编程,比较这2个BIT是否相同?我以为有异或运算指令,但看指令表才知道字节才有异或指令,位运算没有,请给一个思路,谢谢。
位 直接用JB /JNB 判断就好了吧{:4_165:}
不知道有没有更好的方法
咳,让大家笑话了,按照异或的运算规则就是了 ,a⊕b = (¬a ∧ b) ∨ (a ∧¬b)。 C 语言,直接异或即可,B3 = B1 ^ B2;
汇编语言, 也简单, B3 = B1 ^ B2;
执行如下代码:
MOV C,B1
JNB B2,$+4
CPL C
MOV B3,C
汇编中, 没有合适的单条指令, 可用多条指令模拟执行此功能. LAOXU 发表于 2023-11-30 12:56
C 语言,直接异或即可,B3 = B1 ^ B2;
汇编语言, 也简单, B3 = B1 ^ B2;
您真是高手,非常感谢。 本帖最后由 newlined 于 2023-11-30 16:26 编辑
LAOXU 发表于 2023-11-30 12:59
汇编中, 没有合适的单条指令, 可用多条指令模拟执行此功能.
我就是这么做的,但程序比起4楼的高手来说,差不少{:smile:} newlined 发表于 2023-11-30 15:56
我就是这么做的,但程序比起4楼的高手来说,差不少
我的业余爱好就是汇编, 喜欢用汇编优化各种程序, 以尽少的代码量, 达到同等或更优的功能. LAOXU 发表于 2023-11-30 18:15
我的业余爱好就是汇编, 喜欢用汇编优化各种程序, 以尽少的代码量, 达到同等或更优的功能. ...
汇编语言用的这么好,竟然还是您的业余爱好,敬佩。 LAOXU 发表于 2023-11-30 12:56
C 语言,直接异或即可,B3 = B1 ^ B2;
汇编语言, 也简单, B3 = B1 ^ B2;
请教老许,三个异或输入,具体是哪些应用场景才需要
下面这三个异或输入,有哪些可能的应用场景
https://www.stcaimcu.com/forum.p ... ptid=5330&pid=37836
还有后续新 STC8H的 MDU16 会换成 MDU32 的设计,就是少了些功能
页:
[1]
2