ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

闲着蛋疼看下a++的过程

2020-09-17 02:33:31  阅读:217  来源: 互联网

标签:F8 00 ++ mov 看下 FF dword ptr 蛋疼


赋值过程

int a = 1;
int b = a++;

x86 反汇编:

  int a = 1;
00D06428 C7 45 F8 01 00 00 00 mov         dword ptr [a],1  
  int b = a++;
00D0642F 8B 45 F8             mov         eax,dword ptr [a]  
00D06432 89 45 EC             mov         dword ptr [b],eax  先赋值
00D06435 8B 4D F8             mov         ecx,dword ptr [a]  
00D06438 83 C1 01             add         ecx,1  
00D0643B 89 4D F8             mov         dword ptr [a],ecx  在修改

传递过程

int a = 1;
printf("%d\n", a++);

x86反汇编:

  int a = 1;
003E6428 C7 45 F8 01 00 00 00 mov         dword ptr [a],1  
  printf("%d\n", a++);
003E642F 8B 45 F8             mov         eax,dword ptr [a]  
003E6432 89 85 30 FF FF FF    mov         dword ptr [ebp-0D0h],eax  存了旧值
003E6438 8B 4D F8             mov         ecx,dword ptr [a]  
003E643B 83 C1 01             add         ecx,1  
003E643E 89 4D F8             mov         dword ptr [a],ecx  a已被改变
003E6441 8B 95 30 FF FF FF    mov         edx,dword ptr [ebp-0D0h]  取了旧值
003E6447 52                   push        edx  
003E6448 68 30 8C 44 00       push        offset string "%d\n" (0448C30h)  
003E644D E8 DE 9D FF FF       call        _printf (03E0230h)  调用函数
003E6452 83 C4 08             add         esp,8  

保存旧值,修改值,传递旧值

标签:F8,00,++,mov,看下,FF,dword,ptr,蛋疼
来源: https://www.cnblogs.com/ajanuw/p/13682436.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有