Kitapta Neler Bulacaksınız?
5
Şekil ve Tablolar Listesi
23
TEMEL MİKROİŞLEMCİ MİMARİSİ
1.1. TEMEL MİKROİŞLEMCİ MİMARİSİ
31
1.1.2. Aritmetik ve Mantık Birimi (ALU)
32
1.2. PROGRAMLAMAYA YÖNELİK İŞLEMCİ MİMARİSİ
35
1.2.1. Veri Yolu Bağdaştırma Birimi
36
1.2.2.1. Aritmetik ve Mantık Birimi
38
Genel Amaçlı Kaydediciler
43
1.2.2.3. x86 Mikroişlemci Kaydedicileri
45
GELİŞMİŞ MİKROİŞLEMCİ ÖZELLİKLERİ
2. MİKROİŞLEMCİ ÖZELLİKLERİ
53
2.1. Temel Mikroişlemci özellikleri
53
2.2. İleri İşlemci Özellikleri
54
2.2.1. Ön–Bellek Sistemleri
54
2.2.1.1. Ön–Bellek Altsisteminin Çalışması
57
2.2.1.2. Yerleşim Esasları
57
2.2.1.3. Ön–Bellek Performansı
59
2.2.1.4. Ön–Bellek Mimarileri
61
İleri–bakan Ön–bellek Yapısı
61
Yana–bakan Ön–bellek Mimarisi
62
2.2.1.5. Ön–Bellek Uyumluluğu
63
2.2.1.6. Belleğe Doğrudan Yazım
64
2.2.1.7. Belleğe Geriye Yazma
66
2.2.2. İş–Hattı Teknolojisi
66
2.2.3. Dallanma Tahmini
74
2.2.3.1. Yanlış Dallanma Tahmini
74
2.2.4. Bellek Adreslemesi
75
2.2.4.1. Mantıksal Bellek Tanımlaması
75
2.2.4.2. Fiziksel Bellek Tanımlaması
76
2.2.5. Segment Sınırları
77
2.2.5.1. Ofset Adresleri
77
2.2.6. Adresleme Kapasitesi
78
3. KOMUT MİMARİ ESASLARI
85
3.1. Komut Kümesi Mimarisi
85
3.2.2. Mikrokod Kullanımı
87
3.2.3. Zengin Komut Kümesi
88
3.2.4. Yüksek–Düzeyli Komut Kümesi
89
3.2.5. CISC Tasarımının Özellikleri
90
3.2.6. Donanım Mimarisi
90
3.2.8. İdeal CISC Makinesi
90
3.2.9. CISC Mimarisinin Üstünlükleri
91
3.2.10. CISC Mimarisinin Mahzurları
91
3.3.1. İlk RISC Modeli
93
3.3.2. RISC Mimarisinin Özellikleri
94
3.3.3. İş–hattı Tekniği
94
3.3.4. İş–hatlı Sistemlerde Performans
95
3.3.6. Komut Gizliliği
95
3.3.8. Süper İş–hattı Teknolojisi
97
3.3.9. Süperskalar Mimari
97
3.3.10. RISC Mimarisinin Üstünlükleri
97
3.3.11. RISC Mimarisinin Sınırları
98
3.3.13. Hatalardan Arındırma
98
3.3.15. Sistem Tasarımı
99
3.4.1. EPIC Mimarisinin Üstünlükleri
100
4.1. İşlemci Tasarım Felsefesi
105
4.2. Yeni Veri Tipleri
106
4.3. Gelişmiş Komut Kümesi
107
4.4. 64–bit MMX Kaydedicileri
108
4.5. 128–bit SSE Komut ve Kaydedicileri
109
4.6. İşlemci Seri Numarası (CPUID)
113
4.7. Ön–Bellek ve Veri Yolları
114
4.8. Komut ve Veri Ön–Bellekleri
114
4.8.1. Bellek Organizasyonu
116
4.9. Gelişmiş Transfer Sistemi
117
4.9.1. Sistem Veri Yolu
118
4.10. Yüksek İş–hattı Teknolojisi
120
4.10.1. Veri Bağımlılığı
121
4.10.2. Dallanma Tahmini
124
4.11. x86 Komut Kodlarının Çevrimi
128
4.13. Kaydedicilerin Yeniden Adlandırılması
131
4.14. Süperskalar Çalışma
132
İLERİ İŞLEMCİNİN ÇALIŞMASI
5.1. Bellek Altsistemi
143
5.2.1. Dallanma Tahmini
148
5.3. Sırasız Çalışma Mantığı (OoO)
150
5.3.1. Yerleştiriciler
151
5.3.2. Kaydedicilerin Yeniden Adlandırılması
151
5.3.3. Mikrokodların Zamanlanması ve Sevkedilmesi
153
5.3.4. Hızlı Çalışma Motoru
155
5.3.5. Yükleme ve Saklamanın Yürütülmesi
156
ASSEMBLY PROGRAMLAMA DİLİ
6.2.1. Assembly Dilinin Üstünlükleri
167
6.2.2. Assembly Dilinin Mahzurları
168
6.3. Üst Düzey Diller
168
6.4. Çevirme İşlemleri
170
6.4.2. Yorumlayıcılar
173
6.5. Assembler Çeşitleri
176
6.7. Program Yükleyici
180
6.8. Hata Ayıklayıcılar (Debugger)
181
PROGRAM YAPISI VE ADRESLEME TEKNİKLERİ
7. PROGRAM YAPISI VE ADRESLEME TEKNİKLERİ
185
7.1.1. Açıklama Alanları
185
7.2.1. Listeleme Talimatları
189
7.2.2. Data Talimatları
190
7.2.3. Segment Talimatları
190
7.2.3.1. Align Parametresi
190
7.2.3.2. Combine Parametresi
192
7.2.3.3. Class Parametresi
193
7.2.3.4. Readonly Parametresi
194
7.2.3.5. USE Parametresi
194
7.2.3.6. PROC Talimatı
195
7.2.3.7. Assume Talimatı
195
7.2.3.8. End Talimatı
196
7.3.1. Basitleştirilmiş Segment Tanımlaması
198
7.4. Veri Tanımlamaları
200
7.4.1. Sembol Tanımlamaları
202
7.5.1. Komut Etiketleri
204
7.5.3. Şartlı Dalma Komutları
205
7.5.4. Prosedür Çağrıları
206
7.5.5. Yığın Kullanımı
208
7.6. Adresleme Modları
212
7.6.1. Komut ve Veri Adreslemesi
213
7.6.2. Adresleme Teknikleri
215
7.6.2.1. Veri Tanımlı Adresleme
216
7.6.2.2. Kaydedici Adresleme
218
7.6.2.3. Doğrudan Adresleme
219
7.6.2.4. Kaydediciye Dayalı Dolaylı Adresleme
219
7.6.2.5. Taban Göreceli Adresleme
221
7.6.2.6. Doğrudan İndisli Adresleme
222
7.6.2.7. Taban İndisli Adresleme
224
7.6.2.8. 32–Bit Adresleme Modları
225
x86 KOMUT YAPISI VE KÜMESİ
8. KOMUT YAPISI VE FORMATI
233
8.1. Genel Komut Formatı ve Orgnizasyonu
233
8.1.1. Komut Ön–takıları
234
8.1.2. Komut Kodları (İş/işlem kodu)
234
8.1.3.2. REG/Komut Kodu Alanı
237
8.1.5. Yayılım ve Sabit Veri Alanı
238
8.1.6. Komut Modellemesi Örneği
238
8.3. Veri Aktarım Komutları
242
8.3.3. MOV ve FILL Komutları
245
8.3.4. Etkin Adresi Yükleme Komutu
246
8.3.5. Artırma ve Azaltma Komutları
247
8.3.7. IN ve OUT Komutları
250
8.4. Aritmetik ve Mantık Komutları
251
8.4.1. Toplama Komutları
252
8.4.2. Çıkarma Komutları
253
8.4.3. Çarpma Komutları
255
8.4.4. Bölme Komutları
256
8.4.5. İşaret Genişletme Komutları
257
8.4.6. Mantıksal Komutlar
258
8.5. Kaydırma ve Yönlendirme Komutları
263
8.5.1. Kaydırma Komutları
264
8.5.2. Yönlendirme Komutları
266
8.6. Kontrol Komutları
268
8.6.1. Şartsız Aktarım Komutları
269
8.6.2. Prosedür Çağrısı
269
8.6.4. Ofset Adres Hesaplamaları
273
8.6.6. Karşılaştırma Komutu
276
8.6.7. Şartlı Aktarma Komutları
276
8.6.7.1. İşaretli ve İşaretsiz Veriler
277
9. ARİTMETİK İŞLEMLER
285
9.1. Toplama ve Çıkarma İşlemleri
285
9.2. Çarpma İşlemleri
285
9.2.1. İşaretsiz Sayıların Çarpılması
286
9.2.2. İşaretli Sayıların Çarpılması
287
9.4. Aritmetik İşlemler (ASCII ve BCD)
291
9.4.1. AAA ve DAA Komutları
293
9.4.2. AAS ve DAS Komutları
294
9.5. İşaret Genişletme Komutları
296
9.6.1.1. Sırasız Bir Listeye Eleman Eklenmesi
298
9.6.1.2. Sırasız Bir Listeden Eleman Silinmesi
299
9.6.1.3. Sırasız bir listeden en büyük ve en küçük değerlerin bulunması
301
9.6.2. Bakış Tabloları
303
9.6.2.1. değerinin ASCII, BCD değerlerine çevrilmesi
304
9.6.2.2. Telefon kayıtlarının sıralanması
305
10.1. String İşlem Özellikleri
312
10.2. Tekrarlama Takıları
315
10.3. MOV String Komutları
316
10.4. LODS ve STOS Komutları
320
10.5. String Karşılaştırma Komutları
324
10.5.1. Sonuçların Denetimi
326
BIOS VE OS İLİŞKİSİ VE KESMELER
11. BIOS VE İŞLETİM SİSTEMİ İLİŞKİSİ
335
11.2. BIOS Data Alanı
338
11.3. Kesme Adres Defteri (IVT)
342
11.4. Dâhili ve Harici Kesmeler
344
11.4.1. BIOS Kesmeleri
344
11.5. Kesme Kontroleri
346
11.6. Kesme İşlemleri
348
EKRAN VE KLAVYE İŞLEMLERİ
12. EKRAN VE KLAVYE İŞLEMLERİ
355
12.1. Ekran İşlemleri
355
12.1.1. Ekranın Silinmesi
357
12.1.1.1. Özellik Tanımı
357
12.1.2. Kürsör Konumlanması
359
12.1.2.1. Ekran Sayfa Numarası
360
12.1.3. Ekrana Yazı Yazımı
360
12.2. Klavye İşlemleri
363
12.2.1. Klavye Shift Durumu
365
Klavye Durumunun Test Edilmesi
367
12.2.2. Klavye Kesme Değişkenleri
369
12.2.3. Kontrol Karakterlerinin Ekranda Kullanılması
372
12.2.4. Klavye Girişleri
373
12.2.4.1. BIOS Klavye Girişleri
373
00H Fonksiyonu: Klavyeden Karakter Giriş Talebi
374
01H Fonksiyonu: Klavye Tamponunu Kontrol Et
374
02H Fonksiyonu: Geçerli <Shift> Durumunun Kontrolü
374
10H Fonksiyonu: Klavyeden Bir Karakter Okuma İşlemi
374
12.2.4.2. DOS Klavye Girişleri
376
01H Fonksiyonu: Klavye Giriş Talebi
376
07H Fonksiyonu: Yansımasız Doğrudan Klavye Girişi
377
0AH Fonksiyonu: Tamponlanmış Klavye Girişi
377
Sınıf Listesinin Klavyeden Girilmesi ve Ekrana Yansıtılması
379
Window Tipi Bir Menü Oluşturulması
382
13. DISK ORGANİZASYONU
391
13.2. Disk Kontrolörü
395
13.3.1.1. Boot Sektörü
396
13.3.1.2. Dosya Yerleşim Tablosu (FAT)
397
13.3.1.2.1. FAT’in Çalışması
397
13.3.1.3. Dizin (Directory) Yapısı
400
13.3.2. Data Alanları
401
DISK OKUMA VE YAZMA İŞLEMLERİ
14. DISK OKUMA VE YAZMA İŞLEMLERİ
405
14.1. Dosya Kontrol Blokları Yöntemi
405
14.1.1. File Handle Yöntemi
405
14.3. Dosya İşaretçisi (File Pointer)
407
14.4. DOS Disk İşlemleri
407
Dosya Oluşturulması (3CH)
408
Dosyanın Kapatılması (3EH)
409
Program: Örnek Bir Programın Oluşturulması
410
Dosyanın Açılması (3DH)
414
Dosyadan Kaydın Okunması (3FH)
415
Dosya İşaretçisinin İlerletilmesi (42H)
416
Program: Bir ASCII Dosyasının Okunması
419
14.5. BIOS Disk İşlemleri
425
14.6. Disk Sürücüsü Durumu
425
Sürücü Parametrelerinin Öğrenilmesi (08H)
426
Disk Sektörlerinin Okunması (02H)
427
Sektörlere Yazma İşlemi (03H)
432
İz Formatlama İşlemi (05H)
432
14.7. Sabit Disk ve Partisyon Tablosu
432
Program: Sabit Diskin Açılabilir (Bootable) Olduğuna Bakma
433
TEMEL GİRİŞ–ÇIKIŞ TEKNİKLERİ
15. BASİT GİRİŞ–ÇIKIŞ TEKNİKLERİ
439
15.1. IN ve OUT Komutları
439
15.3. I/O Komutlarının Kullanımı
441
15.4. String Giriş ve Çıkış Komutları
443
15.5. I/O Destek Çipleri
445
15.5.1. 8253/54 Programlanabilir Süreli Zamanlayıcı
445
15.5.2. Zamanlayıcının Programlanması
447
15.5.3. Sayıcıların Programlanması
448
15.6. 8255 ve Hoparlör
450
Program: Bilgisayar hoparlöründen ses alınması
454
ALT PROGRAMLARA BAĞLANTILAR
16. ALTPROGRAMLARA BAĞLANTI TEKNİKLERİ
461
16.1. Segment Çağrıları
462
16.1.1. Extern ve Public Tanımlamaları
463
Birbirini Çağıran Program Örnekleri
465
16.2. Modüllerarası Parametre Alışverişi
467
16.2.1. Kaydedici Vasıtasıyla Parametre Geçişi
468
16.2.2. Bellek Vasıtasıyla Parametre Geçişi
468
16.2.3. Yığın Vasıtasıyla Parametre Geçişi
469
16.3. C ve C++ Programlama Dilleri İle Bağlantılar
474
16.4.1. Değişken Geçişsiz Altprogram Bağlantısı
475
16.4.2. Assembly Kodlarının C diline Yerleştirilmesi
477
x86 Tamsayı Komut Kümesi
489
Tamsayı Komut Zamanlaması
489
Komut Formatı, Saat Saykılı ve Pentium Eşleme Bilgisi
490
ASCII Karakter Tablosu (1/2)
518
ASCII Karakter Tablosu (2/2)
519
Klavye Tipleri ve Scan kod Tablosu
519
IBM PC Klavye Tarama (Scan) Kodları
524
IBM PC Genişletilmiş ASCII Display Karakterleri
525
Heksadesimal’den Ondalığa Çevirme
526
Oktal’dan Ondalığa Çevirme
526
Daha Fazla Bilgi İçin Kaynaklar
528