Adreslash usuli - bu buyruqning manzil kodidan operandning bajarilish manzilini shakllantirish usuli. Adreslash usuli axborotni qayta ishlash jarayonining parametrlariga sezilarli ta'sir ko'rsatadi. Ba'zan buyruq har bir manzil uchun alohida maydonlar mavjud. Bilvosita adreslashda manzil maydoni oddiygina mavjud emas yoki u barcha kerakli manzillarni o'z ichiga olmaydi - yetishmayotgan manzil operatsiya kodi bilan nazarda tutilgan. Bilvosita adreslash keng qo'llaniladi, chunki u buyruq uzunligini qisqartirishga imkon beradi.
Bevosita adreslash bilan buyruqning manzil maydoni manzil o'rniga operandni o'z ichiga oladi. Bu usuldan arifmetik amallarni, taqqoslash amallarini bajarishda, shuningdek registrlarga konstantalarni yuklashda foydalanish mumkin.
Bevosita adreslashda buyruqlarning 50-60% da operand uzunligi 8 bitdan oshmaydi va 75-80% - 16 bit va faqatgina 20-25% hollarda bevosita operand 16 bitdan ortiq uzunlikka ega bo’ladi. E.Tanenbaum ga ko'ra [152], 98% hollarda bevosita operand 13 bitga to'g'ri keladi. Shunday qilib, aksariyat hollarda o'n olti bit etarli, ammo manzillarni hisoblash uchun uzunroq konstantalar talab qilinishi mumkin.
To’g’ridan-tog’ri adreslash. To'g'ridan-to'g'ri yoki mutlaq adreslashda manzil kodi murojaat qilingan xotira yacheykasining raqamini to'g'ridan-to'g'ri ko'rsatadi, ya'ni manzil kodi bajarilish manziliga to'g'ri keladi.
Foydalanish qulayligi bilan bir qatorda usulning muhim kamchiliklari bor - manzil maydonining cheklangan hajmi, chunki katta hajmli xotiraga kirish uchun uzun manzil maydoni kerak. Shu bilan birga, buyruqda ko'rsatilgan manzilni hisob-kitoblar jarayonida o'zgartirib bo'lmasligini yanada muhim nomukammal deb hisoblash mumkin (har qanday holatda ham bunday o'zgartirish tavsiya etilmaydi). Bu dasturni (va ma'lumotlarni) xotiraga o'zboshimchalik bilan joylashtirish imkoniyatini cheklaydi.
Registrli adreslash. Registrli adreslash (RA) to'g'ridan-to'g'ri adreslashga o'xshaydi. Farqi shundaki, buyruqning manzil maydoni xotira yacheykasini emas, balki protsessor registrini ko’rsatadi . Registrning manzilini bundan keyin R harfi bilan belgilaymiz. Odatda, bu holda manzil maydonining o'lchami uch yoki to'rt bitni tashkil qiladi, bu esa mos ravishda 8 yoki 16 umumiy maqsadli registrlardan (UMR) birini belgilash imkonini beradi.
Indeksli adreslash. Indeksli adreslashda (IA) AB maydoni xotira yacheykasining manzilini o'z ichiga oladi va registr (aniq yoki bilvosita ko'rsatilgan) ushbu manzilga nisbatan suriladi. Ko'rinib turibdiki, bu adreslash usuli registrga asoslangan adreslashga o'xshaydi. Indeksli adreslashda AB maydoni baza rolini o'ynaydigan xotira yacheykasining to'liq o'lchamli manzilini o'z ichiga olganligi sababli, bu maydonning uzunligi asosiy registr manziliga qaraganda kattaroq. Shunga qaramay, operandning bajarilish manzilini hisoblash aynan o’xshash.
Blokli adreslash. Blokli adreslash xotiraning qo’shni yacheykalari, ishlov berish birligi ma’lumotlar bloki bo’lib, buyruqlarda qo'llaniladi, ular uchun ishlov berish birligi qo'shni xotira kataklarida joylashgan ma'lumotlar blokidir. Bu usul tashqi xotira qurilmalari bilan ishlashda va vektorlar bilan ishlashda juda foydali. Blokni tavsiflash uchun odatda blokning birinchi yoki oxirgi elementi saqlanadigan katakning manzili va baytlar yoki katakchalar soni bilan berilgan blok elementlarining umumiy soni olinadi. Blokning uzunligi o'rniga blokning oxirgi elementidan keyin qo'yilgan "blokning oxiri" maxsus belgisidan foydalanish mumkin.
Stekli adreslash. Adreslashning bunday turi buyruqlarning stekli arxitekturasida ko’rib chiqilgan.
Buyruqlar oqimini boshqarish
HM buyruqlar tizimida hisoblar ketma-ketligini o'zgartirishi mumkin bo'lgan uchta turdagi buyruqlar mavjud:
shartsiz o’tishlar;
shartli o’tishlar ;
protsedura chaqiruvlari va protseduralardan qaytish.
Dasturda ko'p sonli shartsiz o’tish buyruqlarining mavjudligi noto'g'ri dasturlash uslubining belgisi deb hisoblanishiga qaramay, bunday buyruqlar har qanday HM ning BTAga kiritilishi shart. Assambler tilida ularni belgilash uchun odatda inglizcha jump (sakrash) so'zi ishlatiladi. Shartsiz o'tish buyrug'i berilgan manzilga hech qanday shartlarni tekshirmasdan o'tishni ta'minlaydi. Shartli o’tish faqat ma'lum bir shart bajarilgan taqdirdagina yuzaga keladi, aks holda dasturning keyingi buyrug’i bajariladi. Aksariyat HM ishlab chiqaruvchilari bunday ko'rsatmalarni belgilash uchun assemblerlarda branch so'zidan foydalanadilar.
Uzilishlar - bu dasturning o'zi emas, balki boshqa sabablar bilan bog'liq bo'lgan boshqaruv oqimidagi o'zgarishlar. Uzilishlar odatda kiritish-chiqarish jarayoni bilan bog'lanadi. Misol uchun, dastur diskka ma'lumotni uzatishni boshlash va uzatish tugashi bilanoq uzilishni boshlashni buyurishi mumkin. Istisnolarda bo'lgani kabi, uzilishlar dasturni to'xtatadi va boshqaruvni ma'lum bir harakatni amalga oshiradigan Interrupt Service Routine (ISR) yoki uzilishni ishlov beruvchiga o'tkazadi. Ushbu amallar bajarilgandan so'ng, uzilishni ishlov beruvchi boshqaruvni uzilgan dasturga o'tkazadi. U to'xtatilgan jarayonni to'xtatilgan paytdagi holatda qayta boshlashi kerak. Bu shuni anglatadiki, barcha ichki registrlarning oldingi holati (ya'ni uzilishgacha bo'lgan holat) tiklanishi kerak.
Do'stlaringiz bilan baham: |