2013-11-22 207 views
-1

我對彙編語言很陌生,這基本上是我第一次接觸它。我試圖瞭解這些代碼如何像Pre-Execution Mapped Memory和Post-Execution Mapped Memory一樣工作。我知道格式化在裝配中很重要,我已經在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

明確需要 - 首先告訴我們你正在寫的處理器。 – 2013-11-22 02:19:49

+0

dragon 12 hcs12 – answerSeeker

回答

0

$是一個前綴,表示後面的數字是十六進制形式。否則,該數字是十進制形式。

dw「define word」是定義一個兩字節內存塊的指令。 dw後面的數字是程序啓動時該內存的初始值。

db「define byte」與dw類似,但指定一個字節。

我不知道「龍」彙編語言,但這些對許多彙編程序來說是很常見的指令。但實際的彙編指令是特定於CPU。我可以猜到staa,swi,std是什麼意思,但不會。你應該能夠很容易地看到它們。

+0

'ldab#Val4'和'ldab Val4'有什麼區別? – answerSeeker

+0

ldab#Val4表示將數字6(記住Val4由equ定義爲$ 06的同義詞)加載到累加器B寄存器中。 ldab Val4表示將地址爲6的內存內容加載到該寄存器中。 –

相關問題