İÇİNDEKİLER
İçindekiler
Kitapta Neler Bulacaksınız? 5
Önsöz 9
Şekil ve Tablolar Listesi 23
TEMEL MİKROİŞLEMCİ MİMARİSİ
1.1. TEMEL MİKROİŞLEMCİ MİMARİSİ 31
1.1.1. Kaydediciler 32
1.1.2. Aritmetik ve Mantık Birimi (ALU) 32
1.1.3. Kontrol Birimi 34
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. İcra Birimi 36
1.2.2.1. Aritmetik ve Mantık Birimi 38
1.2.2.2. Kaydediciler 39
Segment Kaydediciler 39
Genel Amaçlı Kaydediciler 43
1.2.2.3. x86 Mikroişlemci Kaydedicileri 45
Özet ve Sorular 49
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
Geçici Yerleşim 58
Uzaysal Yerleşim 59
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.2.1. Bağımlılık 73
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
Özet ve Sorular 80
CISC VE RISC MİMARİLERİ
3. KOMUT MİMARİ ESASLARI 85
3.1. Komut Kümesi Mimarisi 85
3.2. CISC Mimarisi 86
3.2.1. CISC’in Doğuşu 87
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. RISC Mimarisi 92
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.5. Bellek Hızı 95
3.3.6. Komut Gizliliği 95
3.3.7. Güvenilirlik 96
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.12. Kod Özelliği 98
3.3.13. Hatalardan Arındırma 98
3.3.14. Kod Büyümesi 98
3.3.15. Sistem Tasarımı 99
3.4. EPIC Mimarisi 99
3.4.1. EPIC Mimarisinin Üstünlükleri 100
Özet ve Sorular 101
İLERİ MİKROİŞLEMCİLER
4. İLERİ İŞLEMCİLER 105
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.12. Süper İş–hattı 128
4.13. Kaydedicilerin Yeniden Adlandırılması 131
4.14. Süperskalar Çalışma 132
4.15. İnziva Birimi 136
Özet ve Sorular 137
İLERİ İŞLEMCİNİN ÇALIŞMASI
5. İLERİ İŞLEMCİLER 141
5.1. Bellek Altsistemi 143
5.2. Ön–Uç Bölüm 145
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
Özet ve Sorular 158
ASSEMBLY PROGRAMLAMA DİLİ
6. ASSEMBLY DİLİ 163
6.1. Makine Dili 163
6.2. Assembly Dili 164
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.1. Derleyiciler 170
6.4.2. Yorumlayıcılar 173
6.5. Assembler Çeşitleri 176
6.6. Çeviriciler 177
6.7. Program Yükleyici 180
6.8. Hata Ayıklayıcılar (Debugger) 181
Özet ve Sorular 182
PROGRAM YAPISI VE ADRESLEME TEKNİKLERİ
7. PROGRAM YAPISI VE ADRESLEME TEKNİKLERİ 185
7.1. Program Formatı 185
7.1.1. Açıklama Alanları 185
7.1.2. Etiket Alanı 186
7.1.3. Komut Alanı 187
7.1.4. Operand Alanı 188
7.2. Talimatlar 188
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. Çalışma Modları 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. Kontrol Mantığı 203
7.5.1. Komut Etiketleri 204
7.5.2. LOOP Komutu 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
Özet ve Sorular 227
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. ModR/M Alanı 235
8.1.3.1. Mod Alanı 236
8.1.3.2. REG/Komut Kodu Alanı 237
8.1.3.3. R/M Alanı 237
8.1.4. SIB Baytları 237
8.1.5. Yayılım ve Sabit Veri Alanı 238
8.1.6. Komut Modellemesi Örneği 238
8.2. Komut Kümesi 239
8.3. Veri Aktarım Komutları 242
8.3.1. MOV Komutu 242
8.3.2. XCHG Komutu 244
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
Örnek Program–1 247
8.3.6. XLAT Komutu 250
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.4.7. AND Komutu 259
8.4.8.Komutu 260
8.4.9. XOR Komutu 261
8.4.10. TEST Komutu 261
8.4.11. NOT Komutu 262
8.5. Kaydırma ve Yönlendirme Komutları 263
8.5.1. Kaydırma Komutları 264
8.5.1.1. SHR Komutu 264
8.5.1.2. SHL Komutu 265
8.5.1.3. SAR Komutu 265
8.5.1.4. SAL Komutu 266
8.5.2. Yönlendirme Komutları 266
8.5.2.1. ROL Komutu 266
8.5.2.2. ROR Komutu 267
8.5.2.3. RCL Komutu 267
8.3.2.4. RCR Komutu 267
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.3. JMP Komutu 273
8.6.4. Ofset Adres Hesaplamaları 273
8.6.5. LOOP Komutu 274
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
Özet ve Sorular 281
ARİTMETİK İŞLEMLER
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.3. Bölme İşlemleri 290
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.4.3. AAM Komutu 295
9.4.4. AAD Komutu 295
9.5. İşaret Genişletme Komutları 296
9.6. Veri Yapıları 298
9.6.1. Listeler 298
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
Özet ve Sorular 307
STRING İŞLEMLERİ
10. STRING İŞLEMLERİ 311
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
10.6. SCAS Komutu 328
Özet ve Sorular 331
BIOS VE OS İLİŞKİSİ VE KESMELER
11. BIOS VE İŞLETİM SİSTEMİ İLİŞKİSİ 335
11.1. POST İşlemi 336
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.4.2. OS Kesmeleri 346
11.5. Kesme Kontroleri 346
11.6. Kesme İşlemleri 348
Özet ve Sorular 351
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
Özet ve Sorular 388
DISK ORGANİZASYONU
13. DISK ORGANİZASYONU 391
13.1. Disk Yapısı 391
13.2. Disk Kontrolörü 395
13.3. Disk Alanları 395
13.3.1. Sistem Alanı 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
Özet ve Sorular 402
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.2. Hata Kodları 406
14.3. Dosya İşaretçisi (File Pointer) 407
14.4. DOS Disk İşlemleri 407
Dosya Oluşturulması (3CH) 408
Dosyaya Yazma (40H) 409
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
Özet ve Sorular 436
TEMEL GİRİŞ–ÇIKIŞ TEKNİKLERİ
15. BASİT GİRİŞ–ÇIKIŞ TEKNİKLERİ 439
15.1. IN ve OUT Komutları 439
15.2. Portlar 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
Özet ve Sorular 457
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
16.4.3. Assembly Dilindeki Altprogramların C Dilinde Çağrılması 478
Özet ve Sorular 480
EKLER
EKLER 483
x86 Tamsayı Komut Kümesi 489
Tamsayı Komut Zamanlaması 489
Komut Uzunluğu 490
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
Win 95 Ek tuşları 523
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 |