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