一 汇编函数
创建汇编函数的三个步骤:
定义需要的输入值
定义对输入值的操作
定义如何生成输出值以及如何输出值传递给发出调用的程序
1、定义输入值的三种技术
-
-
使用寄存器
使用全局变量
使用堆栈
-
2、定义函数处理
在源代码文件中,
函数指令必须和主程序的其余指令分离开,函数有别于主程序的其余地方是为汇编器定义函数的方式:
不同汇编器使用不同的方法定义函数
在GNU汇编器中定义函数,使用.type命令把函数名称声明为标签
.type func_name,@function
func_name:
............
函数主体
........
ret
函数的结束有ret指令定义,执行到ret指令时,程序控制返回主程序,返回的位置是紧跟在调用函数的call指令后面的指令
3、定义输出值
有多种方式完成传送结果的工作,但下面两种是最常见的:
- 把结果存放在一个或多个寄存器中
- 把结果存放在全局变量的内存位置中
函数可以自由访问主程序定义的内存位置
4、访问函数
创建好函数后,就可以在主程序的任何位置访问它,call指令用于把控制从主程序传递到函数
前,要把所有输入值放在正确位置,再执行call指令