EMU8086 Kullanıcıdan Alınan Veriyi Diziye Atama
EMU8086’da Ekrana girilen ad değerini diziye atamayı ve yazdırmayı göreceğiz. Öncelikle ekrana “ad giriniz” yazısını oluşturalım. Daha sonra ad girildikten sonra bu adı atayacağımız diziyi oluşturalım.
.model small .stack 64 .data Yaz db “Ad Giriniz:$” Ad db 6dup(00)
Yaz isimli değişkende “Ad Giriniz” yazdıktan sonra $ işareti koyarak yazının bittiğini belirtmiş olduk. Benim ismim 6 harf olduğu için 6 karakterlik bir dizi oluşturdum siz kendinize göre düzenleyebilirsiniz.
Önce tanımlamalarımızı yapalım.
.model small .stack 64 .data yaz db "AD:$" ad db 6 dup(00) .code mov ax,@data mov ds,ax lea si,ad mov cx,6
Code içindeki ilk iki satırı çıktının 0714:0000 adresinde gözükmesi için yazdık. Daha sonra si ye ad dizisinin başlangıç adresini atadık. Son olarak döngü değişkeni olan cx e adımızın uzunluğu olan 6 değerini atadık.
Ekrana “Ad giriniz:” yazısını yazdıralım.
.model small .stack 64 .data yaz db "AD:$" ad db 6 dup(00) .code mov ax,@data mov ds,ax lea si,ad mov cx,6 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.
Şimdi girilen değeri diziye atayalım.
.model small .stack 64 .data yaz db "AD:$" ad db 6 dup(00) .code mov ax,@data mov ds,ax lea si,ad mov cx,6 mov ah,09h lea dx,yaz int 21h diziyeyaz: mov ah,01h int 21h mov [si],al inc si loop diziyeyaz
İnt 21h satırında basılan tuşun ASCII kodu AL’ye alınmış oldu. Mov komutuyla al deki değer diziye atandı ve si bir arttırıldı. Cx değerine 6 dediğimiz için diziyeyaz döngüsü 6 kere çalıştı ve girilen değer diziye eklenmiş oldu.
Son olarak diziyi ekrana yazdıralım ve programımızı tamamlayalım.
.model small .stack 64 .data yaz db "AD:$" ad db 6 dup(00) .code mov ax,@data mov ds,ax lea si,ad mov cx,6 mov ah,09h lea dx,yaz int 21h diziyeyaz: mov ah,01h int 21h mov [si],al inc si loop diziyeyaz mov cx,6 lea si,ad bas: mov ah,02h mov dl,[si] int 21h inc si loop bas mov ah,4ch int 21h end
Cx değerimizi 6 olarak tanımladık çünkü dizi boyutumuz 6 olduğu için. Si’ye tekrar ad dizisinin başlangıç adresini atadık. Daha sonra ah,02h komutuyla dl’ye attığımız dizi elemanlarını ekrana tek tek yazdırdık. Mov ah,4ch komutuyla programı sonlandırdık.
EKRAN ÇIKTISI: