![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编
努力学习
王大碗Dw
志不强者智不达
成为自己小时候想象的样子!
展开
-
从汇编角度理解Windows API的调用过程
基础介绍我们在进行Windows编程的时候,经常会调用Windows API。在 Windows 程序中,调用 Windows 函数与调用 C 语言的库函数没有什么两样。最主要的区别就是 C 语言库函数的机器代码会直接链接到你的程序代码中去,而 Windows 函数则是放到你的程序之外的 DLL 里。每个 Windows 的 EXE 文件包含它所要用到的各个动态链接库以及库中的函数的引用地址。当一个 Windows 程序被装入内存后,程序中的函数调用都被解析 DLL 函数入口的指针,同时这些被调用的原创 2020-05-18 08:43:02 · 1109 阅读 · 0 评论 -
从汇编角度看++i和i++
对于初学C\C++的同学来说,一般来说,都会遇见一个问题:那就是++i和i++到底有什么区别?今天我们就从汇编角度看一下他们俩的区别:i++:int i = 0;i++;++i:int i = 0;++i;我们发现从汇编角度来说,似乎++i和i++,没有区别,都是先将数取出来赋值给eax,然后进行加1运算,再将eax里的值赋值给i。这时候,我们换一种方式++i:int i = 0; int j; j=++i;i++:int i = 0;int j;j=i++;原创 2020-05-16 17:35:02 · 475 阅读 · 0 评论 -
从汇编角度看虚函数和普通成员函数的调用过程
本篇文章直入正题。我们的类成员函数分为inline、virtual、static、normal。**normal成员函数:**其地址和一般函数的地址没有区别,就是函数代码在内存中的真实地址,但其调用要绑定到一个实实在在的对象上。取其地址需要使用“&”运算符。**virtual成员函数:**其地址指的是其在vtable中的位置;取其地址需要使用“&”运算符。inline成员函数:在运行时会展开,虽然语言允许取其地址,但是没有太大意义。static成员函数:其地址和普通全局函数的地址原创 2020-05-08 17:45:23 · 639 阅读 · 0 评论