有人可以向我解释这个汇编代码吗?

时间:2013-11-22 02:13:01

标签: assembly

我对汇编语言非常陌生,这基本上是我第一次使用它。我试图理解这段代码的工作方式,如预执行映射内存和后执行映射内存。我知道格式化在汇编中很重要,我已经在asmIDE中格式化了代码,但是当我在这里粘贴它时它就搞砸了。万一你们想要知道它编译和调试,我能够得到  https://db.tt/rudh5oBZ (image)

作为预执行调试,但我不确定它是如何工作的......我需要一些清晰度。

也可以有人澄清这些关键词:dw,$和no $之间的区别,staa,swi,std?谢谢。我正在为Dragon12微控制器写这个。

          org     $1000  ;start at ram

  Val1    dw      $1234
  Val2    db      16
  Val3    dw      1234

  Val4    equ     $06


          org     $1020

   Res0    ds      1
   Res1    ds      1
   Res2    ds      2
   Res3    ds      1
   Res4    ds      2

    org     $2000 ;start at rom

   ldaa    Val2

    staa    Res0
    ldab    #Val4
    stab    Res1
    ldd     Val3
    stab    Res2
    ldaa    $1001
    std     Res2
    staa    Val3+1
    swi

    end

1 个答案:

答案 0 :(得分:0)

$是一个前缀,表示后续数字是十六进制形式。否则,该数字为十进制形式。

dw“define word”是一个定义两个字节的内存块的指令。 dw后面的数字是程序启动时该内存的初始值。

db“define byte”是与dw类似的指令,但指定单个字节。

我不知道“龙”汇编语言,但这些是许多汇编程序的非常常见的指令。实际的汇编指令虽然特定于cpu。我猜猜staa,swi,std是什么意思,但不会。你应该可以很容易地查找它们。