汇编之函数
Posted codexlx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编之函数相关的知识,希望对你有一定的参考价值。
1.函数:
函数就是一系列指令的集合,为了完成某个会重复使用的特定功能。
比如:MOV EAX,1 MOV ECX,1 就相当于一个函数(指令的集合)
2.函数的调用:
(1)使用JMP来执行函数
使用JMP执行函数的话,JMP跳转到相应的指令后指令指针不再返回到原来位置的下一位:
(2)使用CALL来执行函数
以四条指令向普通寄存器存储值为例:
CALL执行前:
CALL执行后(F8):
可以看到CALL指令把当前指令的下一条指令推入栈中,在执行完四条指令后,RETN回到了当前指令的下一条指令。执行顺序并没有改变。
3.参数、返回值
汇编中EAX通常用来存储函数的返回值的。
实现一个简单的加法函数:
方法如下:
(1)定义三条指令:
- 将ECX,EDX中的值相加;(参数)
- 将相加的值放到EAX中;
- 返回
(2)调用函数:
- 先向ECX,EDX中存入要加的两个数;
- 使用CALL调用对应方法;
F8逐步执行结果:
EAX中存储的就是相加的结果
以上是关于汇编之函数的主要内容,如果未能解决你的问题,请参考以下文章
图解C/C++语言底层:函数调用过程之函数栈帧的创建和销毁(上)