2

我想一次将 4 个字节$B1,B2,B3,B4移动到数据寄存器D1中。

我在 D1 中想要的值是$B1B2B3B4

哪些说明可以帮助我做到这一点?

4

3 回答 3

1

我找到了使用 LSL(谢谢,Chris Stratton)和 SWAP 的解决方案:

MOVE.B      #$B1,D0
LSL         #8,D0
MOVE.B      #$B2,D0
SWAP        D0
MOVE.B      #$B3,D0
LSL         #8,D0
MOVE.B      #$B4,D0
于 2014-11-24T00:23:02.927 回答
1

使用这样做没有意义SWAP,只需结合移动,ors 和 shifts:

MOVE.B  #$B1, D0  ; D0 now $xxxxxxB1
LSL.L   #8, D0    ; $xxxxB100
ORI.B   #$B2, D0  ; $xxxxB1B2
LSL.L   #8, D0    ; $xxB1B200
ORI.B   #$B3, D0  ; $xxB1B2B3
LSL.L   #8, D0    ; $B1B2B300
ORI.B   #$B4, D0  ; $B1B2B3B4

也许它不是更短或更快,但至少我认为它更清晰。

于 2015-04-28T08:32:01.057 回答
0

有时你可以直接说:

MOVE.L #$B1B2B3B4,D0

(耸肩)

如果您需要节省内存或快速运行,有一些聪明的方法可以做您想做的事。

于 2015-02-26T00:27:33.020 回答