day26.C语言的汇编表示

第26节:C语言的汇编表示


1)编写第一个C程序

void main() //程序入口,程序开始执行的地方
{


__asm{
mov eax,eax
mov ecx,ecx
}
return;        //程序结束
}

以上的代码在MOV eax,eax 按F9下段,进行调试如下汇编代码:

0040D440   push        ebp
0040D441   mov         ebp,esp
0040D443   sub         esp,40h
0040D446   push        ebx
0040D447   push        esi
0040D448   push        edi
0040D449   lea         edi,[ebp-40h]
0040D44C   mov         ecx,10h
0040D451   mov         eax,0CCCCCCCCh
0040D456   rep stos    dword ptr [edi]


0040D45C   pop         edi
0040D45D   pop         esi
0040D45E   pop         ebx
0040D45F   add         esp,40h
0040D462   cmp         ebp,esp
0040D464   call        _chkesp (00401050)
0040D469   mov         esp,ebp
0040D46B   pop         ebp
0040D46C   ret


注意:查看汇编代码是右键选择GOTO Disassembly选项。


什么是C语言就是将C语言的代码转换成汇编代码,这就是C语言,所以从这个角度讲不懂汇编的人不是C语言的高手,因为真正了解汇编了,才知道我写每一行C代码最终变成什么样子的,这样你才能真正掌握一个程序。


2)什么是函数

函数就是一系列指令的集合,为了完成某个会重复使用的特定功能语法如下:


返回类型   函数名(参数列表)
{


}

<1>返回类型,函数名不能省略
<2>参数列表可以省略
例子:
int  plus(int x,int y)
{
      return 0;
}


函数名,参数名的命名规则:

1、只能以字母,数字,下划线组成,且第一个字母必须是字母或下划线
2、区分大小写
3、不能使用C语言的关键字

3)什么是函数的调用
<1>汇编中函数调用
PUSH 参数 1               MOV EAX,参数1
PUSH 参数 2              MOV EDX,参数2
CALL 内存地址   或    CALL 内存地址

<2>C语言的函数调用
函数名(参数1,参数2)

总结:函数名就是编辑器结起来的内存地址的别名。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随行之旅

python国产化自动化

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值