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 naDo EAX lub RAX wpisujemy numer kolejnej funkcji systemowej - sys_exit, która spowoduje zamknięcie naDo EAX lub RAX wpisujemy numer kolejnej funkcji systemowej - sys_exit, która spowoduje zamknięcie na60521 ScannedImage 4 Luhmanna, do konsolidowania i wzmacniania dominującej formy różnicowania się fuzałącznik nr 1 do SIWZ f) zgodności z przepisami stanowiącymi podstawę prawną funkcjonowania SystemuImage184 zaprogramowanym funkcjom. Wyjścia bramek I (AND) dołączane są do bramek LUB (OR) za pośrednWzory należy wpisywać edytorem równań wpisując w nawiasach okrągłych ich numer kolejny w ramach całeWstaw odpowiednio oznaczenia ©o lub 0. 6) Wstaw do odpowiedniego pola na rysunku numer wyjaśnieniaWstaw odpowiednio oznaczenia ©o lub 0. 6) Wstaw do odpowiedniego pola na rysunku numer wyjaśnieniaSWScan01334 146 Księga pierwsza Funkcja podziału pracy wanymi nie jest w stanie powołać do życia lubDSC00236 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średnwartość, 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 nDSCe79 NEUROPSYCHOLOGIA do całkowitego lub znacznego powrotu funkcji. Ponadto niski poziom wykonaniaWstaw odpowiednio oznaczenia ©o lub 0. 6) Wstaw do odpowiedniego pola na rysunku numer wyjaśnieniaWstaw odpowiednio oznaczenia ©o lub 0. 6) Wstaw do odpowiedniego pola na rysunku numer wyjaśnieniaWstaw odpowiednio oznaczenia ©o lub 0. 6) Wstaw do odpowiedniego pola na rysunku numer wyjaśnieniawięcej podobnych podstron