EMU8086 Klavyeden Girilen Sayıları Toplama

EMU8086’da Klavyeden girilen sayıları diziye atıp daha sonra bu sayıların toplamını BL’de tutan bir program yazacağız. Öncelikle ekrana “Sayı giriniz” yazısını oluşturalım. Daha sonra girilen sayıları tutacak diziyi tanımlayalım.

.model small
.stack 64
.data
	yaz db “Sayi Giriniz:$” 
	dizi db 4dup(00)

Yaz isimli değişkende “Sayı Giriniz” yazdıktan sonra $ işareti koyarak yazının bittiğini belirtmiş olduk. Dizimizi 4 elemanlı olarak tanımlıyoruz. İsteğe göre değiştirebilirsiniz.

Tanımlamalarımızı yapalım.

.model small
.stack 64
.data
     yaz db “Sayi Giriniz:$” 
     dizi db 4dup(00)
.code
    mov ax,@data
    mov ds,ax
    lea si,dizi
    mov bx,0000 
    mov cx,4
 

Code içindeki ilk iki satırı çıktının 0714:0000 adresinde gözükmesi için yazdık. Daha sonra si ye dizinin başlangıç adresini atadık.  Sayıların toplamını BL’de tutacağımız için BX’i sıfırladık. Son olarak döngü değişkeni olan cx e adımızın uzunluğu olan 4 değerini atadık.

Ekrana “Sayı giriniz:” yazısını yazdıralım.

.model small
.stack 64
.data 
       yaz db "Sayi Giriniz:$"
       dizi db 4 dup(00)
.code
   mov ax,@data
   mov ds,ax
   lea si,dizi
   mov bx,0000 
   mov cx,4 
 
   mov ah,09h
   lea dx,yaz
   int 21h 
 

Hangi değeri yazdırmak istiyorsak onu Dx’e atayıp mov ah,09h komutuyla ekrana yazımızı yazdırıyoruz.

Son olarak elemanları diziye atayıp BL’de toplamlarını gösterelim.


.model small
.stack 64
.data 
     yaz db "Sayi Giriniz:$"
     dizi db 4 dup(00)
.code
  mov ax,@data
  mov ds,ax
  lea si,dizi
  mov bx,0000 
  mov cx,4 
 
  mov ah,09h
  lea dx,yaz
  int 21h 
 
  don:
  mov ah,01h
  int 21h 
  sub al,48
  mov [si],al
  add bl,[si] 
  inc si
  loop don 
 
  mov ah,4ch
  int 21h
  end

Klavyeden girilen sayı ASCII kodu olarak tutulur. Sub komutuyla ASCII kodunu tuşun sayısal değerini almak için yazdık. Mov si,al komutuyla klavyeden girilen sayıları diziye atıyoruz. Add komutuyla dizideki değerleri bl’de toplatıyoruz. İnc si komutuyla si’yi bir arttırıyoruz. Loop don komutuyla döngü 4 kez çalışır. Döngü bitince Mov ah,4ch komutuyla programı sonlandırdık.

EKRAN ÇIKTISI:

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 yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir