逆アセンブラについてです。
AMD64 ATT表記法です。
逆アセンブリ結果のmainが
00000000004003c0 <main>:
4003c0: 48 b8 0f 0e 0d 0b 00 movabs $0xc0601000b0d0e0f,%rax
4003c7: 01 06 0c
4003ca: 83 ff 02 cmp $0x2,%edi
4003cd: 48 89 44 24 f0 mov %rax,-0x10(%rsp)
4003d2: 48 b8 04 05 08 0a 02 movabs $0x70903020a080504,%rax
4003d9: 03 09 07
4003dc: 48 89 44 24 f8 mov %rax,-0x8(%rsp)
4003e1: b8 01 00 00 00 mov $0x1,%eax
4003e6: 75 59 jne 400441 <main+0x81>
4003e8: 48 8b 56 08 mov 0x8(%rsi),%rdx
4003ec: 31 c0 xor %eax,%eax
4003caの%ediレジスタにmain関数第一引数が入っていて、2個(1個)あるか比較していて
第2引数はrsi+8 つまり文字列の先頭がここに入ってると考えているのですが、あってますでしょうか。
また4003c0や4003d2などはメモリアドレスをそのままレジスタに代入していると考えているのですがあってますでしょうか?
するとこれはわかりませんがa=2 b=3などということでしょうか。
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー