Cześć!
Piszę aktualnie programik w c++, który by tłumaczył z języka, który sobie wymyśliłem, do assemblera i assemblerował nasmem. Wszystko pod Linuksem.
Przy nauce assma kierowałem się kursem p. Bogdana (http://rudy.mif.pg.gda.pl/~bogdro/dos/boot_tut.htm). Był tam taki program:
section .text ; początek sekcji kodu
global _start ; _start będzie symbolem globalnym,
; od którego zacznie się wykonywanie programu
_start:
mov eax, 3 ; czytanie z pliku
mov ebx, 0 ; z klawiatury
mov ecx, imie ; dokąd czytać?
mov edx, imie_dl ; ile bajtów czytać?
int 80h ; wczytujemy
mov eax, 1
xor ebx, ebx
int 80h
section .data
imie: times 20 db 0
imie_dl equ $ - imie
Na podstawie tego stworzyłem takie coś:
jmp zkl1
cinek: times 20 db 0
cinekdl equ $ - cinek
zkl1:
mov eax, 3
mov ebx, 0
mov ecx, cinek
mov edx, cinekdl
int 80h
mov eax, 1
int 80h
Problem jest tu taki: wczytuje tylko jeden znak (do tabeli cinek) zamiast tych 20 znaków.
Z góry dzięki,
Cjneq