Вывод переменной в командную строку с использованием сборки в 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
неправильный тип?