2016-06-23 10 views
0

私はARMプラットフォームのゲームからいくつかのアセンブリコードを逆にしていますが、cmp r2,0h命令が見つかりました。 cmp命令をオンラインで見て、私は実際にr2の値を0と比較することに気付きました(疑似Cはr2==0でしょうか?)ので、0hも同じ意味ですか? 0hは0(unsigned int)ですか?アームアセンブリ:cmp r2,0hはcmp r2、#0と同じですか?

一般に、アドレスオフセットの後にも値の後ろに 'h'があるので、それは何らかのフラグであると思いますか?たとえば、cmp命令の後には、サブr2、r2,1h

ありがとうございます。

PS:それは@Notlikethatで説明したように、時間サフィックスが「進」(16進数)を表しているようだ

+3

これは確かに定数のアーキテクチャ構文ではありませんが、最終的に逆アセンブラは自由に自由に表示することができます。私は$ gbaを特に見たことがないことを思い出していますが、16進数以外のもの(10h == 0x10 == 16など)を意味するなら、信じられないほど驚くでしょう。 – Notlikethat

+0

@Notlikethat 'h'は、 'hex'のようなものを意味するのでしょうか? 1hは0x1の16進数で1になります。したがって、0h == 0x0 == 0右?解決策であると思われる。 –

+2

http://www.keil.com/support/man/docs/uv4/uv4_db_exp_constants.htm –

答えて

0

を重要ならば、私は何の$ GBAデバッガを使用していませんよ。 $ gbaにないアドレス(つまり02035000hは0x02035000)と値(10hは0x10)はこの接尾辞を使用します。

+1

'0xDEADBEEF'ではなく16進定数のためのDOS/Windows x86アセンブラ(MASM/TASMのような)、[' h'サフィックスのサポートのみ](http://stackoverflow.com/a/37152498/224132)アセンブラ)。おそらくこの選択は、DOS/Windowsツールに使用されていたasmプログラマーにとってより親しみがあると思っていた人によって行われました。 –

関連する問題