返回指令回到主程序继续执行
如果懂C语言或者别的更高级的语言的请看
这个其实就是函数,为了代码的重用性,可利用性研究出来的,否则汇编代码一多就会很乱,比如有效的管理代码
比如ret指令,其实就是平衡栈的...,在C语言中变成了语法,为return了
1.最原始的Call
主程序调用子程序的流程示意图:
?...主程序 -> 子程序的add方法, 然后 -> 跳转回来,跳转到下一条指令继续指令
这个就是雏形了,但是你有没有想过,这个add只能实现1 + 1 了,根本就不通用,怎么办,而且如果调用多次怎么办,...一直加标号,一直调用吗,显然是不切实际的.
2.Call 带有参数的传递
上面发现了一个大缺陷,就是不能参数传递,这样就不行了,那么我们要想办法,可不可以在外面传入参数
看代码:
mov cx,1
mov...ret
ret的作用,就是从栈栈中取出返回地址,然后赋值给IP继续执行吓一条指令
但是注意,这里并没有平栈,我们必须在外面自己平栈
比如,我们我们入栈两个参数,比如 add sp,4 让sp平栈