Protsessor tarkibida o‘n ikkita 16 razryadli programmaviy adreslanuvchi registrlardan iborat.
Berilganlar registrlari
| Ko‘rsatgich registrlari |
| | AX |
Akkumlyator
|
SI
|
Manba indeksi
|
AH
|
AL
|
|
|
|
|
| BX |
Baza registri
| DI |
Qabul indeksi
|
BH
|
BL
|
|
|
|
|
| CX |
Sanagich
|
BP
|
Baza ko‘rsatgichi
|
CH
|
CL
|
|
|
|
|
| DX |
Berilganlar registri
|
SP
|
Stek ko‘rsatgichi
|
DH
|
DL
|
|
|
|
|
|
Segment registrlari
|
|
|
|
|
|
|
CS
|
Buyruq segmenti registri
|
|
|
|
|
|
|
|
DS
|
Berilganlar segmenti registri
|
|
|
|
|
|
SS
|
Stek segmenti registri
|
|
|
|
|
|
|
|
|
|
ES
|
Qo‘shimcha berilganlar segmenti registri
|
|
|
|
|
Boshqa registrlar
|
|
|
|
|
|
|
IP
|
Buyruq ko‘rsatgichi
|
|
|
|
|
|
|
|
|
FLAGS
|
Bayroqlar registri
|
|
|
|
|
Protsessor registrlari
Ularni uch guruhga ajratish mumkin: berilganlar registrlari, registr-ko‘rsatgichlar va segment registrlari. Berilganlar registrlari va ko‘rsatgich registrlari umumiy registrlar deyiladi. Bundan tashqari protsessorga buyruq ko‘rsatgichi va bayroq registri kiradi.
Berilganlar registrlariga to‘rtta registr: AX, BX, CX va DX registrlar kiradi. Programma tuzuvchi bu registrdan o‘z hohishiga ko‘ra turli programma ob’ektlarni (berilganlar va adreslarni) saqlashda va ular ustida amallar bajarishda fyodalanishi mumkin. Bundan tashqari bu registr bir-biriga bog‘liqmas ravishda kattayarmiga (AH, BH, CH va DH) va kichik yarmiga (AL, BL, CL, va DL) murojaat qilishi mumkin. Masalan, movBL, AH buyrug‘ida BX registrining kichik baytiga AX registrining katta bayti uzatiladi. Buyruqda oldin qabul qiluvchi operand verguldan keyin operand- manba yoziladi.
Berilganlar registrlari umuman olganda teng kuchli (ekvivalent), lekin ko‘p hollarda AX registri ishlatiladi. Ayrim buyruqlar AX (yoki uning yarmi AL) ishlatilsa tezroq bajariladi. Boshqa tomondan, shunday buyruqlar borki, oshkormas ravishda ma’lum bir registrlarni ishlatadi, masalan, takrorlash buyruqlari takrorlash qadamini sanash uchun SX registrini ishlatadi. Xuddi shunday ko‘paytirish va bo‘lish amallari AX va DX registrlarini ishlatadi, o‘qish-yozish amallarini faqat AX va AL registrlari orqali amalga oshirish mumkin va hakoza.
Xuddi shunday SI va DI registralari ham har xil maqsadda ishlatilishi mumkin, lekin ularni asosiy vazifasi - xotiradan operandni tanlashda indekslarni yoki biror bazaga nisbatan (massiv boshiga nisbatan) siljishni saqlashdir. Bunda baza adresi VX yoki VR baza registrlarida bo‘lishi mumkin. Satr bilan ishlashda SI va DI registrlar qayta ishlanayotgan satrlar ko‘rsatgichi sifatida ishlatiladi. BP registr stek ko‘rinishdagi strukturalarda baza ko‘rsatgichi sifatida ishlatiladi, lekin u boshqa arifmetik va mantiqiy amallarda ham ishlatilishi mumkin. SP-maxsus registr bo‘lib, u faqat stek uchini ko‘rsatish uchungina ishlatiladi. Buyruq ko‘rsatgichi IP “programma bajarilishini kuzatib” boradi, ya’ni bajarilayotgan buyruqdan keyingi buyruqning nisbiy adresini ko‘rsatib turadi. IP registriga programmadan murojaat qilish mumkin emas. IP- bu registrning qisqartirilgan nomi, programmadagi mnemonik nom emas. IR registr qiymatini o‘zgartirishni mikroprotsessorning o‘zi amalga oshiradi.
Bayroqlar registri (uni FLAGS deb nomlashadi) bilan protsessor holati haqida ma’lumotni o‘zida saqlaydi. Unda 6 ta holatlar razryadli, 3 ta protsessor ishlashini boshqarish razryadlari bo‘ladi.
15
|
14
|
13
|
12
|
11
|
10
|
09
|
08
|
07
|
06
|
05
|
04
|
03
|
02
|
01
|
00
|
|
|
|
|
OF
|
DF
|
IF
|
TF
|
SF
|
ZF
|
|
AF
|
|
PF
|
|
CF
|
Bayroqlar registri holatlar bayrog‘i protsessor tomonidan har bir navbatdagi amal bajarilganda o‘zgartiriladi. Bu holat bo‘yicha bajarilgan buyruq haqida mulohaza yuritish mumkin.
CF (Carry Flag) - o‘tishbayrog‘i. Arifmetik amallar bajarilganda olib o‘tish (yoki olish) holati yuz berganligini bildiradi. Olib o‘tish holati deb buyruq bajarilishi natijasida 16 ta ikkilik razryaddan ortiq joy egallovchi son hosil bo‘lgan holatiga aytiladi, ya’ni son registr yoki xotira katagiga sig‘may qoladi. Aytaylik, AX registrida 60000 soni, VX- 40000 bo‘lsin. Qo‘shish amalini bajarish buyrug‘i
addAX, BX
bajarilganda qabul qiluvchi AX registrida 100000 soni hosil bo‘lishi kerak va bu son AX registriga sig‘maydi. Bunday holat ro‘y berganligini CF razryadidagi 1 qiymati bildiradi, chunki AX registrida 100000-65536=34464 soni, ya’ni noto‘g‘ri natija hosil bo‘ladi.
Shuni ta’kidlash kerakni, programma bajarilishida ro‘y bergan xatolar hech qanday oqibatlarga olib kelmaydi. Bunday holatlarni boshqarish programma tuzuvchisi zimmasiga yuklanadi. yuqorida holat uchun maxsus jc (jampifcarry - olib o‘tish bo‘lsa, o‘tish) buyrug‘i mavjud.
addAX, BX
jcerror ; xato bo‘lsa error nishoniga o‘tilsin
... ; normal holatda davom etish
PF (ParityFlag)- paritet bayrog‘i. Agar amal natijasida 1 son miqdori juft bo‘lsa 1 qiymatni qabul qiladi, aks holda 0. Bu bayroqdan berilganlarni uzatishdagi xatolikni aniqlashda foydalanish mumkin.
AF (AuxiliaryFlag) - yordamchi o‘tish bayrog‘i. Ikkilik-o‘nlik ko‘rinishidagi sonlar ustida amal bajarilganda ishlatiladi va u katta 4 bitdan o‘tish ro‘y berganligini bildiradi. Ikkilik-o‘nlik usulida bayt yarmida (4 bitda) o‘nlik raqamning ikkilik kodi saqlanadi. Bunda bir baytda 0 dan 99 gacha bo‘lgan sonlarni saqlash mumkin.
Ikkilik-o‘nlik ko‘rinishdan o‘lchash qurilmalari bilan ma’lumot almashish uchun ishlatiladi. Bu sonlar uchun maxsus buyruqlar aniqlangan. Bu buyruqlar bajarilganda AF bayrog‘i holatini tekshirishga to‘g‘ri keladi.
ZF (ZeroFlag)- nol bayrog‘i. Amal natijasi 0 bo‘lsa ZF=1. Masalan, 5 dan 5 ayirish, 20 ga -20 ni qo‘shish amalida.
SF (Sign Falg) - ishora bayrog‘i. Bayroq qiymati 1 bo‘ladi, agar amal natijasi manfiy son bo‘lsa. Umuman olganda, protsessor sonlarni ishorasiz hamda manfiy va musbat bo‘lishi mumkin bo‘lgan ishorali butunlarni bir-biridan ajrata oladi. Ishorali sonning manfiylik alomati - katta razryadda 1 bo‘lishi (15 razryadda yoki 7 razryadda). Masalan, ishorali butun sonlar uchun 8000h...FFFFh oralig‘idagi sonlar manfiy hisoblanadi).
OF (Overlow Flag) - to‘lib ketish bayrog‘i. Ishorali sonlar uchun natijani chegaradan chiqib ketishini fiksirlaydi. Masalan musbat sonlar 7FFFh dan oshmasligi kerak. Ikkita musbat sonlarni qo‘shishda manfiy son hosil bo‘lsa (natija 7FFFh sonidan katta katta bo‘lsa) yoki manfiy sondan ayirishda natija 8000h sonidan kichik bo‘lsa OF=1 bo‘ladi.
Boshqaruv bayroqlari real rejim bayroqlari registrida uchta.
TF (TraceFlag) - trassirovka bayrog‘i. Programmani qadamlab bajarishni ta’minlaydi. TF=1 bo‘lsa, har bir buyruq bajarilgandan keyin 1 nomerli vektor bo‘yicha uzilish bajariladi (04 fizik adresdagi). Bu bayroq sozlash programmalarida boshqa programmalarni qadamlab bajarishni tashkil qilishda keng foydalaniladi.
IF (Interupt Flag) - uzilish bayrog‘i. Protsessor tomonidan tashqi qurilmalardan bo‘ladigan uzilishlarga aks ta’sir qilish (IF=1) yoki qilmaslik (IF=0) shartini aniqlaydi. Bu orqali programmalarningjuda muhim qismlarini tashqi ta’sirsiz bajarish imkon tug‘iladi.
DF (Direstion Flag) - yo‘nalishni boshqarish bayrog‘i. Satrlarni qayta ishlash buyruqlarida qo‘llaniladi. Agar DF=0 bo‘lsa, satrkichikadreslardan katta adrestomonto‘g‘riyo‘nalishda, aks holdateskariyo‘nalishda qaytaishlanadi.
Boshqaruv bayroqlarini «o‘rnatish» va “tashlab yuborish” uchun maxsus buyruqlar mavjud; Masalan, sti (set interrupt - uzilishlarni o‘rnatish) vaungateskaricli (clear interrupt - uzilishlarni “tashlab yuborish”) buyruqlari IF bayrog‘i qiymatini o‘rnatadi.
Do'stlaringiz bilan baham: |