|
发表于 2022-9-16 15:39:59
|
显示全部楼层
本帖最后由 jackz007 于 2022-9-16 15:44 编辑
我也写了一个和你一模一样的代码,这是在我这边用调试器看到的代码样子
- 00401350 /$ 55 push ebp
- 00401351 |. 89E5 mov ebp, esp
- 00401353 |. 83E4 F0 and esp, FFFFFFF0
- 00401356 |. 83EC 20 sub esp, 20 ; 在堆栈中开辟出 0x20 字节空间供局部变量使用
- 00401359 |. E8 F2050000 call 00401950
- 0040135E |. C74424 1C 09000000 mov dword ptr [esp+1C], 9 ; <--- a = 9
- 00401366 |. C74424 18 09000000 mov dword ptr [esp+18], 9 ; <--- b = 9
- 0040136E |. C74424 14 00000000 mov dword ptr [esp+14], 0 ; <--- c = 0
- 00401376 |. 8B5424 1C mov edx, dword ptr [esp+1C] ; <--- edx = a
- 0040137A |. 8B4424 18 mov eax, dword ptr [esp+18] ; <--- eax = b
- 0040137E |. 01D0 add eax, edx ; eax = b + a
- 00401380 |. 894424 14 mov dword ptr [esp+14], eax ; <--- c = eax
- 00401384 |. C70424 24304000 mov dword ptr [esp], 00403024 ; |ASCII "pause"
- 0040138B |. E8 30080000 call <jmp.&msvcrt.system> ; \system
- 00401390 |. B8 00000000 mov eax, 0 ; eax = 0 就是 return 0 中的那个 0
- 00401395 |. C9 leave
- 00401396 \. C3 retn
- 00401397 90 nop
复制代码
你的反汇编代码采用了 AT&T 风格,我这个采用的是 Intel 风格,二者虽然在指令文本形式上存在不同,但是,机器指令本身并无本质的差别。
|
|