编辑我的Easy68k(程序集)程序来减去而不是添加

编辑我的Easy68k(程序集)程序来减去而不是添加

问题描述:

好的,这里是家伙。在你之前,我有一个执行这个算法的程序: “IF X> 12 THEN X = 2 * X + 4 ELSE X = X + Y,OUTPUT X.”编辑我的Easy68k(程序集)程序来减去而不是添加

问题是,我需要它来执行这个代替: “IF X> 12 THEN X = 2 * X + 4 ELSE X = X - 13,OUTPUT X.”

我该如何减去而不是添加?

ORG $1000 
START: LEA PROMPT, A1 
MOVE.B #14, D0 
TRAP #15 
MOVE.B #4, D0 
TRAP #15 
MOVE D1, D3 
LEA STTY, A1 
MOVE.B #14, D0 
TRAP #15 
CMP #12, D3 
BGT MULTADD 
CMP #12, D3 
BRA ADDY 
MULTADD LEA XGT, A1 
MOVE.B #14, D0 
TRAP #15 
LEA TWOXP4, A1 
MOVE.B #14, D0 
TRAP #15 
MULU #2, D3 
ADD #4, D3 
MOVE D3, D1 
MOVE.B #3, D0 
TRAP #15 
BRA FIN 
ADDY LEA XLT, A1 
MOVE.B #14, D0 
TRAP #15 
LEA XPY, A1 
MOVE.B #14, D0 
TRAP #15 

ADD Y, D3 
MOVE D3, D1 
MOVE.B #3, D0 
TRAP #15 
BRA FIN 
FIN MOVE.B #9,D0 
TRAP #15 
* Variables and Strings 
PROMPT DC.B ';Enter X: ';, 0 
STTY DC.B ';Y = 4';, CR, LF, 0 
XGT DC.B 'X > 12';, CR, LF, 0 
XLT DC.B 'X != 12';, CR, LF, 0 
TWOXP4 DC.B 2 * X + 4 = ';, CR, LF, 0 
XPY DC.B 'X + Y = ';, 0 
Y DC.W 4 
CR EQU $0D 
LF EQU $0A 

END START 
+0

您的代码将是* *很多更具可读性,如果你缩进相对于标签的说明。在每个块之前也留空白。 –

不能测试,但尝试更换

ADD Y, D3 

随着

SUB Y, D3