Вывод переменной в командную строку с использованием сборки в Linux

Пробую свои силы в сборке Linux и яЯ сталкиваюсь со следующей проблемой. Я'Я только начинаю, поэтому моя программа является относительно простой, основанной на некоторых примерах, которые я нашел на linuxassembly. Он принимает первый аргумент, переданный в командную строку, и выводит его. Вот что у меня так далеко ...

section .bss
    test_string: resb 3

section .text
    global _start

_start:
    pop ebx     ;argument number
    pop ebx     ;program name
    pop ebx     ;first argument
    mov [test_string],ebx

    mov eax,4
    mov ebx,1
    mov ecx,test_string
    mov edx,3
    int 80h

    mov eax,1
    mov ebx,0
    int 80h

Я знаю, что это плохо написано, но так какЯ новичок в этом, яЯ просто хочу лучше понять, как работают инструкции по сборке / переменные, прежде чем я продолжу. Я собираю и связываю с помощью ...

nasm -f elf first.asm
ld -m elf_i386 -s -o first first.o

Тогда я бегу, используя ..

./first one two

Я думал, что это будет распечататьone но он печатает бред какY*&, Что я делаю неправильно? Мойtest_string неправильный тип?

Ответы на вопрос(1)

Ваш ответ на вопрос