汇编中的Linux 64命令行参数
该描述对Linux
32位有效:Linux程序启动时,所有指向命令行参数的指针都存储在堆栈中。参数的数目存储在0(%ebp),程序的名称存储在4(%ebp),参数从8(%ebp)开始存储。
我需要64位相同的信息。
编辑:我有一个工作代码示例,该示例显示了如何使用argc,argv [0]和argv
[1]:http :
//cubbi.com/fibonacci/asm.html
.globl _开始
_开始:
popq%rcx#这是argc,一个参数必须为2
cmpq $ 2,%rcx
jne usage_exit
addq $ 8,%rsp#跳过argv [0]
popq%rsi#获取argv [1]
呼叫...
...
}
看起来参数在堆栈上。由于此代码不清楚,因此我提出了这个问题。我的猜测是,我可以将rsp保留在rbp中,然后使用0(%rbp),8(%rbp),16(%rbp)等访问这些参数。这正确吗?
-
就像已经提到的System V AMD64 ABI中的3.4
进程初始化
部分,特别是图3.9一样,它准确地描述了您想知道的内容。
-
Linux 64位中的进程命令行
2021-02-01 关注 0 浏览113 1答案
-
在Linux中启动GDB时如何传递命令行参数?
2021-02-02 关注 0 浏览274 1答案
-
Linux命令行开关和参数是否有标准?
2021-02-02 关注 0 浏览157 1答案
-
python中的任意命令行参数
2021-01-29 关注 0 浏览79 1答案
-
Python命令行参数
2021-01-29 关注 0 浏览100 1答案
-
C#中的转义命令行参数
2021-02-02 关注 0 浏览89 1答案
-
Java命令行参数
2021-02-02 关注 0 浏览85 1答案
-
Python命令行参数(Windows)
2021-01-29 关注 0 浏览65 1答案
-
CURL 命令行 URL 参数
2022-05-26 关注 0 浏览8 1答案
-
如何在Python中访问命令行参数?
2021-01-29 关注 0 浏览79 1答案