Assembly İle Ekrana Yazı Yazdıralım

ACE Veen

Uzman üye
4 Şub 2023
1,097
550
Belirsiz
6kjk1mb.png




Selamlar, ben Supp. Bugün sizlere Assembly ile ekrana nasıl yazı yazdırırız, bunu anlatacağım.

Kod:
 ilk_assembly.asm
İsimli Dosya içeriği:
Kod:
section .data
    love_msg db 'Suppressor Coder abiyi seviyor!', 0 ;  Tanımlanan mesaj

section .text
    global _start

_start:
    ; stdouta yazılmak üzere Suppressor Coder abiyi seviyor! mesajını yazdır
    mov eax, 4            ; yazı yazdımra sistem çağrısı
    mov ebx, 1            ; stdout dosya tanımlayıcısı
    mov ecx, love_msg     ; yazılacak mesajın adresi
    mov edx, 30           ; mesajın uzunluğu
    int 0x80              ; sistem çağrısını yap

    ; Çıkış yapma kısmı
    mov eax, 1            ; çıkış sistem çağrısı
    xor ebx, ebx          ; çıkış kodu 0
    int 0x80              ; çıkış sistem çağrısını yap


Açıklayalım:
  1. section .data: Veri bölümü. Burada, yazdırılacak mesaj olan "Suppressor Coder abiyi seviyor!" string'i tanımlanır.
  2. section .text: Kod bölümü. Ana programın gerçekleştiği bölümdür.

  3. global _start: Programın başlangıç noktasını _start olarak belirtir.

  4. _start:: Programın başlangıç noktası.

  5. mov eax, 4: eax kaydediciine 4 değerini atar. Bu, "yazı(write)ı" sistem çağrısının numarasıdır.

  6. mov ebx, 1: ebx kaydediciine 1 değerini atar. Bu, stdout (standard çıkış) dosya tanımlayıcısıdır.

  7. mov ecx, love_msg: ecx kaydediciine love_msg etiketinin adresini atar. Bu, yazılacak mesajın adresidir.

  8. mov edx, 30: edx kaydediciine 30 değerini atar. Bu, yazılacak mesajın uzunluğudur.

  9. int 0x80: Bu, sistem çağrısını gerçekleştirir. eax kaydedicisindeki değere göre, ilgili sistem çağrısı yapılır. Bu durumda, yazı sistem çağrısı yapılır ve "Suppressor Coder abiyi seviyor!" mesajı yazdırılır.

  10. mov eax, 1: eax kaydediciine 1 değerini atar. Bu, "çıkış(exit)" sistem çağrısının numarasıdır.
  11. xor ebx, ebx: ebx kaydedicisini sıfırlar. Bu, çıkış kodunu belirler. 0 genellikle başarılı bir çıkışı temsil eder.
  12. int 0x80: Bu, sistem çağrısını gerçekleştirir. Bu durumda, Çıkış(exit) sistem çağrısı yapılır ve program sonlandırılır.


Ardından:
Kod:
nasm -f elf32 ilk_assembly.asm
Ardından:
Kod:
ld -m elf_i386 -s -o ilk_assembly ilk_assembly.o
Çalıştımrak için:
Kod:
./ilk_assembly
Ne İşe yarıyor?

nasm -f elf32 ilk_assembly.asm: Bu komut, NASM (Netwide Assembler) derleyicisini kullanarak ilk_assembly.asm adlı assembly kaynak dosyasını derler. -f elf32 seçeneği, ELF (Executable and Linkable Format) dosya formatını kullanacağını belirtir. Bu işlem, assembly kodunu derleyerek bir nesne dosyası oluşturur. Nesne dosyasının genellikle uzantısı .o olur.
ld -m elf_i386 -s -o ilk_assembly ilk_assembly.o: Bu komut, ld (Linker) aracını kullanarak nesne dosyasını bağlar (linker). -m elf_i386 seçeneği, 32-bit Intel x86 mimarisi için çalışacak bir program oluşturulmasını belirtir. -s seçeneği, programın sembollerini (debug bilgilerini) siler, bu da üretilen dosyanın daha küçük olmasını sağlar. -o ilk_assembly seçeneği, çıktı dosyasının adını belirtir.

Sonuç olarak, bu adımlar bir araya geldiğinde, ilk_assembly.asm adlı assembly programını derler ve çalıştırabilir bir dosyaya dönüştürürler.
aşırı zor daha nodejs öğrenemiyorum ya :D
 

xzh

Üye
8 Nis 2020
216
70
Eline sağlık. Assembly ile ilgili umarım daha çok şey paylaşırsın.
 

'pump

Uzman üye
9 Ara 2022
1,388
2,982
Ağ Kablolarında Geziyor
Kod:
section .data
    msg db 'Eline sağlık', 0

section .text
    global _start

_start:
    ; Write to stdout
    mov eax, 4          ; syscall number for sys_write
    mov ebx, 1          ; file descriptor 1 (stdout)
    mov ecx, msg        ; pointer to the message
    mov edx, 13         ; message length
    int 0x80            ; call kernel

    ; Exit the program
    mov eax, 1          ; syscall number for sys_exit
    xor ebx, ebx        ; exit code 0
    int 0x80            ; call kernel
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.