我需要用68k汇编语言编写一些数学公式:
的x ^ 2-5x + 6
我想用ADD和SUB命令来做,然后以某种方式移动我无法定义变量x它说它是一个未定义的符号而我实际上无法意识到我的问题所在。
ORG $1000
START: ; first instruction of program
MOVE X*X, D0
MOVE (-5X),D2
MOVE 6,D3
ADD D0, D3
SUB D2, D1
SIMHALT
错误: 第10行语法无效 第11行语法无效
答案 0 :(得分:1)
这样的事情,假设基本是68000(而不是68020或更好)。
你可能必须解决诸如X是单词还是长单词之类的问题,并且因为我做68k汇编程序已经很长时间才处理签名扩展等问题。 X最后被定义为一个单词常量。
ORG $1000
START: ; first instruction of program
CLR.L D7 ; Clear D0 - alternatively MOVEQ #0,D0
MOVE.W X,D7 ; Read X
; Output initial value...
LEA S1,A1
MOVE.W #255,D1
MOVE.L D7,D1
MOVEQ #17,D0
TRAP #15
LEA SNUL,A1
MOVEQ #13,D0
TRAP #15
MOVE.L D7,D6 ; copy of X
ASL.L #2,D6 ; Multiply by 4
ADD.L D7,D6 ; 4X plus another X = 5X
MULU.W D7,D7 ; X^2
SUB.L D6,D7 ; Subtract 5X from X^2
ADDQ.L #6,D7 ; plus 6
; Output answer...
LEA S2,A1
MOVE.L D7,D1
MOVEQ #17,D0
TRAP #15
SIMHALT ; halt simulator
* Put variables and constants here
S1: DC.B 'Initial :',0
S2: DC.B 'Answer :',0
SNUL: DC.B 0
X: DC.W 1234 ; Initial (fixed) value of X
END START ; last line of source