-2

我需要用数学公式用 68k 汇编语言编写一些行:

x^2-5x+6

我想用 ADD 和 SUB 命令以及 MOVE 来完成它,但不知何故我无法定义变量 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 行无效语法

4

1 回答 1

1

像这样,假设基本为 68000(而不是 68020 或更好)。

自从我做 68k 汇编程序以来,您可能必须解决诸如 X 是单词还是长单词之类的问题,并处理诸如符号扩展之类的问题。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
于 2018-04-25T10:00:17.283 回答