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