selam arkadaşlar 60 küsür yaşında almanyada ilk osmanlı bankasının bilgisayar kurulumunu ve muhasebe programını hazırladığını söyleyen yaşlı bi amcadan pogramcılık dersi alıyorum daha doğrusu kaynak yonunden çok işime yarıyor bu hafta yanına ugradım bana bunu verdi sizinle paylaşmak istedim duyarsa çok kızacak böyleleri kendileri çözduklerı ıcın öğretmeyi pek sevmiorlar acık konusuyorum klasorde DEBUG yazıyor icinde bunlar var ben ne olduğunu bilmiyorum daha okumadım çunku daha yeni başlıyorum bunları.htm olarak ayarlamıs ve tamamını kendisi yazmış icinden kopyalayıp aynen size aktarıyorum umarım faydası olur ve yerindedir? :ninja::ninja::ninja::ninja::ninja::ninja: :ninja::ninja::ninja::ninja::ninja::ninja: BİLGİSAYARLARDA SAYI SİSTEMLERİ Assembler programlama dili, alt seviyeli bir Programlama dilidir. Bu dilin komutları, bilgisayarın işlettiği makine dili komutlarının birebir karşlığıdır. Bu nedenle bu dile makine dilide denilir. Assembler'in büyük avantajı CPU çevrebirimlerinin ve ana belleğin çok iyi bir şekilde kontrolünü sağlamasıdır. Elektronik cihazlar manyetik çekirdek olarak iki durum halindedirler. Akım geçer 1, akım geçmez 0. Bunu bir lambanın açık veya kapalı durumu olarak düşünebiliriz. Şu halde Assembler (1 - 0) rakamlarından oluşan bir sayı sistemine sahiptir. Bu sayede Assemler ile yazılan programlar çok hızlı çalışır. On/Off durumuna geçmesi 1/10000000 saniyede yapabiliyor. Buna NANO second eniliyor. ASSEMBLER LANGUAGE Derleyici dilinde komutlar iki guruba ayrılır.1- Makina komutları. 2-Derleyici Komutları 1-Makina Komutları: Makinaya iş yaptıran komutlardır. Toplama, çıkarma ve taşıma komutları gibi. 2-Derleyici Komutları: Derleyiciye bilgi veren komutlar olup derlenen program içinde bir emir olarak gözükmezler. DS, DC, Start, Using komutları gibi. Makina Komutları ise iki gurupta incelenir: a)Giriş ve çıkış işlemleri ile ilgili olanlar. b)Birinci gurubun dışında kalanlar gibi. Giriş çıkış talimatlarının progrsamcı tarafından derleyici dilinde yazılması güçtür. I. O. C. S adı verilen bir programlar topluluğundan faydalanılır. Programcı, programın başında dizilerini I. O. C. S'e tarif eder, program içinde ise kendisine gerekli rutini "makro" denilen özel talimatlarla seçerek programına dahil eder. DESİMAL SAYI SİSTEMLERİ Temel 10 Rakkamlar : 0-1-2-3-4-5-6-7-8-9 1967 =1000+900+60+7 =1x1000+9x100+6x10+7x1 =1x103+9x102+6x101+7x100 Üssü 0 olan sayı daima 1 e eşittir. BİNARY SAYI SİSTEMLERİ Temel 2 Rakkamlar : 0 - 1 |32.768|16.384|8.192|4.096|2.048 |1.024|512|256|128|64|32|16 |8|4|2|1| Her hangi bir sayıyı binary olarak ifade etmek için onu meydana getiren 2 li hane bitleri ON/Off durumuna gelir 110011001100= 1x211+1x210+0x29 +0x28+1x27+1x26+0x25+0x24 +1x23+1x22+0x21+0x20 1x2.048+1x2.024+0x512+0x256+1x128+1x64+0x32+0x16+1x8+1x4+0x2+0x1 2.048+1.024+128+64+8+4 =32.768 DESİMAL SAYIYI BİNARY SAYIYA ÇEVİRMEK 424/2 0 212/2 0 106/2 0 53/2 1 26/2 0 13/2 1 6/2 0 3/2 1 1/1 1 Desimal sayıyı binary e çevirdik Şimdi de bu bitleri Byte olarak görelim. En yukarıdaki bit'i en sağa ondan sonrakini sola alarak bir BYTE' I düzenliyoruz.8 (0 - 7) adet bit bir Byte eder. Şimdi 424 desimal sayısını bit ve byte olarak görelim. Desimal 424 binary olarak 3 byte içine yerleşiyor. |0|0|0|1|1|0|1|0|1|0|0|0| 1x0=0+ 2x0=0+ 4x0=0+ (8x1=8)+ 16x0=0+ (32x1=32)+ 64x0=0+ (128x1=128 (256x1=256)+ 512x0=0+ 1044x0=0+ 2088x0=0 Şimdi değeri 0 olamayan parantez içinde olan binary sayılarımızı toplayalım.424 sayısını buluruz BİNARY SAYIYI DESİMAL SAYIYA ÇEVİRMEK Binary sayı soldan başlayarak 2 ile çarpılır ve ondan sonra gelen bit ilave edilip tekrar iki ile çarpılr ve böyle devam ederek en sondaki bit de ilave edilerek desimal sayı bulunur | 1 |1 |1 |1 |1 |1 |1 |1 | 1X2 = 2+1 = 3X2 6+1 = 7X2 14+1 = 15X2 30+1 = 31X2 62+1 = 62X2 126+1 = 127 ÇEKİRDEK HAFIZA ORGANİZASYONU Assemler programlamada adreslenebilir en küçük ünite BYTE olarak adlandırılır. 1 Byte 8 adet data biti ile 1 adet kontrol bitinden ibarettir. Parity bit 0 olursa sayı pozatif, 1 olursa sayı negatiftir. 1 BYTE | P |0 |1 |2 |3 |4 |5 |6 |7 | Şeklindedir. Byte içindeki bitler soldan sağa olarak numarandırılır. 0 - 7 gibi. Fakat yukarıda DESİMAL sistemi BİNARY sistemine çevirken görüldüğü gibi sağdan sola doğru değer kazanırlar Parity Bitidir. Bit içindeki sayının pozotif veya negatif olduğunu belirler 0 olursa sayı pozatif; 1 olursa sayı negatiftir. Byte içindeki bitler sağdan sola doğru değer kazanırlar. Fakat 0 - 7 olarak numaralanırlar Birici Byte Değeri 1. İkinci Byte Değeri 2. Üçüncü Byte Değeri 4. Dördüncü Byte Değeri 8 Hafıza içinde yan yana hafıza kapasitesine göre adet Byte vardır.1 Byte'tan daha büyük olan bilgi üniteleri aşağıdaki gibidir. 1 B Y T E (8 BİT) | 0 |0 |0 |0 |0 |0 |0 |0 | H A L F W O R D (YARIM KERLİME - İKİ BYTE - 16 BİT) |0 |0 |0 |0 |0 |0 |0 0 | |0 |0 |0 |0 |0 |0 |0 |0 | F U L L W O R D (TAM KELİME 4 BYTE - 32 BİT)) | 0 |0 |0 |0 |0 |0 |0 0 | 0 |0 |0 |0 |0 |0 |0 0 | 0 |0 |0 |0 |0 |0 |0 0 | |0 |0 |0 |0 |0 |0 |0 |0 | D O U B L E W O R D (ÇİFT KELİME - 32 BİT) |0 |0 |0 |0 |0 |0 |0 |0 | |0 |0 |0 |0 |0 |0 |0 |0 | |0 |0 |0 |0 |0 |0 |0 |0 | |0 |0 |0 |0 |0 |0 |0 |0 | |0 |0 |0 |0 |0 |0 |0 |0 | |0 |0 |0 |0 |0 |0 |0 |0 | |0 |0 |0 |0 |0 |0 |0 |0 | |0 |0 |0 |0 |0 |0 |0 |0 | HEXZADESİMAL SAYI SİSTEMLERİ Temel = 16 Desimal sayılar (0-9) rakkamlarından oluşur. 0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F. 4 BİNARY Digit = 1 Hexzadesimal Digit eder. ŞİMDİ BUNLARI BYTE OLARAK GÖRELİM 0 0 0 0=0; 0 0 0 1=1; 0 0 1 0=2; 0 011=3; 0100=4; 0101=5; 0110=6; 0111=7; 1000=8; 1001=9; 1010=A; 1011=B; 1100=C; 1101=D; 1110=E; 11111=15 (0 -15 = 16) HEXZADESİMAL ABA ABA = 10x162 + 11x161 + 10x160 = 10x256 + 11 x 16 + 10 x 1 = 2560 + 176 + 10 = 2746 DESİMAL - HEXZADESİMAL - DESİMAL Desimal sayı sıfır netice alıncaya kadar 16 ya bölünür. Çıkan Hexzadesimal değer tersten alınır. Ö R N E K: 195/16 = 122 Kalan 3 = 3 12/16 = 0 Kalan 12 = C C3>192 + 3 = 195 HEXZADESİMAL - DESİMAL Hexzadesimal sayının digitlerinin desimal değerleri, birler hanesi sıfır kabul edilip kaçıncı rakkam ise 16 nın o kadar assü ile çarpılıp toplanır. C 3 = 12 x 161 + 3 x 160 =12 x 16 + 3 x 1 = 192 + 3 = 195 BİLGİSAYAR YAPISI: R. A. M = Random Access Memory programcının Çalışabileceği Saha R. O. M = Read Only Memory Programcı Buradan Yanlız Komut Alır)R. O. M 'a hiçbir şekilde müdahale edilemez. C. P. U = merkezi işletim ünitesi. Bütün işlemler buradan organize edilir A. L. U Aritmetik ve Logic Unitesi REGİSTERLER Sabit uzunlukta HALF WORD olup yardımcı hafıza olarak kayıt işlemlerinde kullanılırlar. R. R Registerden Registere. R. X Registerden Hafızaya veya Hafızadan Registere. S. I Ani Operand'dan Hafızaya. S. S Hafızadan Hafızaya. ADRERSLEME-ADDRESSING 1- EFEKTİF ADRES Adres hafızada 16 bitlik bir saha kaplar.16 bit'in ilk 4 biti Register numarası olup, buna BASE register denilir. Kalan 12 Bit DISPLACEMENT adını alır. BASE Temel Register Numarası | 0 |X |X X | Displacement | X |X |X |X |X |X |X |X |X |X |X X | 16 Bit'in belirttiği hakiki adres , temel register içeriğinin Displacement'e ilavesi ile bulunur. 2- DİREKT ADRES | 0 |X |X X | |X |X |X |X |X |X |X |X |X |X |X |X | 16 bitlik bir saha işgal eder. Sol taraf daima 0 dır. Sağdaki 14 bit binary olarak adresi saklar. KENDİ KENDİNİ TARİFLEYEN TERİMLER - SELF DEFINING TERMS MEMORY da kıymeti DERLEYİCİ tarafından tarif edilmeyip, kendisini tarif eden terimlerdir. Bunlar Ani Bilgi , Sabitler . Kalıplar REGİSTER ve ADRESLEME için kullanılırlar. Dört Çeşittirler: 1- Decimal - Desimal 2- Hexzadesimal - hegzadesimal 3- Character - Karakter 4- Binary - Bayneri 4. üncü şık temel derleyicide kullanılmaz 1- DESİMAL TERİMLER İşaretsiz olup en fazla 5 digit olabilir. Derlenirken binary karşılıkları ile der lenir 2- HEXZADESİMAL TERİMLER En fazla 4 Hexzadesimal digit tarif edilebilir. Tırnak içinde tarif edilirler. Sol başta X bulunur. Örnek:X'400', X'7ABA' gibi. 3- KARAKTER TERİMLERİ Bir tek karekterden ibarettir. Tırnak içinde tarif edilir. Sol Başta C bulunur:Örnek:C' ', C'3' gibi. 4- BINARY TERİMLER İşaretsiz olup 1 - 0 dan ibarettir. Bununla bir BYTE(8 Bit) tarif edilir. B '10001001' gibi. B '10101101' B '10001101' Gibi SEMBOLLER Hafızadaki sahalara müracaat etmek için hakiki adresine karşılık olarak kullanılan isimlerdir. Semboller bir talimatın isim sahasında veya başka bir talimatın operand sahasında bulunabilirler. OPRERAND olarak kullanılan bir sembol, programın başka bir yerinde muhakkak tarif edilmelidir. DC DEFINE CONSTANT - SABİT TARİF ET Hafızada değişmeyek bilginin: -Fixed point -Floating Point -Decimal -Character -Hexzadesimal -Adres Sabiti Şeklinde kullanılırlar MİSALLER ADR1 DC C'TOPLAM' ADR1 DC CL15'TOPLAM' ADR2 DC X'FF00' DS DEFİNE STORAGE - SAHA TARİF ET Hafızada WORK AREA , I/O , v. s ler, ç, n yer ayrılır. İsim olarak yazılan sembol o sahanın en sol Byte'nın adresidir. Bununla hafızada ayrılan yerin içeriği sabit kalır. Tek operandlı bir talimattır DİSK DİZİLERİNİN ORGANİZASYONONU ve BİLGİLERE ULAŞILMASI 1-SEQUENTIAL(Kayıtların Sıra İle Yerleştirilmesi. 2-INDEXED SEQUENTIAL(Kayıtların İndeksli Olarak Sırayla Yerleştirilmesi. 3-RANDOM DİZİ ORGANİZASYONU Disk üzerinde bir bilgiye aşağıdaki sıralar takip edilerek ulaşılır MASTER İNDEX CYLİNDİR İNDEX TRACK İNDEX SECTOR İNDEX D E B U G P R O G R A M I DEBUG İle İlgili Komutlar: 1-Parametreler 2-Komutlar ile ilgili genel bilgiler 3-A Çevirici Komutu 4-C Mukayese (karşılaştırma Komutu 5-D HafızadakiBilgileri Döküm Komutu 6-E Giriş Komutu) 7-F Dodurma Komutu 9-H 16 tabanlı işlemler 10-I Programa giriş komutu 11-L Programı yükler 12-M Taşıma Komutu 13-N İsim Komutu 14-O Çıktı Komutu 15-Q Debug Programını Terketme Komutu 16-R Kaydetme Komutu 17-S Arama Komutu 18-T İz Komutu 19-U Ters Çevirici Komutu 20-W Yazma Komutu DEBUG Programı ile herhangi bir FILE'I , yükler, kütük üzerinde değişiklik yapar ve derlemeden yeniden görüntüliyebiriz. Kütükler makina dili HEXADESİMAL formatındadır. DEBUG PROGRAMINI yürütebilmek için: DEBUG [PATH FILE NAME [PARAMETRE1 PATH, FILE NAME ve PARAMETRELER doğrultusunda DEBUG belirtilen FILE'I içine yükler. Üzerinde değiştirme veya düzeltme yapılmak istenilen program için REGISTER'e aşağıdaki değerler verilir. Code Segment Data segment Extra Segment Stack Segment Yukarıdaki yazmaçlar parça yazmaçları olup, MEMORY'nin en alt kısmına konur. DEBUG sonlandıktan sonraki ilk parçadır. Internet Protokol IP Hexzadesimal değerini alır. Yığıt SP göstergesi parça veya Program yükleyicisinin en altına yerleştirilir ve 100 Hexzadesimal büyüklüğünde bir yığıt sağlanır. Geriye kalan AX, BX, CX, BP, SI ve DI yazmaçları sıfır değerini alır. DEBUG eğer bir FILESPEC ile başlatıldıysa, kütük uzunluğu Bite tanımında CX yazmacı içerecektir. Kütük 64K'dan büyükse, bu kütüğün uzunluğunu da BX ve CX yazmaçları içerecektir. Byük bir kısmını BX yazmacı saklar İŞARETLERİN BAŞLANGIÇ DURUMU: NV UP El PL NZ NA PO NC Varsayılan diski aktarme adresi, kod parçası içinde 80 hexadesimal değerine ayarlanır. DEBUG programı tarafından yüklenilen bir kütüğün. EXE uzantılı ise, program gerken yerleştirmeyi yapar. SEGMENT yazmaçların STACK göstergesini ve IP göstergesini kütükle tanımlanan değerlere ayarlar. DS ve ES yazmaçları geçerli en düşük parçadaki program parçasının ön ekini gösterir. BX ve CX programın büyüklüğünü kapsar Program kütüğü yaratırken parametre verildiyse belleğin yüksek ucunda yüklenir DEBUG KOMUTU PARAMETRELERİ ADRESS Aşağıdaki formatların birinde bir veya iki bölümlü bir atama girişi yapın Alfabetik bir parça yazmacı, ataması artı bir göreli uzaklık değeri CS:0100 gibi Bir SEGMENT , ve bir OFFSET uzaklık değeri 4BA:0100 şeklinde. Her iki formattaa değerler birbirinden iki nokta üst üste ile ayrılmalıdır. Bütün sayısal değerler Hexzadesimal(16 tabanlıdır). BYTE Hangi sürücü verisinin yükleneceğini veya yazılacağını belirtmek için tek basamaklı bir değer; A sürücüsü için 0; B sürücüsü için 1. Yükleme ve yazma komutlarını ileride göreceğiz FILESPEC Kütükadı ve kütükadı uzantısı içeren bir sürücü atamasıdır. Seçimsel (1 - 3) bölümden oluşabilir. Name komutunun bir şey ifade edebilmesi için, bir kütükadı ve bir sürücü belirtilmelidir. LIST PORTADDRESS INPUT - OUTPUT komutlarında görülecek REGİSTERNAME REGİSTER kayıt etme komutuEBUG programı çalıştığında, işlem yapılan programın Registeridir. İleride REGİSTER komutlarında incelenecek DEBUG'UN ORTAK BİLGİLERİ " " Parametre belirtilir ve tek bir harf ile belirlenir. " " Parametreler büyük, küçük veya karışım harflerden oluşabilir " " Aşağıdaki değerler birbirleriyle aynidir dsc:100 110 d cs:100 110 d, cs:100 110 Komutlar ENTER'e basıldıktan sonra etkili olur DEBUG Programı DOS yazılımı ile yapılabilir " " DEBUG programı işareti ile yanıt bekler. A Format: A Sayısal girişler 16 tabanlı sayılardır. Eğer adres belirtilmemişse, DEBUG: CS:0100' dan başlar. Adres belirtilmiş ise belirtilen adresten başlar. umarım doğrudur -

bu kodlar ömrümü yedi ömrümü liseden beri herp aynı syler bıktım bıtsın su unıversıte.