Netwide Assembler (NASM) >> Assembly (x86)

argc、argv


參考資訊:
1. 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


返回上一頁