Üye Kayıt Üye Giriş

Linux’ta Sembolik Makine Dili ile Programlama


Linux’ta Sembolik Makine Dili ile Programlama

 

Linux’un sembolik makine dili programlama dili modeli tamamen DOS’ta olduğu gibidir.
Sistem fonksiyonlarının ana girişi 80h kesmesidir. 80h kesmesine yerleştirilen tuzak kapısı
yoluyla process’in akışı kernel moda geçer ve sistem fonksiyonları çalıştırılır. 80h kesmesi
çağrılırken eax yazmacına fonksiyon numarası yerleştirilir. Sonra sistem fonksiyonlarının
parametreleri sırasıyla ebx, ecx, edx, esi, edi yazmaçlarına yerleştirilir. Örneğin exit
fonksiyonu çağrılıyor olsun. Bu fonksiyonun numarası 1’dir. Bu sayı eax yazmacına
yerleştirilir. exit fonksiyonunun tek bir parametresi olduğuna göre bu parametre de ebx
yazmacına yerleştirilecektir. Derleme ve link işlemi şöyle yapılabilir:


nasm –f elf x.asm ß
gcc –o x x.o ß
(nasm ve ndisasm Linux sistemlerinde binutil paketi içerisindedir.)
; sample.asm
; Sample hello world program
[BITS 32]
[SECTION .text]
GLOBAL _start
_start:
mov eax, 4 ; write syscall number
mov ebx, 1 ; stdout
mov ecx, message ; buffer
mov edx, 16 ; number of characters to write
int 80h ; system call
mov eax, 1 ; exit syscall number
mov ebx, 0 ; exit code
int 80h ; system call
[SECTION .data]
message db "hello world...", 10
; compile: nasm -f elf sample.asm
; link: ld -o sample -e _start sample.o

Bilgisayar Dershanesi Ders Sahibi;
Bilgisayar Dershanesi

Yorumlar

Yorum Yapabilmek İçin Üye Girişi Yapmanız Gerekmektedir.

ETİKETLER