EMU8086 Dizideki Elemanları Toplama

EMU8086 da dizideki elemanları toplayıp sonucu al’ye yazdıran bir program yazacağız. Öncelikle data segmentte dizimizi ve elemanlarını tanımlıyoruz.


.model small
.stack 64
.data
Dizi db 1,2,3,4,5

Şimdi code kısmına geçip tanımlamaları yapalım. Dizimizin başlangıç adresini si’ye atayalım. Al sonucu yazdıracağı için başlangıç değeri olarak 0 verelim. Son olarak 5 adet sayı olduğu için cx’i 5 yapalım.


.model small
.stack 64
.data
Dizi db 1,2,3,4,5
.code
Mov ax,@data
Mov ds,ax 
Lea si, dizi
Mov al,00
Mov cx,5

Code içindeki ilk iki satırı Çıktının 0714:0000 adresinde gözükmesi için yazdık. Şimdi son olarak döngümüzü yazıp programı bitirelim.


.model small
.stack 64
.data
Dizi db 1,2,3,4,5
.code
Mov ax,@data
Mov ds,ax 
Lea si, dizi
Mov al,00
Mov cx,5

Don: add al,[si]
inc si
Loop don
Mov ah, 4ch
int 21h 
End

Add komutuyla si’nin içindeki değeri al’ye ekledik. Daha sonra inc komutuyla si’yi arttırdık. Loop don komutuyla don etiketine çıkarak döngünün devam etmesini sağladık. Daha sonra alttaki 3 komutla programın bitmesini sağladık.

Çıktıda görüldüğü gibi Al 0F oldu. F=15 demektir. Sayıların toplamıda 15 olduğu için sonuç doğru çıktı.

 

Furkan Aktaş

Bilgisayar Mühendisiyim. Microsoft MCSA Web Applications Sertifikasına Sahibim. Aktif iş hayatımda Full Stack .Net Developer olarak çalışmaktayım.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir