2015-10-06 34 views
0

目前,我正在学习汇编语言在我的课,而我还是想知道它的基本功能。 我给出这样一个问题:在大会移动寄存器(使用移动指令)

D5 contains $FFFFFFFF just before the instruction MOVE.W #$F3,D5 
executes. What is the value in D5 after this instruction? 

我不知道如何处理这个,我知道的是,移动命令,移动副本“F3”源INT D5,但我将如何找到实际结果? F3在D5的哪里?

+0

这是哪种处理器架构? [Motorola 68k](https://en.wikibooks.org/wiki/68000_Assembly)? – Nayuki

+0

是的,在Motorolla MC68000 – user3739406

+0

我还没有咨询过适当的参考然而,但在猜测答案可能是$ FFFF00F3 – Nayuki

回答

0

在M68K,你有编号的D0到D7 8X32位数据寄存器。 这些是MOVE.L src中引用的长字值,Dn是十六进制,0xFFFFFFFF是所有32位。 每个数据寄存器的低16位是用于字操作的数据寄存器,因此十六进制为0x0000FFFF。 底部的8位是该数据寄存器的字节字段,因此为0x000000FF。 例如,move.b#$ 00时,D0设置D0的低8位到零 EXT.w D0,从一个字节的字扩展D0字节位。 D0将D0中的字位从单词扩展为长字。

在你给的例子,上16位被设置为0X $ FFFF和低16位将被覆盖。