sitede asm bilen pek adam kalmadı teşekkürler emeye saygı olsun =) "

tasarlayacagimiz fonksiyon yalnizca parametre olarak aldigi onluk sistemdeki sayiyi ekrana yazmaya yariyor. Tabiki burda fonksiyonun yaptigindan cok mantigi onemli cunku amac ogrenmek ;):)oncelikli olarak bu isi C programlama dilinde en basit haliyle nasil yapariz. printf ;printf bu is icin yazilmis standart bi c metodu ve sayi, karakter, karakter katari vs gibi cesit cesit veriyi ekrana yazabiliyor. Ekrana bir sayi yazdirma isi c'de en basit haliyle asagidaki sekilde yapilabilirvoid dprint Ancak amac ozyinelemeli bir fonksiyon yazmak oldugu icin yukardaki fonksiyonu eledik. O yuzden hemen ozyinelemeli olarak yazilicak dprint fonksiyonunu tasarlayalim. Cunku daha assembly'e kadar inicez :)C'de bu sekilde bi fonksiyon tasarlamak icin putchar fonksiyonundan faydalanabilirizputchar ;putchar yalnizca bir karakteri ekrana basmak icin tasarlanmis standart c metodu Iste ozyinelemeli fonksiyomuzvoid dprint fonksiyondaki if sorgusunun ne yaptigi son derece acik.(tabikide kendi kendini cagirma olayinin bi yerde bitmesi gerekiyor. Bu nokta, degiskenimizin 0 oldugu noktadir) Evet bu isi C'de yapmak bu kadar kolay :)simdide asm kodunu asagiya yaziyorum model small. data. stack. codemain procmov ax,@data ;data segmentmov ds, ax ;ayarlandimov ax,456 ;parametrepush ax ;birakildicall dprintmov ax,4C00h ;dos icin cikis fonk koduint 21h ;kesme cagrildimain endpdprint procpush bp ;bp stack'te saklaniyormov bp, sp ;bp sp ile kilitlendimov ax, bp ;fonk parametresi ax'e alindiTEST ax, ax ;0 kontrolujz dprint@1 ;sifirsa cikisa ziplamov bl,10 ;bolunucek degerdiv bl ;bolme islemi yapildixor dh, dh ;dh sifirlandimov dl, ah ;bolmeden kalan deger dl'ye alindiadd dl,'0' ;0 ascii kodu ile toplandipush dx ;stack'e atildixor ah, ah ;ah sifirlandipush ax ;parametre stack'e atildicall dprint ;fonksiyon cagrildipop dx ;saklanan ve yazilacak deger cekildimov ah,2 ;fonk koduint 21h ;kesme cagrildi karakter yazildidprint@1:pop bp ;bp eski degeriyle yuklendiret 2 ;fonksiyondan donuldudprint endpend main aslinda fonksiyonumuzn girisinde bp'yi stack'e atip saklamamizin bir anlami yok. Cunku bp'yi degistirmis olsakda programimizda kullanmiyoruz. Yinede standartlara uyum saglamak acisindan bunu yapmakta yarar var. En azindan el aliskanligi olsun :)Umarim yararli olmustur. ..

evet dogru soyluyosun ama bu durum yalnizca tahribatta degil, genelde de boyle.. ama su bilinmeli ki asm dili yazilimin en temel dilidir ve bana kalirsa her programcinin asm dilini bilmesi gerekir. ..

bazi insanlar elindekiyle yetinemez. Her zaman daha fazlasini ister. bazilari elindekiyle yetinmesini bilir. diger bazilari ise elindekiyle yetinir ve ayni zamanda kendini mutlu edebilmek icin en iyisinin kendinde oldugunu savunur.:)Arkadaslar konu bilgisayar oldugunda elimizdekilerle yetinmeyelim..! sosyal mesajida verdigimize gore yolumuza devam edebiliriz :) ..

bazıları le düşünmüyor hatta vb gibi basit tabanlı dillerin en kral dil oldugunu savunan bile var "

Eyvallah hoca, dkümanlara ekleriz artık bunu, ama nedense asm bende dahil çok soğuk geliyo insana, okulda asm dersini geçene kadar anam ağladıydı :) hani baharlarda sen gelecektin..