ASSEMBLY NEDİR? ÖRNEK ASSEMBLY PROGRAM KODLARI

Bu dersimizde assembly örnek uygulamalar, assembly dili örnek sorular, assembly dili kodları, assembly döngü örnekleri, assembly ders notları gibi konuları ele alacağız.
Assembly dili karmaşık programlar yazmak için kullanılan
düşük seviyeli bir programlama dilidir. Assembly insanlar tarafından anlaşılması
zor olan makina dilinin sayısal ifadelerini, insanlar tarafından anlaşılarak programlanması
daha kolay olan alfabetik ifadelerle değiştirerek düşük seviyede programlama için
bir ortam oluşturur. Assembly kullanmanın amacı, ilk bilgisayarlarda yazılan programların daha az hata içermesi
ve daha az zaman almasını sağlamaktır.Assembly dilini makina koduna çeviren programlara
assembler denir. Bir assembler'ı derleyiciden ayıran en önemli özellik bire bir
dönüşüm yapmasıdır. Derleyiciler kodun tamamını okurlar ve kodun tamamını anlamlı
bir programa dönüştürürler. Kodun her satırını tek tek okuyan ve uygulayan programlara
ise yorumlayıcı denir.
BAZI ÖRNEK ASSEMBLY PROGRAMLARI
VE BUNLARIN KODLARI:
Not:Programlarımızı ilgilenen arkadaşların da bildiği üzere
.asm uzantısıyla kaydedidoruz wordpad de.
a-Bir sayı dizisi içindeki en
küçük sayıyı bulma:
DOSSEG
.MODEL SMALL
.DATA
data1 db +13,-10,+19,+14,-18,-9,+12,-29,+16 ;sayı dizimiz
lowest db ?
.CODE
mov ax,@DATA
mov ds,ax
mov si,offset data1
mov cx,8
;
mov al ,[si]
;burada ve devamında (bac kısmında) yapılan iş programın
özü
inc si
;
back: cmp al,[si]
jle next ;jump if
less or equal
mov al,[si]
next: inc si
dec cx
jnz back
mov lowest, al
mov ah,02h
mov dl,lowest
int 21h
mov ah,4Ch
int 21h
END
b-Girilen iki karekteri ters yazdırma:
DOSSEG
.MODEL SMALL
.DATA
.CODE
mov ax,@DATA
mov ds,ax
mov ah ,01 ;ilk
karekter al ye alınır....
int 21h
mov bl ,al ;ilk
karekter bl ye alınır yukarıdaki komut bir daha kullanılacağı için
mov ah,01
;ikinci karekter alınır
int 21h
mov ah,02 ;ikinci
karekter yazdırılır...
mov dl,al
int 21h
mov ah,02 ;ilk
karekter yazdırılır....
mov dl,bl
int 21h
mov ah,4Ch
int 21h
END
c-Girilen karekteri büyük yazma:
DOSSEG
.MODEL SMALL
.DATA
.CODE
mov ax,@DATA
mov ds,ax
mov ah,01
int 21h
cmp al,'a'
jl next
;JUMP eğer less than ise al 'a' dan
cmp al,'z'
jg next
;jump eğer greater than ise al'z' den
sub al,20h
next:
mov ah,02h
mov
dl,al
int
21h
mov
ah,4Ch
int
21h
END
d-Signed(işaretli) sayılarda toplama:
; cbw ve cwd kullanmaktan maksat doğru sonucu elde edebilmek
içindir cbw veya cwd
;kullanmadan bu işlemi yapmak istesem al ye birini bl ye birini
atar toplarım
;ama of =1 olduğunda signed numberlarda çıkan sonuç - ve 2 nin
complimentinde bulunur
;böylece çıkan sonucum yanlış olur....
DOSSEG
.MODEL SMALL
.DATA
data1 db +96
data2 db +70
.CODE
mov ax,@DATA
mov ds,ax
mov al, data1
cbw ;cbw kullanırken
1. operandım al nin içinde ve al nin
d7 si neyse ah ı
mov bx,ax ;onunla
doldurur
mov al,data2;cwd de 1. operandım ax e atnır ve dx
ax in d15 i neyse onunla doldurulur.
cbw
add ax,bx
add bh,30h
mov ah,02h
mov dl,bh
int 21h
add bl,30h
mov ah,02h
mov dl,bl
int 21h
mov ah,4Ch
int 21h
END
DİĞER YAZILIM KONULARI İÇİN TIKLAYINIZ