2015-10-06 68 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位將被覆蓋。