一、X86加法汇编代码
int a = 0;
00632165 mov dword ptr [ebp-8],0
9: int b = 0;
0063216C mov dword ptr [ebp-14h],0
10: a = a + 1;
00632173 mov eax,dword ptr [ebp-8]
00632176 add eax,1
00632179 mov dword ptr [ebp-8],eax
11: a = 1 + 2;
0063217C mov dword ptr [ebp-8],3
12: a = a + b;
00632183 mov eax,dword ptr [ebp-8]
00632186 add eax,dword ptr [ebp-14h]
00632189 mov dword ptr [ebp-8],eax
二、X64加法汇编代码
int a = 0;
00007FF6EE59190B mov dword ptr [rbp+4],0
9: int b = 0;
00007FF6EE591912 mov dword ptr [rbp+24h],0
10: a = a + 1;
00007FF6EE591919 mov eax,dword ptr [rbp+4]
00007FF6EE59191C inc eax //自加1操作
00007FF6EE59191E mov dword ptr [rbp+4],eax
11: a = 1 + 2;
00007FF6EE591921 mov dword ptr [rbp+4],3
12: a = a + b;
00007FF6EE591928 mov eax,dword ptr [rbp+24h]
00007FF6EE59192B mov ecx,dword ptr [rbp+4]
00007FF6EE59192E add ecx,eax
00007FF6EE591930 mov eax,ecx
00007FF6EE591932 mov dword ptr [rbp+4],eax
三、X86减法汇编代码
int a = 100;
00C21925 mov dword ptr [ebp-8],64h
16: int b = 50;
00C2192C mov dword ptr [ebp-14h],32h
17: a = a - 5;
00C21933 mov eax,dword ptr [ebp-8]
00C21936 sub eax,5
00C21939 mov dword ptr [ebp-8],eax
18: a = a + 6 - b;
00C2193C mov eax,dword ptr [ebp-8]
00C2193F add eax,6
00C21942 sub eax,dword ptr [ebp-14h]
00C21945 mov dword ptr [ebp-8],eax
四、X64减法汇编代码
int a = 100;
00007FF64629190B mov dword ptr [rbp+4],64h
16: int b = 50;
00007FF646291912 mov dword ptr [rbp+24h],32h
17: a = a - 5;
00007FF646291919 mov eax,dword ptr [rbp+4]
00007FF64629191C sub eax,5
00007FF64629191F mov dword ptr [rbp+4],eax
18: a = a + 6 - b;
00007FF646291922 mov eax,dword ptr [rbp+4]
00007FF646291925 add eax,6
00007FF646291928 sub eax,dword ptr [rbp+24h]
00007FF64629192B mov dword ptr [rbp+4],eax
五、X86乘法汇编代码
int a = 1;
001D1925 mov dword ptr [ebp-8],1
21: int b = 2;
001D192C mov dword ptr [ebp-14h],2
22: a = a * 5;
001D1933 imul eax,dword ptr [ebp-8],5
001D1937 mov dword ptr [ebp-8],eax
23: a = 6 * 7;
001D193A mov dword ptr [ebp-8],2Ah
24: a = a * b;
001D1941 mov eax,dword ptr [ebp-8]
001D1944 imul eax,dword ptr [ebp-14h]
001D1948 mov dword ptr [ebp-8],eax
六、X64乘法汇编代码
int a = 1;
00007FF6B84C190B mov dword ptr [rbp+4],1
21: int b = 2;
00007FF6B84C1912 mov dword ptr [rbp+24h],2
22: a = a * 5;
00007FF6B84C1919 imul eax,dword ptr [rbp+4],5
00007FF6B84C191D mov dword ptr [rbp+4],eax
23: a = 6 * 7;
00007FF6B84C1920 mov dword ptr [rbp+4],2Ah
24: a = a * b;
00007FF6B84C1927 mov eax,dword ptr [rbp+4]
00007FF6B84C192A imul eax,dword ptr [rbp+24h]
00007FF6B84C192E mov dword ptr [rbp+4],eax
七、X86除法汇编代码
int a = 16;
000E1925 mov dword ptr [ebp-8],10h
21: int b = 18;
000E192C mov dword ptr [ebp-14h],12h
22: a = a /4;
000E1933 mov eax,dword ptr [ebp-8]
000E1936 cdq //CDQ指令的功能是:把edx的每一位置用eax的最高位填充,意思就是说把EAX由32位扩展成64位,eax除以ecx,商保存在eax,余数放在edx
000E1937 and edx,3
000E193A add eax,edx
000E193C sar eax,2
000E193F mov dword ptr [ebp-8],eax
23: a = 18 / 9;
000E1942 mov dword ptr [ebp-8],2
24: a = b / a;
000E1949 mov eax,dword ptr [ebp-14h]
000E194C cdq
000E194D idiv eax,dword ptr [ebp-8]
000E1950 mov dword ptr [ebp-8],eax
八、X64除法汇编代码
int a = 16;
00007FF7974C190B mov dword ptr [rbp+4],10h
21: int b = 18;
00007FF7974C1912 mov dword ptr [rbp+24h],12h
22: a = a /4;
00007FF7974C1919 mov eax,dword ptr [rbp+4]
00007FF7974C191C cdq
00007FF7974C191D and edx,3
00007FF7974C1920 add eax,edx
00007FF7974C1922 sar eax,2
00007FF7974C1925 mov dword ptr [rbp+4],eax
23: a = 18 / 9;
00007FF7974C1928 mov dword ptr [rbp+4],2
24: a = b / a;
00007FF7974C192F mov eax,dword ptr [rbp+24h]
00007FF7974C1932 cdq
00007FF7974C1933 idiv eax,dword ptr [rbp+4]
00007FF7974C1936 mov dword ptr [rbp+4],eax
禁止非法,后果自负
欢迎关注公众号:逆向有你
欢迎关注视频号:之乎者也吧
原文始发于微信公众号(web安全工具库):PC逆向 -- 加减乘除对应的汇编代码
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论