我正在将汇编代码转换为'C',我遇到了一条我觉得很难理解的指令,这是代码
add a,#0-3 jc c_fail
我不明白add a,#0-3行
add a,#0-3
add a,#0-3与add a,#-3相同,将A与-3相加。在8051 MCU中,-3将被视为0xFD。因此,如果A值等于或大于3(a> = 3),则由于进位标志,程序将转到c_fail地址。
add a,#-3
A
-3
0xFD
3
c_fail
此外,如果从subb a,#3代替下一行的jnc使用,也可以用jc替换。
subb a,#3
jnc
jc