我想一次将 4 个字节$B1,B2,B3,B4移动到数据寄存器D1中。
我在 D1 中想要的值是$B1B2B3B4。
哪些说明可以帮助我做到这一点?
我找到了使用 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
使用这样做没有意义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
也许它不是更短或更快,但至少我认为它更清晰。
有时你可以直接说:
MOVE.L #$B1B2B3B4,D0
(耸肩)
如果您需要节省内存或快速运行,有一些聪明的方法可以做您想做的事。