4087490685

4087490685



Do EAX lub RAX wpisujemy numer kolejnej funkcji systemowej - sys_exit, która spowoduje zamknięcie naszego programu.

•int 80h/syscall

Przerwanie systemowe - uruchomienie funkcji wyjścia z programu. Numer błędu (taki DOS-owski errorlevel) zwykle umieszczamy w EBX/RDI, czego tutaj jednak nie zrobiliśmy.

•    (NASM) section .data / (FASM) segment readable writeable

Określa początek sekcji danych. Dane muszą być w osobnej części programu, bo inaczej nie można do nich zapisywać (a na jądrze 2.6 nawet odczytać).

•tekst db "Czesc",0ah

Definicja napisu i znaku przejścia do nowej linii. O tym, jak deklarować zmienne powiem następnym razem.

•    dlugosc equ $ - tekst/dlugosc dd $ - tekst/ dlugosc dq $ - tekst

Definiujemy stałą, która przyjmuje wartość: adres bieżący - adres początku napisu, czyli długość napisu. W pierwszym przypadku jest to stała kompilacji, w drugim i trzecim - zmienna, która będzie umieszczona w programie.

Programik nazywamy hello.asm i kompilujemy poleceniem (FASM):

fasm hello.asm hello

lub, dla NASMa:

nasm -f elf hello.asm ld -o hello hello.o

lub, dla NASMa na systemie 64-bitowym:

nasm -f elf64 hello.asm ld -o hello hello.o

Wyjaśnienie opcji:

•    - f elf powoduje, że plik będzie skompilowany na 32-bitowy plik obiektowy typu ELF (Executable-Linkable Format, typowy dla większości Linuksów). Aby kompilować programy pod systemem 64-bitowym, należy użyć formatu elf 64

•    -f elf64 powoduje, że plik będzie skompilowany na 64-bitowy plik obiektowy typu ELF

•    -o nazwa spowoduje nazwanie programu wynikowego.

Uruchamiamy ./hello i cieszymy się swoim dziełem.

W dalszej części kursu będę przedstawiał programy tylko 32-bitowe i często tylko dla jednego kompilatora. Ta część będzie służyć Wam pomocą, jeśli chcielibyście pisać programy pod systemy 64-bitowe lub pod inny

Pisanie i kompilowanie (asemblowanie) swoich programów



Wyszukiwarka

Podobne podstrony:
Do EAX lub RAX wpisujemy numer kolejnej funkcji systemowej - sys_exit, która spowoduje zamknięcie na
Do EAX lub RAX wpisujemy numer kolejnej funkcji systemowej - sys_exit, która spowoduje zamknięcie na
Do EAX lub RAX wpisujemy numer kolejnej funkcji systemowej - sys_exit, która spowoduje zamknięcie na
60521 ScannedImage 4 Luhmanna, do konsolidowania i wzmacniania dominującej formy różnicowania się fu
załącznik nr 1 do SIWZ f) zgodności z przepisami stanowiącymi podstawę prawną funkcjonowania Systemu
Image184 zaprogramowanym funkcjom. Wyjścia bramek I (AND) dołączane są do bramek LUB (OR) za pośredn
Wzory należy wpisywać edytorem równań wpisując w nawiasach okrągłych ich numer kolejny w ramach całe
Wstaw odpowiednio oznaczenia ©o lub 0. 6) Wstaw do odpowiedniego pola na rysunku numer wyjaśnienia
Wstaw odpowiednio oznaczenia ©o lub 0. 6) Wstaw do odpowiedniego pola na rysunku numer wyjaśnienia
SWScan01334 146 Księga pierwsza Funkcja podziału pracy wanymi nie jest w stanie powołać do życia lub
DSC00236 Prezentacja danych numer kolejny, □    nazwa i data powstania (lub stulecie)
Image184 zaprogramowanym funkcjom. Wyjścia bramek I (AND) dołączane są do bramek LUB (OR) za pośredn
wartość, która jest stosowana do obserwacji lub ich funkcji dla zmniejszenia lub minimalizacji efekt
łatwo i szybko modyfikować poprzez dodawanie nowych zadań do list lub porządkowanie ich kolejności n
DSCe79 NEUROPSYCHOLOGIA do całkowitego lub znacznego powrotu funkcji. Ponadto niski poziom wykonania
Wstaw odpowiednio oznaczenia ©o lub 0. 6) Wstaw do odpowiedniego pola na rysunku numer wyjaśnienia
Wstaw odpowiednio oznaczenia ©o lub 0. 6) Wstaw do odpowiedniego pola na rysunku numer wyjaśnienia
Wstaw odpowiednio oznaczenia ©o lub 0. 6) Wstaw do odpowiedniego pola na rysunku numer wyjaśnienia

więcej podobnych podstron