Параметры командной строки Linux 64 в сборке

Это описание действительно для Linux 32 бит: Когда начинается программа Linux, все указатели на аргументы командной строки сохраняются в стеке. Количество аргументов сохраняется в 0 (% ebp), имя программы сохраняется в 4 (% ebp), а аргументы сохраняются от 8 (% ebp).

Мне нужна такая же информация для 64-битной .

Редактировать: У меня есть рабочий пример кода, который показывает, как использовать argc, argv [0] и argv [1]: http://cubbi.com/fibonacci/asm.html

.globl _start
_start:
    popq    %rcx        # this is argc, must be 2 for one argument
    cmpq    $2,%rcx
    jne     usage_exit
    addq    $8,%rsp     # skip argv[0]
    popq    %rsi        # get argv[1]
    call ...
...
}

Похоже, параметры находятся в стеке. Поскольку этот код непонятен, я задаю этот вопрос. Полагаю, я могу сохранить rsp в rbp, а затем получить доступ к этим параметрам, используя 0 (% rbp), 8 (% rbp), 16 (% rbp) и т. Д. Это правильно?

7
задан Alex F 10 September 2010 в 10:11
поделиться