【问题标题】:68K Assembly Math Formula68K 汇编数学公式
【发布时间】:2018-04-25 09:42:31
【问题描述】:

我需要用 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 行无效语法

【问题讨论】:

  • 您显示的代码中没有“x”。并且没有N 的定义。请尝试创建一个Minimal, Complete, and Verifiable Example 向我们展示,然后将您从该代码中得到的实际错误复制粘贴到您的问题中。
  • 已编辑,我希望现在显示问题
  • X 应该是常量还是内存位置?
  • 它应该是一个接受整数的常量
  • 那你需要在某处定义常量,并给它一个值。

标签: 68000 easy68k


【解决方案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

【讨论】:

    猜你喜欢
    • 2011-09-26
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 2010-12-10
    相关资源
    最近更新 更多