编辑我的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
答
不能测试,但尝试更换
ADD Y, D3
随着
SUB Y, D3
您的代码将是* *很多更具可读性,如果你缩进相对于标签的说明。在每个块之前也留空白。 –