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:
