2016-05-30 27 views
1

私は、エミュレートされたMSP430 CPUを使用するMicrocorruption CTFの作業中です。MOVとMOV.Bのアセンブリ言語命令

mov.b #0x4f, 0x0(r15)

私はMOV.Bがあると仮定します。

mov sp, r4 ; move value of stack pointer to register 4

mov #0xfffc, r15 ; move hex value fffc to r15

は、私が解釈しようとしている:

は、私のようないくつかのmov命令の例を見てきました#0x4fのバイナリ値ですが、わかりません0x0(r15) s。

答えて

4

それはバイトの操作を使用することを意味します:

The suffix .B at the instruction memonic will result in a byte operation 

だからのみのデータのバイトは、送信元から宛先にコピーされます。

0x0(r15)はインデックス付きアドレッシングモードなので、r15 + 0バイトを使用して宛先を指定します。

+0

ありがとうございます...なぜmov#0x04f、r15の代わりにmov.bですべての式ですか? –

+1

あなたが書いたものが値をr15に移すので。コード内の内容は、r15が指すバイトにそれを移動します。 –

+0

はい - 指定されたレジスタとレジスタ内の任意のバイト位置のデータの一部を変更できます。 – Kieveli

関連する問題