O‘ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR VAZIRLIGI MUHAMMAD AL – XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI FARG‘ONA FILIALI “Kompyuter injiniring” fakulteti Kompyuter injinering yo‘nalishi 712-21 – guruh talabasi Mamatyusupov Xayotbek ning “KOMYUTER ARXITEKTURASI” fanidan tayyorlagan AMALIY MASHG‘ULOT ISHLARI Topshirdi: Mamatyusupov.X Qabul qildi: O.I.Ergashev Farg‘ona 2024 Amaliy mashg‘ulot №2. Mavzu: “Operatsiya-operand” xisoblashlar modelini o‘rganish Ishdan maqsadi: “Operatsiya-operand” xisoblashlar modelini o‘rganish va amaliy tahlil qilish. Nazariy qism Turli xil hsoblash mashinalarning buyruq tizimlaridagi farqlarga qaramay, operatsiyalarning asosiy turlarini ularning har qandayida topish mumkin.Buyruq tizimlarining quyidagi asosiy tasnifi qabul qilingan: ma'lumotlar uzatish buyruqlari; arifmetik va mantiqiy ishlov berish buyruqlari; konversiya buyruqlari; kiritish / chiqarish buyruqlari; buyruq oqimini boshqarish. Mashinada ko‘rsatmalarning eng keng tarqalgan turi – ekspeditorlik ko‘rsatmalari. Ushbu buyruqlar quyidagi ma'lumotlarni o‘z ichiga oladi: operandlarning manba va manzillari - xotira yacheykalarining manzillari, protsessor registrlari raqamlari yoki operandlar stekda joylashganligi to‘g‘risidagi ma'lumotlar; aniq yoki bilvosita ko‘rsatilgan ma'lumotlarning uzatilishi (odatda baytlarda yoki so‘zlarda); har bir operandga murojaat qilish usuli, uning yordamida buyruqning manzil qismidagi tarkib operandning fizik adresiga aylantirilishi mumkin. Ushbu buyruqlar guruhi protsessor va OX o‘rtasida, protsessor ichida va xotira yacheykalari o‘rtasida ma'lumot uzatishni ta'minlaydi. Protsessor va xotira o‘rtasida o‘tkazmalar registrdan xotiraga, xotiradagi o‘tkazmalar esa xotiradan xotiraga, shu jumladan protsessorda oraliq ishlov berish bilan uning yacheykalari orasidagi o‘tkazmalar hisoblanadi. Mantiqiy va arifmetik ishlov berish buyruqlari guruhiga ma'lumotlarni taqdim etishning turli shakllarida arifmetik va mantiqiy ishlov berishni ta'minlovchi buyruqlar kiradi. Raqamlarni tasvirlashning har bir shakli uchun odatda standart operatsiyalar to‘plami taqdim etiladi. Natija hisoblashdan tashqari, arifmetik va mantiqiy amallar ALUda ushbu natijani tavsiflovchi belgilar (bayroqlar) hosil bo‘ladi. Eng ko‘p yozilgan belgilar: Z (Zero) - nol natija; N (Negative) - salbiy natija; V (Over-flow) - bit katakchasining to‘lib ketishi; C (carry) –o‘tkazish imkoniyati. Suzuvchi nuqta shaklida berilgan raqamlar bilan ishlash uchun ko‘pchilik mashinalar quyidagilarni ta'minlaydi: asosiy arifmetik amallar: qo‘shish, ayirish, ko‘paytirish va bo‘lish; xususiyatlarning rivojlanishi bilan ikkita haqiqiy sonni taqqoslaydigan taqqoslash operatsiyalari: =, <>,>, <, <=,> =; konversiya operatsiyalari: taqdimot shakli (qat'iy va o‘zgaruvchan nuqta o‘rtasida), taqdimot formati (bitta va ikkita aniqlik). Standart XM ko‘rsatmalar tizimi odatda so‘zlarning alohida bitlari yoki boshqa adreslanadigan birliklar juftliklari bo‘yicha har xil mantiqiy operatsiyalarni bajarish bo‘yicha ko‘rsatmalarni o‘z ichiga oladi. Bunday buyruqlar belgilar va mantiqiy ma'lumotlarni qayta ishlashga mo‘ljallangan. Qo‘llab-quvvatlanadigan mantiqiy operatsiyalarning minimal to‘plami YO‘Q, VA, YOKI. ХМ-da o‘nlik raqamlar ikkilik kodlangan shaklda namoyish etiladi. Zamonaviy mashinalarning ko‘rsatmalar tizimida hisoblashlar butun sonli arifmetik ko‘rsatmalar yordamida simulyatsiya qilinadi. Kiritish-chiqarish buyruqlarini periferik qurilmani (PQ) boshqarish, uning holatini, kirish va chiqishini tekshirish uchun buyruqlarga bo‘lish mumkin. Periferik qurilmani boshqarish buyruqlari boshqaruv panelini ishga tushirish va kerakli harakatni ko‘rsatish uchun ishlatiladi. Masalan, lentani bitta yozuvni orqaga qaytarish yoki oldinga surish bo‘yicha ko‘rsatma berilishi mumkin.Bunday ko‘rsatmalarning talqini PQ turiga bog‘liq. Kiritish-chiqarish holatini tekshirish buyruqlari Kiritish-chiqarish moduli va unga ulangan PQlarning holatini tavsiflovchi har xil belgilarni sinash uchun ishlatiladi. PQ bilan ma'lumotlar almashinuvi kiritishva chiqarish buyruqlari bilan ta'minlanadi. Kiritish buyruqlari Kiritish-chiqarish moduliga PQ dan ma'lumotlar elementini (bayt yoki so‘z) qabul qilishni va ma'lumotlar shinasiga joylashtirishni buyuradi, va chiqarish buyruqlari Kiritish-chiqarish modulini ma'lumotlar shinasidan qabul qilishni va uni PQ ga yuborishini ta'minlaydi. Buyruq oqimi buyruqlari hisob-kitoblar ketma-ketligini o‘zgartirishi mumkin bo‘lgan uch turdagi buyruqlarni o‘z ichiga oladi: shartsiz o‘tish; shartli o‘tish; protsedurani chaqirish va protseduradan qaytarish. Shartli o‘tish ma'lum bir shart bajarilgandagina sodir bo‘ladi, aks holda tabiiy tartibda navbatdagi dastur buyrug‘i bajariladi. O‘tish amalga oshiriladigan shart ko‘pincha oldingi arifmetik yoki mantiqiy operatsiya natijasining belgisidir.Funksiyalarning har biri protsessor bayroqlari registrining o‘z bitida o‘rnatiladi. Zamonaviy XMlar protsedura mexanizmidan intensiv foydalanish bilan ajralib turadi.Protsedurani dasturning istalgan joyida chaqirish mumkin.XMuchun bunday chaqiruv shu nuqtada protsedurani amalga oshirish kerakligini anglatadi va keyin chaqiruv qilingan joydan keyin darhol ortga qaytadi. Protsessual mexanizm dasturning joriy nuqtasidan protseduraning boshlang‘ich buyrug‘iga o‘tishni ta'minlaydigan protsedura chaqiruv buyruqlariga asoslangan va chaqiruv buyrug‘idan so‘ng darhol nuqtaga qaytish uchun buyruqlarni protseduradan qaytarish tushuniladi. Ushbu rejim chaqiruv paytida buyruq hisoblagichi tarkibidagi mavjud holatni saqlash va protseduradan chiqishda uni tiklash uchun vositalar mavjudligini nazarda tutadi. Protsessor va RAM Hammangizga ma'lumki, kompyuter miyasi - protsessor. U kompyuter ichida sodir bo‘lgan barcha jarayonlarni boshqaradi. 6.1-rasm. Operativka ishlash jarayoni Protsessor kompyuterdagi barcha qurilmalar va jarayonlarni boshqaradi Protsessor rus, ingliz va boshqa tillarni tushunmaydi. U o‘zi uchun oddiy buyruqlar bo‘lgan raqamlarni tushunadi, masalan: xotiradan ba'zi ma'lumotlarni oling, ba'zi ma'lumotlarni qo‘shingva hokazo. Protsessor ko‘plab buyruqlarni biladi va ularning har biri o‘z raqamli kodiga ega, masalan: 35 - ma'lumotlarni bir xotira joyidan boshqasiga nusxalash 48 - 2 ta raqamni qo‘shing 12 - mantiqiy operatsiyani bajarish yoki (yoki) Protsessorda muhandislar tomonidan tuzilgan barcha ko‘rsatmalar va ularning raqamli kodlari to‘plami protsessor arxitekturasi deb ataladi. Bu apparat arxitekturasi emas, balki dasturiy ta'minotdir.Har bir protsessor ishlab chiqaruvchisi o‘zining arxitekturasini yaratadi.Bu shuni anglatadiki, bir xil buyruq turli protsessorlarda har xil raqamli kodlarga ega bo‘ladi. 6.2-rasm. Operativka arxitekturasin solishtirish Shunday qilib, protsessor kichik raqamli ko‘rsatmalarni bajarishi mumkin.Ammo ularni qaerdan oladi?Operativ xotiradan.RAMni juda ko‘p kichik hujayralar deb tasavvur qiling.Har bir hujayraning o‘ziga xos manzili bor - bu oddiy raqam, masalan 2001 yil. Yacheykaning manzilida protsessor ma'lumotlarni so‘rashi mumkin va RAM ularni qaytarib beradi. Shuningdek, protsessor ushbu katakchaga yangi ma'lumotlarni yozishi mumkin. Protsessor uchun ko‘rsatmalar xotira yacheykasida saqlanadi. Ammo ular raqamli ravishda ifodalanishi mumkin bo‘lgan har qanday boshqa ma'lumotlarni saqlashi mumkin, masalan: harflar, rasmlar, musiqa yoki videolar. Protsessor RAMga yacheykaning manziliga murojaat qiladi, operativ xotira unga ushbu yacheykadan buyruq qaytaradi, protsessor buyruqni bajaradi.Keyin protsessor yana xotiraga kiradi (boshqa yacheykaga), buyruq oladi, uni bajaradi va bu sikl qaytaqayta takrorlanadi. Ya'ni, protsessor har doim berilgan buyruqlar ketmaketligini (raqamli kodlar) bajaradi.Ushbu ko‘rsatmalar ketma-ketligi mashina kodi deb nomlanadi.. Protsessorni qandaydir dasturni bajarishga majbur qilish uchun, masalan, 2+2*2 tenglamani echish uchun, biz oddiy raqamli ko‘rsatmalar zanjirini yozishimiz kerak. Yuqorida sanab o‘tilgan buyruq kodlari endi shunday ko‘rinadi: MOV (raqamli kod 35) - ma'lumotlarni bitta xotira joyidan boshqasiga nusxalash ADD (raqamli kod 48) - 2 ta raqam qo‘shing ORL (raqamli kod 12) - mantiqiy OR yoki (yoki) operatsiyani bajarish Shuningdek, buyruqlar nomiga buyruqlar bajarilishi uchun qo‘shimcha ma'lumot beradigan operandlar (bir yoki bir nechtasi) qo‘shilgan 6.3-rasm. Operandlar va operatsiyalar "Hello, World!" Iborasini chiqaradigan assembler dasturining misoli section.text global_start _start: mov edx,len // qator uzunligi mov ecx,msg // yozilayotgan habarga ishora mov ebx,0// xato yo‘q int0x80 // buyruqni uzish signali mov eax,1 // chiqish = exit int 0x80 section.data msg db 'Hello, world!', 0xA // yangi qator len equ $ - msg Yuqori darajadagi dasturlash tillari Shunday qilib, protsessorning har bir arxitekturasi uchun bir xil dasturni assemblerda "qayta yaratishingiz" kerak bo‘ladi. Har bir arxitektura uchun siz alohida Assembler vositasini yuklab olishingiz va u orqali kodingizni ishlatishingiz kerak. Bu ko‘chirishni murakkablashtiradi. Bunga katta dasturlarni yozishning murakkabligi va yangi vositalarni yaratish zarurligini qo‘shing. Shu tarzda yuqori darajadagi dasturlash tillari paydo bo‘la boshladi. Ularning mohiyati shundan iboratki, assemblerdagi buyruqlar zanjirlari alohida funksiyalarga birlashtirilgan. Endi "Hello, World!" Xabarini ko‘rsatish uchun bitta buyruq kifoya. Kompilyatsiya qilinadigan tillar Kompilyatsiya qilingan dasturlash tilida yozilgan dastur har doim ishga tushirishdan oldin kompilyatsiya jarayonidan o‘tadi.Ya'ni, yozilgan barcha yuqori tartibli kodlar protsessor tushunadigan mashina kodiga aylantiriladi. 6.4-rasm. Operandlar va operatsiyalarni dasturlashda ishlatilishi Interpretatsiya qilinadigan tillar Kompilyatsiya qilinadigan tillar kod yozish vazifasini ancha osonlashtirdi. Ammo barcha protsessor arxitekturalarida va har qanday operatsion tizimda ishlaydigan dastur yozishingiz mumkin. Bu erda Python, PHP, Perl, Paskal va boshqa talqin qilingan dasturlash tillari paydo bo‘ladi. Bular yana yuqori darajadagi tillar bo‘lib, ular ham kod yozishni osonlashtiradi. Ammo ular kompilyatsiya qilinadigan tillarga qaraganda kamida ikkita afzalliklarga ega: • interpritatsiya qilingan tillardagi dasturlar tegishli interpritator o‘rnatilgan joyda ishlaydi dasturni sinab ko‘rish uchun har safar yozilgan kodni kompilyatsiya qilishning hojati yo‘q. Ushbu kod tezda amalga oshiriladi, bu dasturni ishlab chiqishni tezlashtiradi Interpritator kompilyator bilan deyarli bir xil ishlaydi, lekin bitta kichik, ammo muhim xususiyati bilan: yuqori tartibli kodni mashina kodiga emas, balki undan past bayt kodiga o‘zgartiradi. Bytecode - bu arxitekturasidan qat'i nazar, barcha protsessorlar tomonidan tushuniladigan kod. Bayt kodi - bu protsessor tushunadigan eng past til. Mashina kodi - bu raqamli buyruqlar zanjiri.Barcha protsessor ko‘rsatmalari muhandislar tomonidan ishlab chiqilgan protsessor arxitekturasini yaratadi.Turli xil protsessor ishlab chiqaruvchilari bir xil ko‘rsatmalar uchun turli xil raqamlarga ega bo‘lishlari mumkin. Assembler - bu assembler kodni mashina kodiga aylantiruvchi vosita. Dasturlarni mashina kodiga qaraganda assembler tilda yozish osonroq, ammo baribir bu muammo. Kompilyator va Interpreter - bu yuqori darajadagi kodni protsessor tushunadigan kodga o‘zgartiradigan vositalar. Yuqori darajadagi til - bu oddiy, tushunarli funksiyalarga ega bo‘lgan katta dasturlarni yaratishga imkon beruvchi ertak. Nazorat savollari. "Operatsiya-operand" xisoblashlar nima? "Operatsiya-operand" xisoblashlarda qanday matematik amallar ishlatiladi? Xisoblashlarda operatsiyalar va operandlar qanday tartibda qo‘shiladi yoki ajratiladi? "Operatsiya-operand" xisoblashlarda qanday xatolar aniqlanishi va ishlatilishi mumkin? "Operatsiya-operand" xisoblashlarining kompyuter ilmidagi ta'qibi nimalardan iborat? Javoblar 1. "Operatsiya-operand" xisoblashlar nima? "Operatsiya-operand" deganda, "operand" o'zgaruvchilarni qanday amallar bilan birlashtirish va bajarishga o'xshash ma'lumotlar bo'lib, "operatsiya" esa bu o'zgaruvchilarni qanday amallar bilan birlashtirish vaqti. Bu ifoda, asosan, dasturlashda matematik amallarni bajarish uchun ishlatiladi. Operandlar odatda sonlar yoki o'zgaruvchilar bo'lishi mumkin. Masalan, "2 + 3" misolida, "+", yoki qo'shish, operatsiya bo'lib, "2" va "3" operandlar bo'lib, ularning yig'indisi natija sifatida chiqadi. Boshqa misollar: "5 * 4" da "*"- amaliyoti ko'paytirish operatsiyasi, "5" va "4" esa operandlar. "10 - 3" da "-" - ayirish amali, "10" va "3" esa operandlar. 2. Operatsiya-operand" xisoblashlarda qanday matematik amallar ishlatiladi? "Operatsiya-operand" xisoblashlarda qanday matematik amallar ishlatilishi, asosan, matematik amaliyotlardan foydalanishga bog'liq. Ba'zi eng ko'p ishlatiladigan amallar quyidagilardir: 1. Qo'shish (+): Ikki yoki undan ko'p operandni qo'shish uchun ishlatiladi. Masalan, 3 + 5 = 8. 2. Ayirish (-): Bir operanddan boshqa operandni ayirish uchun ishlatiladi. Masalan, 7 - 4 = 3. 3. Ko'paytirish (*): Ikki yoki undan ko'p operandni ko'paytirish uchun ishlatiladi. Masalan, 6 * 2 = 12. 4. Bo'lish (/): Bir operandni boshqa operandga bo'lish uchun ishlatiladi. Masalan, 8 / 2 = 4. 5. Darajaga oshirish (^): Bir operandni boshqa operandning darajasiga oshirish uchun ishlatiladi. Masalan, 2^3 = 8 (2 ni 3- darajaga ko'tarish). 6. Modul (%) : Birinchi operandni ikkinchi operandga bo'lib qoldiqni chiqarish uchun ishlatiladi. Masalan, 10 % 3 = 1 (10 ni 3 ga bo'lib qoldiqi 1). Bu amallar dasturlashda va matematik hisobotlarda keng qo'llaniladi. Raqam va o'zgaruvchilarning o'rniga qo'shiladigan bo'lgan bo'sh joylar ham bo'lish amaliyotida ishlatiladi. 3. Xisoblashlarda operatsiyalar va operandlar qanday tartibda qo‘shiladi yoki ajratiladi? Xisoblashlarda operatsiyalar va operandlar belgilangan tartibda qo‘shiladi yoki ajratiladi. Bunda operatorlar o‘qim vaqtida ishlatilishi qoidalarga mos ravishda yuritiladi: 1. Ajratish (Parantezlar) : Eslatma o‘lchamlarida va operatsiyalarda, parantezlar o‘rtasidagi amallar avval bajariladi. Bu, qoida "Qo‘shilgan Amallar Tartibi" (BODMAS) yoki "Ko‘paytirish va Bo‘lishning Amallarini Avval Bajarish" (PEMDAS) deb ham ataladi. Parantezlar operatorlar bilan boshqa operandlar o‘rtasida kengaytirilgan bo‘lsa, ular birinchi navbatda bajariladi. 2. Darajaga ko‘tarish: Darajaga ko‘tarish amalini (ko‘paytirishdan keyin) bajarish. 3. Ko‘paytirish va Bo‘lish: Ko‘paytirish va bo‘lish amallari, ularni o‘qib, farzand amallarini bajarish tartibida bajariladi. 4. Qo‘shish va Ayirish: Qo‘shish va ayirish amallari, ularni o‘qib, farzand amallarini bajarish tartibida bajariladi. Shuningdek, ikki yoki undan ko‘p tengliklar o‘rinli operandlar bo‘lsa, ular o‘ngdan chapga to‘planganadi. Bunda mos operatorlar farzand operandlarga e’tibor qaratiladi. Raqam va o‘zgaruvchilarning yana bir amalni ko‘rsatish, ularni o‘ngdan chapga to‘planganadi, lekin ularni bajarish tartibida qo‘shish yoki ayirish amallari bilan ajratilmaydi. Bu tartib odatda "Qo‘shish va Ayirish"ni quyidagi shaklda yozish yoki ifodalash uchun ishlatiladi: A+B−C Yoki "Ko‘paytirish va Bo‘lish"ni quyidagi shaklda yozish uchun: A∗B/ Shuningdek, C darajaga ko‘tarishni aytish uchun quyidagi shakl ishlatiladi: AB Odatda, berilgan amal uchun, dasturni yozishda bu qoidalarga amal qilish o‘n majburiyemas, ammo bu shakl qismlarini ajratishga yordam beradi va dastur kodini o‘qishni va tushunishni osonlashtiradi. 4.Operatsiya-operand" xisoblashlarda qanday xatolar aniqlanishi va ishlatilishi mumkin? "Operatsiya-operand" xisoblashlarda qanday xatolar aniqlanishi va ishlatilishi mumkinligi dasturlashda juda muhimdir, chunki xatolar dastur funktsionalligini to'liq yo'qotishi yoki to'g'ri natija olishni ta'minlashda to'sqinlikka olib kelishi mumkin. Quyidagi eng ko'p uchratiladigan xatolar: Syntax (Tafsilot): Bu xatoliklar dastur kodining formal tuzilishiga zarar keltiradi. Misol uchun, operatorlarning noto'g'ri tartibda yozilishi yoki xususiy matnlar qo'shilishi. Logical (Mantikaviy): Bu xatoliklar dastur davomida bo'lishi mumkin, va dasturni qoniqish yoki noto'g'ri natijaga olib kelishi mumkin. Misol uchun, darajaga ko'tarish amalida noto'g'ri daraja yoki sonlar ishlatilishi. Run-time (Ish vaqti): Bu xatoliklar dastur ishga tushgandan so'ng aniqlanadi. Misol uchun, bo'lish amalida nolga bo'lish xatoliklarining dastur davomida aniqlanishi. Xatolar aniqlanishi va tuzatilishi uchun dasturlashda ko'p vositalar mavjud. Keng qo'llaniladiganlardan ba'zilari: Kompilyatorlar: Bu dasturlar kodni sintaksisini tekshirib, xatolarni aniqlab chiqadi. Debuggerlar: Bu vositalar dastur ish vaqti xatolarini aniqlash va tuzatishga yordam beradi. Unit testing dasturlari: Dastur qismlarini avtomatik sinovga qo'yish va xatolarni aniqlashga imkoniyat beradi. Dastur dasturi bilan yaxshi ko'p tajribaga ega bo'lish va dastur kodini ravishda yozish yoki qayta ishlash vaqtini oladi, ammo bu asosiy qo'llanmalardan biri hisoblanadi, chunki hatolarni topish va to'g'ri ishga tushirish dasturlash jarayonining bir qismidir. 5. "Operatsiya-operand" xisoblashlarining kompyuter ilmidagi ta'qibi nimalardan iborat? Operatsiya-operand" xisoblashlarining kompyuter ilmidagi ta'qibi asosan matematik amallarni bajarish jarayoniga asoslangan. Bu amallar birlashmasi, kompyuterda raqamli ma'lumotlar bilan ishlashning asosiy qismi bo'lib, bu, xususan, kompyuter dasturlash va hisoblash texnologiyalarida keng qo'llaniladi. Ta'qib tushunchasi quyidagi asosiy qismatlarga asoslangan: Arifmetika: Kompyuterda matematik amallar bajarilishi uchun juda muhimdir. Bu qismat, qo'shish, ayirish, ko'paytirish, bo'lish va darajaga ko'tarish kabi arifmetik amallar va ularning operatorlari bilan bog'liq. Qiyosiylik (Comparison): Ta'qibning boshqa bir qismati, qiymatlar o'rtasida solishtirish va taqqoslash amallarini o'z ichiga oladi. Misol uchun, ikki qiymatning tengligini solishtirish (==), katta yoki teng (>=, <=), kichik yoki teng (<, >), farqli (!=) kabi amallar. Mantiqiy operatsiyalar: Bu qismat, mantiqiy amallarni bajarishga oid. Mantiqiy operatsiyalar, masalan, "va" (and), "yoki" (or), "emas" (not) kabi mantiqiy amallarni o'z ichiga oladi. Bitwise amallar: Bu amallar bitlar sifatida ifodalangan sonlar bilan ishlashda foydalaniladi. Masalan, va, yoki, yoki emas, xor, o'zgartirish (and, or, xor, not) kabi amallar. Qaytarish (Assignment): Qiymatlarni o'zgaruvchilarga tayinlash yoki yangilash uchun foydalaniladi. Misol uchun, = operatori o'zgaruvchiga qiymat tayinlash uchun ishlatiladi. "Operatsiya-operand" xisoblashlarining kompyuter ilmidagi ta'qibi, amallar va operandlar orasidagi mantiqiy munosabatlarni aniqlovchi, tekshiruvchi va dasturlash jarayonida ishlatiladi. Bu ta'qib, amallar va operandlar orasidagi mantiqiy aloqani to'g'ri aniqlash, operatsiyalarni bajarish tartibini muhokama qilish, xatolarni aniqlash va to'g'ri xisoblashni ta'minlash uchun juda muhimdir.