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
Yorum Gönder