首页 > 编程语言 >++b 和 a++ 的区别 看汇编代码

++b 和 a++ 的区别 看汇编代码

时间:2023-07-15 18:35:49浏览次数:43  
标签:汇编 00 ++ 代码 mov FF dword ptr ecx

汇编代码解释如下

int x = a++;
  00F08833 8B 45 F8 mov eax,dword ptr [a]
  00F08836 89 45 E0 mov dword ptr [x],eax
  00F08839 8B 4D F8 mov ecx,dword ptr [a]
  00F0883C 83 C1 01 add ecx,1
  00F0883F 89 4D F8 mov dword ptr [a],ecx
int y = ++b;
  00F08842 8B 45 EC mov eax,dword ptr [b]
  00F08845 83 C0 01 add eax,1
  00F08848 89 45 EC mov dword ptr [b],eax
  00F0884B 8B 4D EC mov ecx,dword ptr [b]
  00F0884E 89 4D D4 mov dword ptr [y],ecx

循环中的

while (guest ++ < 10)
  00BC8987 8B 45 C8 mov eax,dword ptr [guest]
  00BC898A 89 85 00 FF FF FF mov dword ptr [ebp-100h],eax
  00BC8990 8B 4D C8 mov ecx,dword ptr [guest]
  00BC8993 83 C1 01 add ecx,1
  00BC8996 89 4D C8 mov dword ptr [guest],ecx
  00BC8999 83 BD 00 FF FF FF 0A cmp dword ptr [ebp-100h],0Ah
  00BC89A0 7D 0C jge __$EncStackInitStart+1D2h (0BC89AEh)
  00BC89A2 C7 85 FC FE FF FF 01 00 00 00 mov dword ptr [ebp-104h],1
  00BC89AC EB 0A jmp __$EncStackInitStart+1DCh (0BC89B8h)
  00BC89AE C7 85 FC FE FF FF 00 00 00 00 mov dword ptr [ebp-104h],0
  00BC89B8 83 BD FC FE FF FF 00 cmp dword ptr [ebp-104h],0
  00BC89BF 74 41 je __$EncStackInitStart+226h (0BC8A02h)

标签:汇编,00,++,代码,mov,FF,dword,ptr,ecx
From: https://www.cnblogs.com/zhouyilin/p/17556647.html

相关文章

  • B站视频WPF实战教程修改代码
    P36HttpRestClient.cs部分代码publicasyncTask<ApiResponse>ExecuteAsync(BaseRequestbaseRequest){//urivaruri=newUri(apiUrl+baseRequest.Route);//newrestrequest//adduriv......
  • 代码随想录算法训练营第三十一天| 62.不同路径 63. 不同路径 II
    62.不同路径思路:因为只能向左,和向下,因此只能是前面的加上左边的,递推公式较为简单代码:1intuniquePaths(intm,intn){2if(m==1||n==1)return1;34vector<vector<int>>nums(m,vector<int>(n,1));56for(inti=1;i<m;i++......
  • VS2015 C++代码内存泄漏
    在可能泄漏的文件头部加入下面几行(保证malloc和new的泄漏都可以检测到)#define_CRTDBG_MAP_ALLOC#include<crtdbg.h>#ifdef_DEBUG//重载new运算符#definenewnew(_NORMAL_BLOCK,__FILE__,__LINE__)#endif程序运行起始位置:_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF|_C......
  • C#代码获取C#的版本
    转自:https://mp.weixin.qq.com/s/44dtM_wI4wIQxSkTGGf_7A用C#代码获取当前C#版本,疯了吧,获取它干啥?有时候需要在没有.NET环境的机器上运行C#,临时运行一下又不想装环境,这时候就可以通过在线的浏览器C#环境运行C#,比如微软的try.dot.net,那么怎么知道是哪个C#版本呢?低版本的C#是不......
  • 如何修改dll代码后重新打包
    前期使用反编译工具,例如:dnSpy,打开指定dll,展开dll后,右键可对其命名空间,模块,程序集进行编辑。因为缺少源码,反编译后的dll代码与源码存在差异,导致编译后的dll大概率会报错,无法修改代码后重新打包,如果要修改dll里的代码并重新打包,需要用到微软自带反编译工具。路径:C:\ProgramFiles(......
  • 当你的代码以奇怪的姿势跑起来, 千万不要动它~
    编程的第一法则:如果你的代码以某种莫名方式跑起来了,就不要再碰它了。造成这种问题有很多原因,常见的就是屎山代码如果第一个程序员没考虑太多,用了ifelse。新需求出现时,后面接受的程序员不愿意重新建构,都往后面加ifelse。一年又一年,一代又一代,从“粪球”到“屎山”,大概你能做的......
  • 105.C++初始化
    105.C++初始化C++中变量的初始化有很多种方式,如:默认初始化,值初始化,直接初始化,拷贝初始化,列表初始化。1.默认初始化默认初始化是指定义变量时没有指定初值时进行的初始化操作。默认初始化变量的值与变量的类型与变量定义的位置有关系:1.1内置类型变量对于内置类型变量(如in......
  • 每日一个 ChatGPT 使用小技巧系列之4:使用 AI 工具对 SAP ABAP 代码的编写质量进行打分
    本系列之前的文章:与其整天担心AI会取代程序员,不如先让AI帮助自己变得更强大每日一个ChatGPT使用小技巧系列之1-给出提纲或者素材,让ChatGPT帮你写作每日一个ChatGPT使用小技巧系列之2-用ChatGPT研读SAPABAPBAPI的实现源代码每日一个ChatGPT使用......
  • Grpc C++使用总结
    Grpc一,安装安装依赖sudoapt-getinstallpkg-configsudoapt-getinstallautoconfautomakelibtoolmakeg++unzipsudoapt-getinstalllibgfalgs-devlibgtest-devsudoapt-getinstallclanglibc++-dev下载gRPCgitclonehttps://github.com/grpc/grpc.gitc......
  • c++ day 9
    今天来学习选择排序选择排序有多种方法下面是方法一:选择排序(SelectionSort)是一种简单但低效的排序算法。它的基本思想是在未排序的部分中选择最小(或最大)的元素,并将其放置在已排序部分的末尾。通过重复这个过程,直到所有元素都排好序为止。下面是选择排序的C++实现示例:#incl......