Blog Archive
- 2010 (115)
-
2009
(203)
- 12/20 - 12/27(23)
- 12/13 - 12/20(13)
- 11/15 - 11/22(40)
- 11/08 - 11/15(17)
-
10/04 - 10/11(110)
- Japon Mucizesi El Yapımı Klavyeler
- ışıldayan giysiler
- süper koltuk
- ilginç uzay araçları
- güneş enerjili arabalar
- dev eşyalar
- efes kutularından neler yapılır
- cep telefonu deneyi
- kitaplardan tabure yapımı
- güneş kavanozu
- kartondan yapılan tasarımlar
- Buhar Makinesi
- riba hastalarını taşıyor
- asker robot
- bilgisayarın icadı
- elektrik üretimi deneyi
- zıpla
- zıpla
- Cabir İbn Hayyan
- Michael Faraday
- Sir Joseph John Thomson
- Diofantos
- Niels Bohr
- James Clerk Maxwell
- James Chadwick
- Wolfgang Pauli
- Ctesibios
- Nicolaus Copernicus
- Ernest Rutherford
- Anders celsıus
- Jean-Baptiste de LAMARCK
- William Harvey
- Charles Francis Richter
- Amadeo Avogadro
- Jean Piaget
- Charles Augustin de Coulomb
- Gmail Otomatik Cevirme
- Gmail'den sms
- DİNİ GOOGLE
- googlede encok aranan
- Google SandBox
- Google sandbox kurtulması
- orion algoritması
- google etiketli arama
- Nicolaus Copernicus
- USB Port Nedir?
- Ethernet Nedir?
- Splitter nedir?
- Wireless network nedir?
- Wi-Fi Nedir?
- Public Domain Yazılımlar
- Freeware Yazılımlar
- Shareware Yazılımlar
- Tryware Yazılımlar
- Poscardware Yazılımlar
- Patch Yazılımlar
- port nedir?
- Virüslerle ilgili Internet bağlantı adresleri
- Virusle İlgili Bazı Bilgisayar Terimleri
- Bilgisayarlar virüslere karşı nasıl korunur?
- Firewall (Güvenlik Sistemleri) Nedir?
- Truva Atı ( Trojan ) nedir?
- virüs nedir?
- Bilgisayara Virüs Bulaştığı Nasıl Anlaşılır ve Nas...
- DEBUG ile Programlama
- Tarihte Bilgisayar Hataları
- Nasıl Açık Kaynak Kod Yazılımcısı Olunur?
- Kısa Bir Bilgisayar Tarihi
- Türkçe F Klavyenin Ölümü
- Klavye İngilizce Oldu, Nasıl Türkçe Olur(bilgisayar)
- Yazar İsimlerinde Geçen Harf Sıklığı ve Sık Rastla...
- Üretkenlik Hormonu ve Eğitimin Ötesi
- Elektronik Mektup Nasıl Yazılır
- cep teleefonu için şarj aleti aramaya son
- eczacı robot
- LG GD910 JAMES BOND KOLSAATİ
- cep telefonlarında projektör devri
- windows xp tarih oluyor
- nokıa'nın liderlik tahtı tehlikede
- herkes gitar çalabilir
- T-MOBİLE G2
- böyle klavye görmediniz
- 5 yılda insan hayatına girecek 5 buluş
- ev alma telefon al
- anahtarı unutma derdine son
- el ısıtıcısı
- tekerlekli sandalye kullananlar için araba
- ısıtıcılı dağ kıyafeti
- kartopu makinesi
- kurşun geçirmez çeket
- kıyafetleri giymeden deneyin
- kadınlar için koruma ceketi
- ısıtmalı pantolon
- büyüyen ayakkabı
- uykuyu algılayan araba
- damar bulucu
- Cep telefonu erkeklerde kısırlık yapıyo
- rusya nanoteknolojide zirveyi hedefliyor
- artık herkes casus
- Çelikten 10 milyar kat güçlü yıldız kabuğu
Backling
Dost siteler
Kategoriler
Çevirici
Bölüm
- BİLGİSAYAR (28)
- BİLİM ADAMLARI (52)
- BİYOTEKNOLOJİ (6)
- CEP TELEFONU (14)
- FACEBOOK (12)
- GOOGLE (16)
- İCATLAR (15)
- İNTERNET (20)
- MİCROSOFT (4)
- NANO TEKNOLOJİ (7)
- ROBOTLAR (3)
- TASARIM (5)
- TEKNOLOJİ (64)
- TEKNOLOJİ-LİNKLERİ (8)
- VİDEO (55)
- YENİ BULUŞLAR (4)
- YENİ İCATLAR (5)
5 Ekim 2009 Pazartesi
DEBUG ile Programlama
DEBUG ile Programlama
Debug programı, uzantısı COM ve EXE olan doğrudan çalıştırılabilir dosyaları oluşturmanızı ve bu uzantılara sahip programları inceleyip değiştirebilmenizi sağlar. DEBUG komutunu verdiğinizde karşınıza bir tire çıkar. Bu tire, debug programının, vereceğiniz komutları beklediğini gösterir. Vereceğiniz komutlar yardımı ile mikroişlemcinin yazmaçlarını (register) ve belleği inceleyebilir, basit programlar yapabilirsiniz...Devamını oku...
8088 Ve 8086 mikroişlemcilerinde 14 adet yazmaç bulunur (yeni işlemcilerle birlikte yazmaç sayısı da artmaktadır) . Bu yazmaçların özel işlevleri vardır. Bunlardan dördü karalama yazmacıdır ve yapılan işlemlerin sonuçlarını geçici olarak tutmak için kullanılır. Dört yazmaç, segment değerlerini tutar; beş yazmaç da offset değeri için kullanılır. Son olarak da bir bayrak (flag) yazamacı 8088’in içinde bulunduğu durumla ilgili bilgileri tutar ve bu amaçla 1 bitlik 9 adet bayrak içerir. Karalama yazmaçları AX, BX, CX ve DX olarak sıralanırlar. Segment yazmaçları CS, DS, SS ve ES’dir. Offset yazmaçları ise IP, SP, BP, SI ve DI’dır.Yazmaçları ve içeriklerini görmek isterseniz register anlamına “r” harfini girip ENTER’a basın. Herhangi bir yazmaçı tek başına görüp değiştirmek isterseniz “r”’nin yanısıra o yazmaçın adını da yazmalısınız. Örneğin, “raX” komutunu verirseniz AX yazmaçının içeriğini görüp değiştirebilirsiniz. Tireyi gördüğünüzde “Q” harfine basarsanız DEBUG’dan çıkarsınız. “C” komutu belleğin bir kısmı ile diğer bir kısmını karşılaştırır. “D” komutu ile belleğin bir kısmını sergileyebiliriz. “F” komutu ile belleğin bir kısmını bir değer ile doldurabiliriz. “G” komutu ile bellekteki herhangi bir programı çalıştırabiliriz. Örneğin, XT’ler zamanında “G=c800:5” komutunu vererek sabit diski alçak düzey formatlama programını çalıştırıyorduk. “A” ve “U” komutları ile bir program yapabilir ya da bir programı makina dilinde inceleyebiliriz. Yalnız bunun için makina diline aşina olmanız gerekir. Evet şimdi de ufak bir program yapalım. Programımız ekrana “Merhaba” yazısını yazacak. 1- Debug komutu ile programa girelim. Tire işaretini görelim. 2- “A” komutunu girerek bir program yapmak istediğimizi belirtelim. Bu komuta karşılık olarak offset kısmı 0100 olan bir adresten program yazmaya başalayabiliriz. Segment kısmı bilgisayarın o anki durumuna göre değişebilir. Örnek: 1864:0100 3- Yukarda örnek olarak verdiğimiz satırın hemen yanına şunu yazalım: mov ah,9 “mov” ile “ah,9” ifadelerinin arasını TAB tuşuna basarak açabilirsiniz. “mov ah,9” yazdıktan sonra ENTER tuşuna basın. 4- Karşınıza başka bir adres gelecektir. Bu adresleri GW-BASIC’teki satır numaralarına benzetebiliriz. Bu adresin hemen yanına şunu yazalımj: mov dx,120 Satır sonunda yine ENTER’a basıyoruz. 5- Şimdiki satıra int 21 yazıp ENTER tuşuna basıyoruz. 6- Buraya da “int 20” yazın. Tabii, yine ENTER’a basıyorsunuz. 7- Şimdi karşımıza çıkan adrese bir şey yazılmayacak. Yalnızca ENTER’a basın. Programımız hemen hemen bitti. 8- Karşımıza yine tire işareti geldi. Burada şu komutu verin: e 120 ‘MERHABA $’ (Sonra ENTER’a basmayı unutmayın.) 9- Şimdi yazacağımız komut “rcx”. Bu komutun karşılığı olarak ekranda ilkönce CX yazmaçının değeri görünecek sonra da “:” işareti ile bizden yeni bir değer istenecektir. Biz de buraya “2e” değerini gireceğiz. 10- Tire işareti yine göründü. Şimdi “n mer.com” yazalım. 11- Tire işaretini görünce “w” komutunu girelim. 12- Debug’dan çıkmak için “Q” komutunu verelim. İşi tamamladık. Şimdi “mer” komutu ile programımızı çalıştırabiliriz. Yukarda yaptıklarımızı da satır satır açıklayalım: 3- İlk yazdığımız komut ile AH yazmaçına 9 değerini yüklüyoruz. 4- Bu komut ile de DX yazmaçına 120 değerini yüklüyoruz. Bu değerler Hexadecimal (onaltılı düzende)’dir. 5- Bu satırda 21 nolu kesintiyi yaratıyoruz. 21 Nolu kesinti AH yazmaçına yüklenen değerle birleşince bir karakter dizisinin ekrana yazılacağı anlaşılıyor. Karakter dizisinin nerede yer alacağı ise DX yazmaçına yüklenen değer ile belirtiliyor. 6- int 20 komutu ile işletim sistemine programın sona erdiğini bildiriyoruz. 8- e (eNTER-GİR) komutu ile tırnak işareti içinde karakter dizimizi veriyoruz. Yalnız burada son karakter olarak “$” karakterini vermeyi unutmayın. Unutursanız ne olacağını deneyerek görebilirsiniz. 9- rcx komutu ile CX yazmaçının değerini görüyor ve değiştiriyoruz. CX’e yüklediğimiz “2e” değeri programımızın büyüklüğünü belirtiyor. 10- n (nAME-ADLANDIR) komutu ile programımıza bir ad veriyoruz. (Adı mer.com) 11- w (xRITE-YAZ) komutu ile programı diske yazdırıyoruz. Şimdi de bir başka örnek program ile DEBUG bilgimizi pekiştirelim. Aşağıdaki program özellikle fiziksel özürlülerin işine çok yarayabilecek bir programdır ve basılan tuşun sürekli tekrar edilmesini engeller. Bu programı herhangibir editörle yazın, ama ASCII modunda kaydedin. A 0100 JMP 0130 DB 0,0,0,0,F8 STI PUSH AX IN AL,60 CS: CMP AL,[0106] JZ 011D CS: MOV [0106],AL POP AX CLI CS: JMP FAR [0102] IN AL,61 MOV AH,AL OR AL,80 OUT 61,AL MOV AL,AH OUT 61,AL CLI MOV AL,20 OUT 20,AL POP AX IRET MOV AX,3509 INT 21 MOV [0102],BX MOV [0104],ES MOV AX,2509 MOV DX,0107 INT 21 MOV DX,0130 INT 27 N NOTEKRAR.COM RCX 4A W Q Şimdi diyelim ki bu yukardaki programı içeren dosyanın adı NOTEKRAR.SCR. Şu komutu vererek NOTEKRAR.COM adında bir program yaratabilirsiniz: DEBUG
Debug programı, uzantısı COM ve EXE olan doğrudan çalıştırılabilir dosyaları oluşturmanızı ve bu uzantılara sahip programları inceleyip değiştirebilmenizi sağlar. DEBUG komutunu verdiğinizde karşınıza bir tire çıkar. Bu tire, debug programının, vereceğiniz komutları beklediğini gösterir. Vereceğiniz komutlar yardımı ile mikroişlemcinin yazmaçlarını (register) ve belleği inceleyebilir, basit programlar yapabilirsiniz...Devamını oku...
8088 Ve 8086 mikroişlemcilerinde 14 adet yazmaç bulunur (yeni işlemcilerle birlikte yazmaç sayısı da artmaktadır) . Bu yazmaçların özel işlevleri vardır. Bunlardan dördü karalama yazmacıdır ve yapılan işlemlerin sonuçlarını geçici olarak tutmak için kullanılır. Dört yazmaç, segment değerlerini tutar; beş yazmaç da offset değeri için kullanılır. Son olarak da bir bayrak (flag) yazamacı 8088’in içinde bulunduğu durumla ilgili bilgileri tutar ve bu amaçla 1 bitlik 9 adet bayrak içerir. Karalama yazmaçları AX, BX, CX ve DX olarak sıralanırlar. Segment yazmaçları CS, DS, SS ve ES’dir. Offset yazmaçları ise IP, SP, BP, SI ve DI’dır.Yazmaçları ve içeriklerini görmek isterseniz register anlamına “r” harfini girip ENTER’a basın. Herhangi bir yazmaçı tek başına görüp değiştirmek isterseniz “r”’nin yanısıra o yazmaçın adını da yazmalısınız. Örneğin, “raX” komutunu verirseniz AX yazmaçının içeriğini görüp değiştirebilirsiniz. Tireyi gördüğünüzde “Q” harfine basarsanız DEBUG’dan çıkarsınız. “C” komutu belleğin bir kısmı ile diğer bir kısmını karşılaştırır. “D” komutu ile belleğin bir kısmını sergileyebiliriz. “F” komutu ile belleğin bir kısmını bir değer ile doldurabiliriz. “G” komutu ile bellekteki herhangi bir programı çalıştırabiliriz. Örneğin, XT’ler zamanında “G=c800:5” komutunu vererek sabit diski alçak düzey formatlama programını çalıştırıyorduk. “A” ve “U” komutları ile bir program yapabilir ya da bir programı makina dilinde inceleyebiliriz. Yalnız bunun için makina diline aşina olmanız gerekir. Evet şimdi de ufak bir program yapalım. Programımız ekrana “Merhaba” yazısını yazacak. 1- Debug komutu ile programa girelim. Tire işaretini görelim. 2- “A” komutunu girerek bir program yapmak istediğimizi belirtelim. Bu komuta karşılık olarak offset kısmı 0100 olan bir adresten program yazmaya başalayabiliriz. Segment kısmı bilgisayarın o anki durumuna göre değişebilir. Örnek: 1864:0100 3- Yukarda örnek olarak verdiğimiz satırın hemen yanına şunu yazalım: mov ah,9 “mov” ile “ah,9” ifadelerinin arasını TAB tuşuna basarak açabilirsiniz. “mov ah,9” yazdıktan sonra ENTER tuşuna basın. 4- Karşınıza başka bir adres gelecektir. Bu adresleri GW-BASIC’teki satır numaralarına benzetebiliriz. Bu adresin hemen yanına şunu yazalımj: mov dx,120 Satır sonunda yine ENTER’a basıyoruz. 5- Şimdiki satıra int 21 yazıp ENTER tuşuna basıyoruz. 6- Buraya da “int 20” yazın. Tabii, yine ENTER’a basıyorsunuz. 7- Şimdi karşımıza çıkan adrese bir şey yazılmayacak. Yalnızca ENTER’a basın. Programımız hemen hemen bitti. 8- Karşımıza yine tire işareti geldi. Burada şu komutu verin: e 120 ‘MERHABA $’ (Sonra ENTER’a basmayı unutmayın.) 9- Şimdi yazacağımız komut “rcx”. Bu komutun karşılığı olarak ekranda ilkönce CX yazmaçının değeri görünecek sonra da “:” işareti ile bizden yeni bir değer istenecektir. Biz de buraya “2e” değerini gireceğiz. 10- Tire işareti yine göründü. Şimdi “n mer.com” yazalım. 11- Tire işaretini görünce “w” komutunu girelim. 12- Debug’dan çıkmak için “Q” komutunu verelim. İşi tamamladık. Şimdi “mer” komutu ile programımızı çalıştırabiliriz. Yukarda yaptıklarımızı da satır satır açıklayalım: 3- İlk yazdığımız komut ile AH yazmaçına 9 değerini yüklüyoruz. 4- Bu komut ile de DX yazmaçına 120 değerini yüklüyoruz. Bu değerler Hexadecimal (onaltılı düzende)’dir. 5- Bu satırda 21 nolu kesintiyi yaratıyoruz. 21 Nolu kesinti AH yazmaçına yüklenen değerle birleşince bir karakter dizisinin ekrana yazılacağı anlaşılıyor. Karakter dizisinin nerede yer alacağı ise DX yazmaçına yüklenen değer ile belirtiliyor. 6- int 20 komutu ile işletim sistemine programın sona erdiğini bildiriyoruz. 8- e (eNTER-GİR) komutu ile tırnak işareti içinde karakter dizimizi veriyoruz. Yalnız burada son karakter olarak “$” karakterini vermeyi unutmayın. Unutursanız ne olacağını deneyerek görebilirsiniz. 9- rcx komutu ile CX yazmaçının değerini görüyor ve değiştiriyoruz. CX’e yüklediğimiz “2e” değeri programımızın büyüklüğünü belirtiyor. 10- n (nAME-ADLANDIR) komutu ile programımıza bir ad veriyoruz. (Adı mer.com) 11- w (xRITE-YAZ) komutu ile programı diske yazdırıyoruz. Şimdi de bir başka örnek program ile DEBUG bilgimizi pekiştirelim. Aşağıdaki program özellikle fiziksel özürlülerin işine çok yarayabilecek bir programdır ve basılan tuşun sürekli tekrar edilmesini engeller. Bu programı herhangibir editörle yazın, ama ASCII modunda kaydedin. A 0100 JMP 0130 DB 0,0,0,0,F8 STI PUSH AX IN AL,60 CS: CMP AL,[0106] JZ 011D CS: MOV [0106],AL POP AX CLI CS: JMP FAR [0102] IN AL,61 MOV AH,AL OR AL,80 OUT 61,AL MOV AL,AH OUT 61,AL CLI MOV AL,20 OUT 20,AL POP AX IRET MOV AX,3509 INT 21 MOV [0102],BX MOV [0104],ES MOV AX,2509 MOV DX,0107 INT 21 MOV DX,0130 INT 27 N NOTEKRAR.COM RCX 4A W Q Şimdi diyelim ki bu yukardaki programı içeren dosyanın adı NOTEKRAR.SCR. Şu komutu vererek NOTEKRAR.COM adında bir program yaratabilirsiniz: DEBUG
Bu örnekte de gördüğünüz gibi bir program oluşturmak için DEBUG’ın içine girip komutları tek tek vermek zorunlu değil (zaten kolay da değil). Özellikle dergilerde yer alan programları, kendinizi rahat hissettiğiniz bir yazı programı ile yazabilir sonra, yalnızca son aşamada, programı oluşturmak için DEBUG’ı çağırabilirsiniz.
teknoloji,bilgisayar,internet,robotlar,icatlar
BİLGİSAYAR
Kaydol:
Kayıt Yorumları (Atom)
Bu Yazıyı Paylaş:
!>!>
0 yorum:
Yorum Gönder