我之前发布了询问如何为这个程序定义十六进制常量的帖子,有人帮我解决了这个问题,现在我试图弄清楚这个程序是否运行正确。
该程序旨在计算逻辑表达式 X'Y + X'Z + YZ 并将结果放入 D0。程序完成后,我需要以二进制形式显示 D0 的内容。这就是我所拥有的(对齐在这里有点混乱,但它在汇编程序中对齐(EASy 68K)):
START: MOVE X,D0
NOT D0
MOVE D0,D1
MOVE Y,D2
AND D2,D0
AND Z,D1
AND Z,D2
OR D1,D0
OR D2,D0
EXIT: BRA EXIT
X: DC $000F
Y: DC $0033
Z: DC $0055
这就是我在各自的数据寄存器中得到的结果:
D0:00000071 D1:00000050 D2:00000011
忽略结果应该以二进制显示的事实......因为这是一个逻辑表达式,我只使用 AND 和 OR,D0 中的结果不应该是 1 还是 0?因为 X、Y 和 Z 都是非零常数,所以表达式的计算结果为 1 (YZ=1)...我在程序中出错了吗?还是我的理解错了?
谢谢