在用汇编语言编程时,程序调用与堆栈如何使用?

2025-03-07 04:19:27
推荐回答(4个)
回答1:

汇编许久不用,只能凭印象说下:
程序调用使用 Call

以状态字PSW入栈为例
PUSH PSW
POP PSW

如果不是问语法,或者是汇编的使用技巧,去CSDN论坛 汇编区 提问吧,5分钟内即有回答。
百度的问答范畴太广,没有针对性,呵呵。

回答2:

程序调用用call指令,调用的子程序必须已经写在程序里。
系统会自动把子程序的返回地址(即调用程序中call指令的下一条指令的地址)存入堆栈,子程序执行后也会自动把堆栈中存的地址取出。

回答3:

在ARM中用B、BL、BX、BLX四种命令。
入栈:STMFD
出栈:LDMFS

回答4:

程序调用分远程调用和进程调用
先定义函数
PROC (far) aa(程序名)
...
ret // 结束
调用 call (far) aa
作用类似于c中的函数
堆栈push ax
pop ax
因为寄存器有限,而一个程序要多次调用相同的寄存器,所以要将寄存器中的数据入栈保存起来
,等程序结束时再将数据出栈继续之前的程序。