我想知道汇编是否有可能有一个使用参数的过程? 我是装配新手,不确定这是否可能。 如果是这种情况会很棒,因为它会真正流式传输我的代码。
答案 0 :(得分:0)
你的问题是这样的事情是否可行:
call my_function, arg1, arg2
如果这是你的问题你还没有完全理解汇编程序的概念和CPU的功能,那么:
在汇编程序代码中,一个汇编程序指令通常等于一个CPU指令。 CPU根本没有函数参数的概念。函数参数是高级编程语言的概念。
更高级的编程语言必须将函数参数的概念“转换”为寄存器操作。例如,在ARM CPU上,通常在寄存器R0-R3中传递函数的前四个参数。
以下C代码......
myFunction(6,7,8,9);
...在汇编程序中看起来像这样:
ldr R0, =6 # Load 6 into register R0
ldr R1, =7 # Load 7 into register R1
ldr R2, =8 # Load 8 into register R2
ldr R3, =9 # Load 9 into register R3
bl myFunction # Call myFunction()
在x86 CPU上,它有点复杂,因为有多个所谓的调用约定,这意味着参数传递给函数的方式因函数而异。