Emu8086 ile 4 rakamın ortalaması

Klavyeden girilen 4 rakamin ortalamasini emu8086 da hesaplama.
10h kesmesi, 16h kesmesi, loop, push, pop kullanımı.
Ondalıklı sonucun sadece integer kısmını alır. Ondalık kısım için ekstradan kod yazmamız gerekli.

org 100h

;klavyeden 4 tane rakam alacagimiz icin 
;loop dongumuz icin CX'e 4'u atadik
mov CX, 4
;dongu baslangic yeri             
sayici:
  ;16h kesmesi ve AH'a atadigimiz 
  ;0 fonksiyonu ile klavyeden AL'e rakam alinir
  mov AH, 0     
  int 16h
  ;push komutu ile AX'deki bilgimizi 
  ;stacka aliyoruz (push komutu operandi word olmali!)
  push AX 
  ;10h kesmesi ve AH'a atadigimiz 
  ;0e fonksiyonu ile AL'deki Ascii degeri ekrana yazdiriyoruz  
  mov AH, 0eh
  int 10h
  ;AL'ye 1 bosluk atiyoruz ve 
  ;bunu ekrana yazdirarak
  ;girdigimiz rakamlarin arasinda
  ;1 bosluk olmasini sagliyoruz
  mov AL, ' '
  mov AH, 0eh
  int 10h  
loop sayici  ;dongumuz bitti, her dongude CX 1 azalacak  
             ;CX degeri 0 olana kadar
             ;bu dongu tekrarlayacak

;stack da suan 4 deger var
;pop komutu ile stackdan deger cagiracagiz
;ilk cagirilan deger, stacka son gonderilen deger olacaktir.
pop AX  ;klavyeden alinan 4. deger AX'e geldi
pop BX  ;klavyeden alinan 3. deger BX'e geldi
add AX, BX  ;AX ve BX toplandi, toplam AL'de
pop BX  ;klavyeden alinan 2. deger BX'e geldi
add AX, BX  ;AX ve BX toplandi, toplam AL'de
pop BX  ;klavyeden alinan ilk deger BX'de
add AX, BX ;AX ve BX toplandi, toplam AL'de   
mov AH, 0  ;AH'i sifirliyoruz                         
mov BL, 04h  ;4 rakam girdik, ortalamayi bulmak icin BL'e 4 attik 
div BL       ;AX'i BL'e bolduk, kalan AH'da, bolum AL'de

mov AH, 0eh  ;son olarak sonucu 10h ve 0eh fonksiyonu ile ekrana yazdiriyoruz
int 10h

ret

Google gitar tutkunlarına

Google, Les Paul'un 86'ncı doğum gününe özel yaptırdığı gitar doodle'ı büyük beğeni topladı. Bu yüzden google bu doodle'i özel bir sayfada kalıcı hale getirdi.