程式語言 - Netwide Assembler (NASM) - Assembly (x86) - Parse argv



參考資訊:
https://stackoverflow.com/questions/39377570/printing-argv-with-nasm

main.s

    global main
    extern printf
 
    section .data
fmt db "argc:%d, argv[0]:%s, argv[1]:%s", 10, 0
 
    section .text
main:
    push ebp
    mov ebp, esp

    mov eax, dword[ebp + 8]
    mov ebx, dword[ebp + 12]

    push dword [ebx + 4]
    push dword [ebx + 0]
    push eax
    push fmt
    call printf
    xor eax, eax

    mov esp, ebp
    pop ebp
    ret

編譯、執行

$ nasm -f elf32 main.s
$ i686-linux-gnu-gcc main.o -o main -static
$ qemu-i386 ./main test
    argc:2, argv[0]:./main, argv[1]:test