2016-05-30 349 views
1

我正在使用使用仿真MSP430 CPU的Microcorruption CTF。MOV與MOV.B彙編語言指令

我見過幾個MOV指令的例子,如:

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

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

我試圖解釋:

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

我認爲MOV.B是二進制值#0x4f,但我不確定什麼0x0(r15)表示秒。

回答

4

這意味着使用一個字節的操作:

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

所以數據的僅一個字節將從源到目的地被複制。

0x0(r15)是一種索引尋址模式,因此請使用r15 + 0字節來指定目標。

+0

謝謝......爲什麼所有的儀式都用mov.b代替mov#0x04f,r15? –

+1

因爲你寫的東西把值移到了r15中。代碼中的內容將它移動到r15指向的字節中。 –

+0

是 - 它允許您修改指定寄存器中的數據的一部分,以及寄存器內的任何字節位置。 – Kieveli