O‘ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR VAZIRLIGI MUHAMMAD AL – XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI FARG‘ONA FILIALI “Kompyuter injiniring” fakulteti Komyuter injiniring yo‘nalishi 722-21 – guruh talabasi Muxammadibroximova Muazzamning “KOMYUTER ARXITEKTURASI” fanidan tayyorlagan AMALIY MASHG‘ULOT ISHLARI Topshirdi: Muhammadibrohimova M. 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. 1. "Operatsiya-operand" xisoblashlar nima? Javob: Operatsiya operand "xisoblashlar modeli" tipik operatorlarni o'z ichiga oladi va ulardan foydalanib amallarni bajaradi. Xisoblashlar modelida matematik elementlar va ularning o'zaro aloqalari mavjud bo'lishi mumkin. "Operatsiya-operand" xisoblashlarda qanday matematik amallar ishlatiladi? 2. Xisoblashlarda operatsiyalar va operandlar qanday tartibda qo‘shiladi yoki ajratiladi? Javob: Masalan, qo'shish, ayirish, ko'paytirish, bo'lish va boshqa matematik amallarni bajarish uchun operandlar yoki qiymatlar o'zgaruvchilar yoki sonlar bo'lishi mumkin. Operatsiya operand "xisoblashlar modeli" kodning bir qismini tashkil etadi va matematik amallar yordamida to'plamni boshqarish imkoniyatini ta'minlayadi. 3. "Operatsiya-operand" xisoblashlarda qanday xatolar aniqlanishi va ishlatilishi mumkin? Javob: 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. 4. "Operatsiya-operand" xisoblashlarining kompyuter ilmidagi ta'qibi nimalardan iborat? JAVOB: 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.