2013-02-14 47 views
1

我想寫一個程序,將採取8位值並將其寫入到D0。然後它將被屏蔽成4位值。我得到的號碼應該訪問A0中的一個數字並寫入D1。MC68k彙編程序地址語法

該號碼將被髮送到輸出。

這是我怎麼就開始激戰:

IN_PORT  EQU $FFFFF011 
OUT_PORT EQU $FFFFF019 

mask  EQU $0F 

ORG $4000 

START: MOVE.B IN_PORT,D0 
     ANDI.B #mask,D0 

     MOVE.B (0,A0,D0),D1 * Problem area 
     MOVE.B D1,OUT_PORT 

JMP START 


ORG $5000 

segCodes: 
    DC.B $77,$22,$5B,$6B 
    DC.B $2E,$6D,$7D,$23 
    DC.B $7F,$2F,$DD 

我的問題似乎是圍繞註釋語法。 D1沒有寫入任何內容,也沒有內容發送到輸出。

+0

在你的問題你說你正在訪問A0的值。這不是你所做的。指令:MOVE.B(0,A0,D0),D1,對它的源使用間接尋址,即A0指向一個基地址,0和D0給它加上一個偏移量。結果地址是將值從D1複製到的地址。你的代碼中的問題是A0沒有用基地址初始化,你已經在你自己的答案中找到了它。 – 2013-02-16 13:43:40

回答

1

我忘了使用以下命令添加地址:

MOVEA.L #$5000,A0 

這寫地址的目的,因此可以正確訪問,我想。如果我錯了,請糾正我。