Kitob mundarijasi

Muqaddima 7

Kitob tuzilishi 9

Kitobdagi shartli belgilar 9

Aloqalar 9

I bob. Dastlabki tushunchalar

1.1. Assembler nima uchun kerak? 11

1.2. NASM nima? 12

1.3. Operatsion tizim nima? 13

1.3.1. Linux tizimi 14

1.3.2. Windows tizimi 16

1.3.3. Mac OS X tizimi 16

II bob. Tarixiy ma’lumotlar

2.1. Birinchi hisob mashinalari 17

2.2. Charls Bebbij tajribalari 17

2.3. Birinchi avlod EHMlari: elektron lampalar va elektr o’zgartiruvchi

devorchalar 18

2.4. Ikkinchi avlod EHMlari: tranzistorlar va to’plamli qayta ishlash tizimlari 18

2.5. Uchinchi avlod EHMlari: ko’p vazifalik 19

2.6. To’rtinchi avlod EHMlari: shaxsiy kompyuterlar 20

III bob. Sanoq tizimlari

3.1. Ikkilik sanoq tizimi 21

3.2. Sakkizlik sanoq tizimi 22

3.3. O’nlik sanoq tizimi 22

3.4. O’n oltilik sanoq tizimi 22

3.5. Bir sanoq tizimidan ikkinchisiga o’tish usullari 23

3.5.1. O’nlik sanoq tizimiga o’tish 24

3.5.2. Ikkilik sanoq tizimiga o’tish 24

3.5.3. Sakkizlik sanoq tizimiga o’tish 25

3.5.4. O’n oltilik sanoq tizimiga o’tish 26

3.6. Har xil sanoq tizimlarida kasr sonlar 26

IV bob. Kompyuter tuzilishi

4.1. Markaziy protsessor 28

4.2. Xotira 29

4.3. O’quv/yozuv moslamalari 32

4.4. Axborot tashish kanallari 34

4.5. Intel protsessor turkumlari 36

4.6. Markaziy protsessor registrlari 37

4.6.1. 16 bitli registrlar 37

4.6.2. 32 bitli registrlar 38

4.7. Sonli qo’shma protsessor registrlari 40

4.8. Xotirani manzillash usullari 40

4.8.1. Haqiqiy usul 41

4.8.2. 16 bitli himoyalangan usul 42

4.8.3. 32 bitli himoyalangan usul 43

4.9. Markaziy protsessorda uzilishlar tushunchasi 43

V bob. Assembler tilida dasturlash

5.1. Mashina tili 45

5.2. Assembler tili 45

5.3. O’zgaruvchilarni e’lon qilish 46

5.4. O’zgarmaslar, ifodalar va direktivalar 49

5.5. Asosiy amallar va ular qabul qiladigan qiymatlar 54

5.6. Assemblerda o’quv/yozuv 58

5.7. Birinchi dastur 61

5.8. Dasturni kompilyator orqali yig’ish 63

5.9. Obyekt fayllarni ulash 64

5.10. Buyruqlar qatorida NASM buyrug’i kalitlari 65

VI bob. Assembler tili asoslari

6.1. Ishorali va ishorasiz butun sonlar 69

6.2. Butun sonlar ustida arifmetik amallar 71

6.2.1. Qo’shish va ayirish 71

6.2.2. Ko’paytirish va bo’lish 74

6.3. Qiymatlar o’lchamini kattalashtirish va kichiklashtirish 77

6.4. Boshqaruv buyruqlari 79

6.4.1. Taqqoslash buyrug’i 80

6.4.2. Tarmoqlash buyruqlari 80

6.4.3. LOOP buyrug’i 85

6.5. Amaliy dastur: Tub sonlarni topish 86

VII bob. Mantiqiy amallar va bitlarni siljitish buyruqlari

7.1. Bitlarni siljitish buyruqlari 89

7.1.1. Mantiqiy siljitish 90

7.1.2. Arifmetik siljitish 90

7.1.3. Halqasimon siljitish 91

7.2. Dasturlashda siljitish buyruqlaridan foydalanish 93

7.3. Bitlar ustida mantiqiy amallar 94

7.3.1. AND amali 94

7.3.2. OR amali 95

7.3.3. XOR amali 96

7.3.4. NOT amali 96

7.3.5. TEST buyrug’i 97

7.4. Mavzular yuzasidan mashqlar 97

VIII bob. Qismli dasturlash

8.1. Vositali manzillash 101

8.2. Qismli dastur tuzish 102

8.3. Stack 107

8.4. CALL va RET buyruqlari 109

8.5. Mahalliy nishonlar 110

8.6. Stack orqali qiymatlar jo’natish 112

8.7. ENTER va LEAVE buyruqlari 117

8.8. LEA buyrug’i 119

8.9. Assembler va C dasturlarini bog’lash 124

8.10. Qism dasturlarida qayta kirish va o’z-o’zini chaqirish tushunchalari 128

8.11. Chuqur o’rganuvchilar uchun amaliy dastur 132

IX bob. Makro vositalar

9.1. Bir satrli makrolar 136

9.1.1. %DEFINE makro direktivasi: Umumiy uslub 136

9.1.2. %XDEFINE makro direktivasi: Kengaytirilgan uslub 139

9.1.3. %UNDEF makro direktivasi: Aniqlangan makrolarni bekor qilish 140

9.1.4. %ASSIGN direktivasi: Makro o’zgaruvchilar 140

9.1.5. %DEFSTR, %STRLEN va %SUBSTR makro direktivalari: Qatorli o’zgarmaslar bilan ishlash 140

9.1.6. %INCLUDE makro direktivasi: Boshlang’ich fayllarni dasturga

qo’shish 141

9.2. Makro takrorlanish 141

9.3. Ko’p satrli makrolar 143

9.3.1. Qiymat berish va qabul qilish usullari 145

9.3.2. %ROTATE makro direktivasi 147

9.3.3. Makrolarda mahalliy nishonlar 149

9.4. Dasturni shartli yig’ish 151

9.4.1. Makroni aniqlanganligini tekshirish 153

9.4.2. Matn tengligini tekshirish 154

9.4.3. Qiymat turlarini tekshirish 155

9.5. Mezoniy makrolar 156

9.6. Amaliy dastur: Lotindan kirillga 159

X bob. Assemblerda qoliplar va jadvallar

10.1. Qoliplarni e’lon qilish 164

10.2. Qolip kataklariga murojaat etish 165

10.3. Jadvallar 167

10.4. Jadvallarni e’lon qilish 170

10.5. Jadval kataklariga murojaat qilish 171

10.6. Qoliplapga mo’ljallangan buyruqlar 173

10.7. Amaliy dasturlar: Saralash 179

XI bob. O’nli kasrlar

11.1. Sonli qo’shma protsessor 183

11.2. O’nli kasr sonlar andozasi 183

11.3. Sonli qo’shma protsessor registrlari 185

11.4. Sonli qo’shma protsessor asosiy buyruqlari 187

11.4.1. Qiymatni yuklash va o’qish buyruqlari 187

11.4.2. Qo’shish va ayirish buyruqlari 189

11.4.3. Ko’paytirish va bo’lish buyruqlari 190

11.4.4. Taqqoslash buyruqlari 192

11.5. Qo’shimcha buyruqlar 193

11.6. Amaliy dastur: Kvadrat ildiz 195

XII bob. Fayllar bilan ishlash

12.1. Operatsion tizimda fayllar tushunchasi 198

12.2. Tizim chaqiriqlari 202

12.3. Fayllar bilan assemblerda ishlash 204

12.3.1. Xususiy holat: Linux 205

12.3.2. Xususiy holat: Windows 212

12.4. Amaliy dastur: Lotindan kirillga 217

Ilova A. Buyruqlar qatorida ishlash

A.1. Buyruqlar umumiy ro’yxati 222

A.2. Linux tizim buyruqlari 223

A.2. Windows tizim buyruqlari 225

Ilova B. Nasmni o’rnatish

B.1. NASMni Linuxda o’rnatish 228

B.1.1. Debian yoki Ubuntu foydalanuvchilari uchun 228

B.1.2. Fedora, SUSE, Mandrive, Cent OS, Doppix yoki Red Hat foydalanuvchilari uchun 229

B.1.3. Umumiy usul 229

B.2. NASMni Windowsda o’rnatish 230

B.2.1. Birinchi usul 230

B.2.2. Ikkinchi usul 231

B.2.3. Umumiy usul 231

Ilova C. C kompilyatorlari va obyekt fayllarni ular orqali ulash

C.1 Linuxdagi mavjud C kompilyatorlari 232

C.1.1. GCC kompilyatori 232

C.2. Windowsdagi mavjud C kompilyatorlari 232

C.2.1. GCC kompilyatori 232

C.2.2. Microsoft Visual Studio 233

C.2.3. LCC-WIN32 kompilyatori 234

 

Ilova D. nasm-io.inc fayli 235

Ilova E. Buyruqlar ro’yxati 238

Ilova F. Atamalar 266

Ilova G. Foydalanilgan adabiyotlar 270

Published in: ||on March 23rd, 2012 |No Comments »