x86 Tabanlı Mikroişlemci Mimarisi ve Assembly Dili Kavramlar, Sistemler, Programlamalar ve Örnekler Prof. Dr. Nurettin Topaloğlu  - Kitap

x86 Tabanlı Mikroişlemci Mimarisi ve Assembly Dili

Kavramlar, Sistemler, Programlamalar ve Örnekler

5. Baskı, 
Nisan 2022
Kitabın Detayları
Dili:
Türkçe
Ebat:
18x24
Sayfa:
527
Barkod:
9789750276774
Kapak Türü:
Karton Kapaklı
Fiyatı:
540,00
Stoktan hemen gönderilir.
Kitabın Açıklaması
Bu kitap, günümüz bilgisayar sistemlerinin yapısını, işlevlerini, çalışmasını ve sistemi oluşturan birimlerin kendi dilinde, mikroişlemci tarafından nasıl denetlendiğini anlatmaktadır. Okullarda bilgisayar mimarisi ve organizasyonu dersini alan öğrenciler ve endüstride sistem denetimi üzerine çalışan mühendis ve teknisyenler için ideal bir kaynak oluşturacaktır. Özellikle bilgi güvenliği açısından bilgisayarın gizli yerlerinin açığa çıkarılması ve açıkta olanların da gizlenmesi açısından ayrıcalık sağlayacaktır. Uzun süredir endüstriyel okullarda ders kitabı olarak okutulan bu kitap, elde edilen deneyimler sonucunda geliştirilerek 5. baskısına ulaşılmıştır.
Dünyadaki kişisel bilgisayarların yaklaşık %90'ında Intel ve AMD tabanlı işlemciler kullanılmaktadır. Kitapta, x86 kodu ile tanımlanan bu işlemcilerin mimari özellikleri, yapıları, işlevleri, kendi dilinde programlanması, örneklenmesi ve çalışma teknikleri yer almıştır. BIOS ve OS (işletim sistemi) ilişkileri ile birlikte sistemin özünü oluşturan kesmeler ele alınmıştır. Bilgisayar sistemlerine veri giriş-çıkışını sağlayan ekran ve klavyelerin denetimi yapılmıştır. Kesme adres defteri ve BIOS veri alanı kullanılarak sistemin nasıl denetlendiği vurgulanmıştır. Verilerin saklandığı diskin organizasyonu ve çalışma sistemi ele alınarak kesmelerle denetlenmiştir. Ayrıca, giriş-çıkış için kullanılan portların kurulumu ve teknikleri anlatılmıştır. Bilgisayar mimarisini oluşturan elemanların denetimi, ancak makinenin kendi dilinde yazılan programlarla mümkün olduğundan, tüm konular Assembly dilinde yazılan program parçalarıyla desteklenmiş ve bölüm sonlarında çözümlü uygulama örnekleri verilmiştir. Son olarak, Assembly dilinin bazı yüksek düzeyli dillerle bağlantıları açıklanmıştır.
Kitabın Konu Başlıkları
.
Temel Mikroişlemci Mimarisi
.
Gelişmiş Mikroişlemci Mimarisi
.
İleri Mikroişlemciler
.
İleri Mikroişlemcilerin Çalışması
.
Komut yapısı ve Modellenmesi
.
Assembly Dilinde Programlama
.
BIOS ve İşletim Sistemleri İlişkileri
.
Kesmeler ve Disk işlemleri
.
Giriş–Çıkış Teknikleri
.
Assembly Dilinin Diğer Dillere Bağlantısı
Kitabın İçindekileri
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
Ö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