|
8. protsessorning imkoniyatlarini o‘rganish. Mp kr580-da ma’lumotlarni maskalash va shartli o‘tishni tashkil qilishning dasturiy usullarini o‘rganish nazariy qism
|
bet | 2/2 | Sana | 19.05.2024 | Hajmi | 2,94 Mb. | | #244098 |
Bog'liq Ashurov Asliddin Kompyuterni 3-topshiriq wordMa’lumotlarni maskalash.
Turli vaziyatlarda, dasturlarni bajarayotganda, batareyadagi raqamning bir yoki bir nechta zaryadsizlanish holatini tekshirish yoki o‘zgartirish (maskalash) kerak. Buni quyidagi operatsiyalar yordamida amalga oshirish mumkin:
Akkumlyator va maskadagi raqamni mantiqiy ko‘paytirish - agar niqobning tegishli razryadida 0 yozilsa, raqamning zaryadsizlanishini o‘zgartiradi (0 ga o‘rnatiladi) va agar niqobning ushbu razryadida 1 yozilgan bo‘lsa, uni o‘zgartirmaydi;
Akkumlyator va maskadagi raqamni mantiqiy qo‘shish – agar mos keladigan maska zaryadsizlanishida 1 yozilgan bo‘lsa, raqamning zaryadsizlanishini 1 ga o‘rnatadi va agar niqobning ushbu zaryadsizlanishida 0 yozilgan bo‘lsa, uni o‘zgartirmaydi;
Akkumlyator va maskadagi mantiqiy» istisno yoki « raqamlar - agar niqobning tegishli razryadida 1 yozilgan bo‘lsa, raqamning tushirish.
Sikllarni tashkil qilish Ma’lumki, sikl muhim algoritmik tuzilma bo‘lib, biron bir dastursiz undan foydalanish mumkin emas.
Dasturning ma’lum bir qismining siklik bajarilishini shartli boshqaruvni uzatish buyruqlari yoki JMP shartsiz o‘tish buyrug’i yordamida tashkil qilish mumkin. Siklning bunday tashkil etilishi bilan uni tashkil etish bo‘yicha barcha operatsiyalar «qo‘lda» amalga oshiriladi. Ammo sikl kabi algoritmik elementning ahamiyatini hisobga olgan holda, 120 mikroprotsessor ishlab chiquvchilari sikllarni dasturlashni osonlashtiradigan buyruqlar tizimiga uchta buyruq guruhini kiritdilar. Ushbu buyruqlar ecx/cx registrini sikl hisoblagichi sifatida ham ishlatadi. Ushbu buyruqlar haqida qisqacha ma’lumot beramiz:
Loop o‘tish yorlig’i (Loop) — siklni takrorlaydi. Buyruq sikl hisoblagichini avtomatik ravishda kamaytirish bilan yuqori darajadagi tillarda for sikliga o‘xshash sikllarni tashkil qilish imkonini beradi. Komandaning vazifasi quyidagilar:
ecx/cx registrini bekor qilish;
ecx/cx registrini nol bilan taqqoslash:
agar (ecx/cx) > 0 bo‘lsa, u holda nazorat o‘tish yorlig’iga o‘tkaziladi;
agar (ecx / cx) = 0 bo‘lsa, u holda boshqaruv loop buyrug’idan keyin keyingi buyruqqa o‘tkaziladi.
Loop / Loopz o‘tish yorlig’i (Loop till cx < > 0 yoki Zero Flag = 0) - CX <> 0 yoki zf = 0 ga qadar siklni takrorlaydi. Loop va Loop buyruqlari mutlaq sinonimlardir, shuning uchun sizga ko‘proq yoqadigan buyruqdan foydalaning. Komandaning vazifasi quyidagi amallarni bajarishdir:
ecx/cx registrini bekor qilish;
ecx/cx registrini nol bilan taqqoslash;
zf nol bayrog’ining holatini tahlil qilish:
agar (ecx/cx) > 0 va zf = 1 bo‘lsa, boshqaruv o‘tish yorlig’iga o‘tkaziladi;
agar (ecx / cx) = 0 yoki zf = 0 bo‘lsa, boshqaruv loop buyrug’idan keyin keyingi buyruqqa o‘tkaziladi.
Loopne/loopnz o‘tish yorlig’i (Loop till cx < > 0 yoki nol bayroq=0) - CX <> 0 yoki zf = 1 ga qadar siklni takrorlaydi. Loopne va loopnz buyruqlari ham mutlaq sinonimlardir. Komandaning vazifasi quyidagi amallarni bajarishdir:
ecx/cx registrini bekor qilish; ecx/cx registrini nol bilan taqqoslash; zf nol bayrog’ining holatini tahlil qilish: agar (ecx/cx) > 0 va zf = 0 bo‘lsa, boshqaruv o‘tish yorlig’iga o‘tkaziladi; agar (ecx / cx)=0 yoki zf = 1 bo‘lsa, boshqaruv loop buyrug’idan keyin keyingi buyruqqa o‘tkaziladi.
Loope/loopz va loopne/loopnz buyruqlari ularning ishlash printsipi bo‘yicha o‘zaro bog’liqdir. Ular loop buyrug’ining harakatini zf bayrog’ini yanada tahlil qilish orqali kengaytiradilar, bu esa ushbu bayroqni indikator sifatida ishlatib, sikldan erta chiqishni tashkil qilish imkoniyatini beradi.
Loop, Loop/Loop va Loop/Loop tashkil etish buyruqlarining kamchiligi shundaki, ular faqat qisqa o‘tishlarni amalga oshiradilar (-128 dan +127 baytgacha). Uzoq sikllar bilan ishlash uchun shartli o‘tish buyruqlari va JMP buyrug’idan foydalanishingiz kerak bo‘ladi, shuning uchun sikllarni tashkil qilishning ikkala usulini ham o‘zlashtirishga harakat qilish zarur.
Shartli o‘tishni tashkil etish. MPga shartli o‘tishni tashkil etish 5 ta belgilangan bit (belgilar) ga ega bo‘lgan belgilar registri (F) yordamida amalga oshiriladi. Belgilar registrining barcha besh biti AMQ dagi operatsiyalar natijasida o‘rnatiladi:
Uzatish belgisi (C) 1 ga o‘rnatiladi, agar arifmetik buyruqni bajarayotganda akkumlyatorning to‘lib ketishi yoki siljish buyrug’i bajarilganda birlik katta yoki kichik zaryaddan chiqariladi.
Qo‘shimcha uzatish belgisi (AC)1 ga o‘rnatiladi, agar buyruqlar bajarilganda raqamning uchinchi toifasidan uzatish birligi paydo bo‘lsa tushirish holatini faqat o‘nlik tuzatish buyrug’i bilan tahlil qilish mumkin.
Belgining belgisi (S) 1 ga o‘rnatiladi, agar raqamning yettinchi (katta) soni 1 ga teng bo‘lsa. Mashina so‘zi -128 dan +127 gacha bo‘lgan raqam bilan ifodalanadi. Raqamning yettinchi toifasi raqam belgisini bildiradi. Agar u 0 bo‘lsa, unda raqam ijobiy, agar 1 bo‘lsa, u holda manfiy bo‘ladi.
Nol akkumlyator tarkibining belgisi (Z)1 ga o‘rnatiladi, agar buyruq bajarilgandan so‘ng natija nolga teng bo‘lsa (batareyaning barcha bitlari nolga teng), aks holda 0 zaryadga yoziladi.
Paritet belgisi (P) 1 ga o‘rnatiladi, agar batareyaning birlik bitlari soni teng bo‘lsa, aks holda bu zaryad nolga o‘rnatiladi.
Shartli o‘tish buyrug’i belgilar registrining (F) tegishli tushirish holatini tekshiradi.
Agar belgilar registrining tushirish holatini tekshirishda shart tasdiqlanmagan bo‘lsa, unda dasturning navbatdagi buyrug’i bajariladi, aks holda o‘tish sodir bo‘ladi. Barcha shartli o‘tish buyruqlari uch baytdan iborat: birinchi baytda buyruq kodi, ikkinchi va uchinchi baytlarda boshqaruv uzatish manzili mavjud. Shunday qilib, shartli o‘tish buyruqlari algoritmlarni yaratishga imkon beradi va dastur natijasining joriy qiymatiga qarab, ushbu dasturning turli bo‘limlariga 122 o‘tish mumkin bo‘ladi. Quyida ma’lumotlarni maskalash va shartli o‘tishni tashkil qilishdan foydalanadigan dasturga misol keltirilgan.
Buyruqlar funksiyasining tavsifi Shartsiz o‘tish buyruqlari:
- JMP_ B2_ B3 - buyruqning ikkinchi va uchinchi baytlaridan ma’lumotlarni buyruq hisoblagichiga yoziladi;
- PCHL-bir nechta hl registrlarining tarkibini buyruq hisoblagichiga yoziladi
Shartli o‘tish buyruqlari:
JNC-agar C = 0 belgisi bo‘lsa
JC-agar C = 1 belgisi bo‘lsa
JNZ-agar z = 0 belgisi bo‘lsa
JZ-agar z belgisi = 1 bo‘lsa
JPO-agar belgi p = 0 bo‘lsa
JPE-agar belgi p = 1 bo‘lsa
JP-agar s = 0 belgisi bo‘lsa
JM-agar belgi bo‘lsa s = 1
keyin buyruqning ikkinchi va uchinchi baytlarida yozilgan manzilga o‘tiladi, aks holda keyingi buyruqqa o‘tiladi.
Dastur boshlanishi
Qiymatlarni kiritish B (MVI B)
Qiymatlarni kiritish A (MVI A)
operatsiya (SUB B),(ADD B),(ANA B),(ORA B)
Olingan qiymatlarni saqlash (STA 0500)
programma oxiri (HLT)
ADD B
SUB B
ANA B
ORA B
2
|
|
Bosh sahifa
Aloqalar
Bosh sahifa
8. protsessorning imkoniyatlarini o‘rganish. Mp kr580-da ma’lumotlarni maskalash va shartli o‘tishni tashkil qilishning dasturiy usullarini o‘rganish nazariy qism
|