Assembly Dili ile Ekranda Üçgen Çizdirme



Assembly Dili ile Ekranda Üçgen Çizdirme

    Herkese selamlar, bu yazımızda Assembly dili ile ekrana üçgen çizdireceğiz. Bir önceki yazıya ek olarak cmp, jle ve call vb. komutları kullanıyoruz bu kodumuzda.

    İlk başta ekranı temizlemek için gerekli olan kodu yazmamız gerekiyordu ekranın temiz olması için, o yazıldı. Devamında ekranda cursorda satır ve sütunda yer değişimi yapma olayı çözüldü, gerisi de kod içeriğinde mevcuttur. Bu arada assembly dilini DOSBOX kullanarak çalıştırmaktayım, aşağıda görselde görebilirsiniz bunu.


Şimdi kodlama kısmına geçelim.

.model small

.data
yildiz db '*', '$'
isim db 'made by m.faruk gul', '$'
blog db 'mfgstudiosblog', '$'
;burada verileri saklayacagiz

.code
mov ax,@data
mov ds,ax

mov ax, 3 ;ekranı temizlemek için kullanıyoruz
int 10h   ;her işlemin sonunda olmalı diyebiliriz
;koda giris yapalim

MOV DH,7
MOV DL,38

sag:
MOV AH,02H
MOV BH,00
ADD DH,1 ;ekleme işlemi, cursor hareketi için olacak bu
ADD DL,1
INT 10H
call yaz ;yazdırma için
cmp DH,15
jle sag ;if dh>=15
;burada ucgenin sag kismini yaptik ilk basta

MOV BL,1
MOV DH,17
MOV DL,28
alt:
MOV AH,02H
MOV BH,00
ADD DL,2
INT 10H
call yaz
ADD BL,1
cmp BL,10
jle alt ;if bl>=10
;burada alt kismini uygun hale getirdik

MOV DH,8
MOV DL,39
sol:
MOV AH,02H
MOV BH,00
ADD DH,1
SUB DL,1
INT 10H
call yaz
cmp DH,15
jle sol
;burada sol kismini hallettik

MOV AH,02H
MOV BH,00
MOV DH,9
MOV DL,50
INT 10H
lea dx,isim
mov ah,9
int 21h
;yana ismimi yazdirdim burada

MOV AH,02H
MOV BH,00
MOV DH,10
MOV DL,50
INT 10H
lea dx,blog
mov ah,9
int 21h
;burada yana blog adini yazdirdim

mov ah,4ch
int 21h
;bitirdik islemi

yaz proc
push dx
lea dx,yildiz
mov ah,9
int 21h
pop dx
ret
yaz endp
;bu fonksiyonun amaci
;yildizlari kolayca yazdirmak.
end

Ekran Çıktısı

Kaynakça

Yorumlar

Bu blogdaki popüler yayınlar

Python ile Turtle Kütüphanesiyle Çizim Denemesi 2

Girdimize en yakın palindrom değeri bulan program (Python3 ile)

Python ile Yazıyı Piramit Gibi Çizdirme