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