检索气体中的命令行args

时间:2011-10-25 17:46:20

标签: linux assembly x86 gas

我正在努力寻找一种方法来检索GAS中第一个命令行参数的第一个字符。为了澄清我在这里的意思我是如何在NASM中做到的:

main:   
    pop ebx
    pop ebx
    pop ebx            ; get first argument string address into EBX register
    cmp byte [ebx], 45 ; compare the first char of the argument string to ASCII dash ('-', dec value 45)
    ...

编辑:文字转换为AT& T语法并在GAS中编译它不会产生预期的结果。 EBX值不会被识别为字符。

2 个答案:

答案 0 :(得分:0)

我不确定在2011年你想要为什么要在装配中编写整个应用程序(除非有趣是你的主要动机,编码成千上万的装配线对你来说很有趣)。 如果你这样做,你可能不想调用程序的入口点main(在Gnu / Linux上的C中,该函数是从crt0.o或类似的函数调用的),但更可能是{{ 1}}。

如果您想了解在汇编中启动应用程序的详细方法,请阅读特定系统的Assembly HowtoLinux ABI supplement for x86-64及类似文档。

答案 1 :(得分:0)

好的我自己弄清楚了。不应将入口点称为main,而应_start。感谢Basile提示,+1。