使用 Easy68K 为课堂编写我的第一个汇编语言程序。
我正在使用 if-else 分支来复制代码:
IF (P > 12)
P = P * 8 + 3
ELSE
P = P - Q
PRINT P
但是我认为我的分支是错误的,因为即使在 CMP 发现 P < 12 的情况之后,如果我的代码没有第一次停止,程序仍然会通过 IF 分支运行。我在这里遗漏了什么,或者这是一种普遍接受的方式这样做?
这是我的汇编代码:
START: ORG $1000 ; Program starts at loc $1000
MOVE P, D1 ; [D1] <- P
MOVE Q, D2 ; [D2] <- Q
* Program code here
CMP #12, D1 ; is P > 12?
BGT IF ;
SUB D2, D1 ; P = P - Q
MOVE #3, D0 ; assign read command
TRAP #15 ;
SIMHALT ; halt simulator
IF ASL #3, D1 ; P = P * 8
ADD #3, D1 ; P = P + 3
ENDIF
MOVE #3, D0 ; assign read command
TRAP #15 ;
SIMHALT ; halt simulator
* Data and Variables
ORG $2000 ; Data starts at loc $2000
P DC.W 5 ;
Q DC.W 7 ;
END START ; last line of source