内存中的一个字节,地址为$ 9000。
编写程序清除第7位和第6位,设置第5位和第4位,以及将第3,2,1和0位切换。
这就是我所拥有的,它不起作用。
ORG $9000
MOVE.B #00, D0
MOVE #7, D1
BCLR #7, D0
NEXT BTST D1,D0
BEQ ZERO
BCHG #7,D0
ZERO SUB.B #1,D1
BCC NEXT
EXIT TRAP #14
END $9000
非常感谢任何帮助
答案 0 :(得分:3)
我不知道68k汇编,但为什么这么长的程序,为什么你需要比较和跳转,而它只是一些简单的按位运算。这是C
中的一个实现a &= 0x3f; // 0011 1111 clear bit 7 and 6
a |= 0x30; // 0011 0000 set bit 5 and 4
a ^= 0x0f; // 0000 1111 toggle bit 3~0
转换为汇编时,它只需要3个简单的操作(如果需要,不包括可变负载和3个恒定负载),根本不需要跳转和比较