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ı.