debug çok zevkli bir şeydir ey insanlar, sevin onu sayın onu.
command prompt'u açın ( start menuye gel, run ı seç, cmd yaz, return e bas)
sonra debug yazıp enter'ı tuşlayın.
a 100
yazın.
sonra sıra ile aşağıdaki satırları hatasız girin.
mov ah,02
mov dl,30
int 21
inc dl
cmp dl,3a
jnz 104
int 20
sonra g yazın.
0123456789
şeklinde bir çıktı alın mutlu olun.
eğer programı kayıt etmek istiyorsanız, debug'dan çıkmadan önce (eğer çıktıysanız tekrar programı aynen yazmanız gerekecek)
n isim.com
yazın (isim olarak ne arzu ederseniz, bu programcığı yazarken ben sayı.com diye kaydetmiştim)
r cx
deyin, ve f yazıp return'u tuşlayın.
son olarak w yazın ve debug'dan q komutu ile çıkın.
debug komutunu kullandığınız dizinde sayı.com (ya da ne isim verdiyseniz artık) bulunacaktır. programın uzunluğu f byte, ne kısa değil mi sayın seyirciler ?
açıklama:
mov ah,2 : ah
registerına 2 değerini atadık. bunu yaptık çünkü ilerde 21. interrupt ı çağıracağız ve 21. interruptın 2 nolu fonksiyonu bize lazım. 21. interrupt ın 2 nolu fonksiyonu , ekrana karakter basma ile ilgili, biz de ekrana sayılar basacağız. o yüzden isteneni yapıyoruz.
mov dl,30 : 30 heksadesimal bir değerdir zira debug her sayıyı heksadesimal idrak eder. 30 , 0 rakamının ascii kodu olan 48 in heksadesimal karşılığıdır. biz de 30 dan başlayıp 3a ya kadar tek tek basacağız bu ascii karakterlerini.
int 21 : burada 21. interrupt ı çağırıyoruz, ah
registerinde 2 değeri olduğu için , direk ekrana basma fonksiyonu çalışmış olacak. ekrana basma fonksiyonu da dl içindeki değeri basar, bu yüzden dl
registerına 30 değerini atadık.
inc dl : bir sonraki sayıya geçmek için dl
registerinin değerini arttırmalıyız, ve öyle yapıyoruz.
cmp dl,3a : dokuz rakamı basıp basmadığımızı kontrol ediyoruz, buna göre bir dallanma yapacağız.
jnz 0104 : eğer dl , 3a değerine eşit değilse, ulaşamamışsa , döngünün başına yani interrupt ın çağırıldığı adrese git. aksi durum var ise ipleme, devam et anlamında.
int 20 : programı bitir. 20. interrupt programı bitirir.
hayat ne güzel !