Регістр стану (англ. Program State Word — PSW, англ. Flag Register — RF, англ. Condition Code Register — CCR) — це частина процесора, що зберігає важливу інформацію про стан обчислювальної системи, наприклад, біти-прапорці, які характеризують результати виконання арифметичних чи логічних операцій та порівнянь. Залежно від архітектурних особливостей, вміст регістра стану може бути частиною так званого контексту, що записується в стек при перериванні, або це покладено на плечі програміста.
Часто система команд передбачає спеціальні інструкції для читання та запису бітів регістра стану, оскільки вони застосовуються зі специфічною метою: для зміни природного порядку слідування команд та управління процесором.
Призначення прапорців
Прапорці необхідні для визначення шляху виконання та використовуються командами переходів. Наприклад, якщо певна операція дала нульовий результат, виконується одна група інструкцій, інакше — інша. В наведеному нижче прикладі перехід здійснюється за умови активності ознаки нульового результату.
MOV AX, 15 MOV BX, 0Fh CMP AX, BX JZ label ; if not zero label: ; if zero
Іншим випадком використання прапорців є управління режимами роботи процесора. Спеціалізовані біти можуть дозволяти чи забороняти переривання, активувати певний режим або керувати процесами.
Найчастіше вживані прапорці
В таблиці нижче наведено найбільш вживані ознаки процесорів.
Мнемоніка | Назва | Опис |
---|---|---|
Z | Прапорець нуля (англ. Zero flag) | Встановлюється, якщо результат арифметичної чи логічної операції рівний нулю. |
C | Прапор переносу (англ. Carry flag) | Використовується для додавання/віднімання чисел, більших за розрядну сітку мікропроцесора. Інколи застосовується для збереження витісненого біту при (логічних), (арифметичних) та (циклічних зсувах). |
S | Прапорець знаку (англ. Sign flag) | Дублює старший біт машинного слова, що зазвичай використовується як знак. |
N | Прапорець негативного результату (англ. Negative flag) | Встановлюється, якщо результат арифметичної операції від'ємний. |
O | Прапорець переповнення (англ. Overflow flag) | Використовується для позначення ситуації, коли двійкове число занадто велике для збереження в регістрі результату. |
Інші прапорці
Окрім вищезазначених, використовуються наступні прапорці:
Мнемоніка | Назва | Опис |
---|---|---|
P | Прапорець парності (англ. Parity flag) | Встановлюється, якщо кількість одиниць в результаті останньої операції була парною. |
I | Прапорець переривання (англ. Interrupt flag) | Використовується для заборони/дозволу переривань. |
S | Прапорець супервізора (англ. Supervisor flag) | Означає, що процесор знаходиться в , і, на відміну від режиму простого користувача, відкрито доступ до спеціальної функціональності, необхідної для операційної системи. |
A | Прапорець часткового переносу (англ. Auxiliary carry flag) | Встановлюється, якщо в результаті останньої арифметичної операції з'явився перенос між тетрадами (між 4 та 5 бітом в байті). Найчастіше використовується для реалізації операції над числами в форматі BCD. |
F0 та F1 | Прапорці користувача | Зберігають певні ознаки, доступ забезпечується спеціальними командами. |
Регістр стану в різних процесорних архітектурах
Архітектура x86
Цей розділ потребує доповнення. (серпень 2013) |
В даній архітектурі роль регістра стану виконує регістр EFLAGS.
Процесори архітектури SPARC мають можливість працювати як з 32-х, так і з 64-х розрядними операндами. Ця архітектура особливість була відображена в регістрі стану (англ. Condition Code Register), що складається з двох частин — xcc (англ. Extended Condition Code — для 64-х розрядних чисел) та icc (для 32-х розрядних). Якщо ж розглянути чотирибітні половинки цього регістра, то можна помітити, що вони ідентичні і складаються з прапорців переносу, переповнення, нуля та від'ємного результату.
Проте, наприклад, процесори PowerPC мають свої архітектурні особливості. Його 32-х розрядний регістр стану CR (англ. Condition Register) поділяється на 8 чотирибітних груп — CR0..CR7. Кожна з них має в своєму складі біти, що визначають негативний, позитивний, нульовий результат та прапорець переносу. Іншою особливістю даної архітектури є наявність спеціальних бітів (в CR1), що визначають ознаки результату з плаваючою комою[].
В архітектурі процесорів ARM існує 6 регістрів стану, що мають 32 біти, проте лише один — CPSR (англ. Current Program Status Register) доступний програмісту в усіх режимах. Він складається з прапорців негативного результату, переповнення, нуля, переносу та заборони переривань, а також зберігає номер режиму, в якому знаходиться процесор (для цього відводиться 5 біт).
Цей розділ потребує доповнення. (серпень 2013) |
Мікроконтролер ATmega103 родини AVR має в своєму складі регістр SREG (англ. Status Register), що зберігає 8 прапорців: переносу, нуля, від'ємного результату, переповнення, знаку, переносу між тетрадами, заборони переривань та біт користувача.
Див. також
Примітки
- Donald D. Givone, Robert P. Roesser Microprocessors/microcomputers An introduction. — McGraw-Hill Book Company, 1980 (англ.)
- Sivarama P. Dandamudi Guide to RISC processors for Programmers and Engineers. — Springer Science+Business Media, Inc., 2005. — . (англ.)
- Бродин В. Б., Калинин А. В. Системы на микроконтроллерах и БИС программируемой логики. — М.: ЭКОМ, 2002. — 400 с. — . (рос.)
Література
- Rafiquzzaman M. Microprocessors and microcomputer development systems. Designing microprocessor-based systems. — Harper & Row, Publishers, Inc., 1984. — . (англ.)
- Жабін В. І., Жуков В. А., Ткаченко В. В., Клименко І. А. Мікропроцесорні системи: Навчальний посібник. — К.: СПД Гуральник О. Ю., 2009. — 492 с. — .
Це незавершена стаття з інформатики. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Registr stanu angl Program State Word PSW angl Flag Register RF angl Condition Code Register CCR ce chastina procesora sho zberigaye vazhlivu informaciyu pro stan obchislyuvalnoyi sistemi napriklad biti praporci yaki harakterizuyut rezultati vikonannya arifmetichnih chi logichnih operacij ta porivnyan Zalezhno vid arhitekturnih osoblivostej vmist registra stanu mozhe buti chastinoyu tak zvanogo kontekstu sho zapisuyetsya v stek pri pererivanni abo ce pokladeno na plechi programista Chasto sistema komand peredbachaye specialni instrukciyi dlya chitannya ta zapisu bitiv registra stanu oskilki voni zastosovuyutsya zi specifichnoyu metoyu dlya zmini prirodnogo poryadku sliduvannya komand ta upravlinnya procesorom Priznachennya praporcivPraporci neobhidni dlya viznachennya shlyahu vikonannya ta vikoristovuyutsya komandami perehodiv Napriklad yaksho pevna operaciya dala nulovij rezultat vikonuyetsya odna grupa instrukcij inakshe insha V navedenomu nizhche prikladi perehid zdijsnyuyetsya za umovi aktivnosti oznaki nulovogo rezultatu MOV AX 15 MOV BX 0 Fh CMP AX BX JZ label if not zero label if zero Inshim vipadkom vikoristannya praporciv ye upravlinnya rezhimami roboti procesora Specializovani biti mozhut dozvolyati chi zaboronyati pererivannya aktivuvati pevnij rezhim abo keruvati procesami Najchastishe vzhivani praporciV tablici nizhche navedeno najbilsh vzhivani oznaki procesoriv Mnemonika Nazva OpisZ Praporec nulya angl Zero flag Vstanovlyuyetsya yaksho rezultat arifmetichnoyi chi logichnoyi operaciyi rivnij nulyu C Prapor perenosu angl Carry flag Vikoristovuyetsya dlya dodavannya vidnimannya chisel bilshih za rozryadnu sitku mikroprocesora Inkoli zastosovuyetsya dlya zberezhennya vitisnenogo bitu pri logichnih arifmetichnih ta ciklichnih zsuvah S Praporec znaku angl Sign flag Dublyuye starshij bit mashinnogo slova sho zazvichaj vikoristovuyetsya yak znak N Praporec negativnogo rezultatu angl Negative flag Vstanovlyuyetsya yaksho rezultat arifmetichnoyi operaciyi vid yemnij O Praporec perepovnennya angl Overflow flag Vikoristovuyetsya dlya poznachennya situaciyi koli dvijkove chislo zanadto velike dlya zberezhennya v registri rezultatu Inshi praporciOkrim vishezaznachenih vikoristovuyutsya nastupni praporci Mnemonika Nazva OpisP Praporec parnosti angl Parity flag Vstanovlyuyetsya yaksho kilkist odinic v rezultati ostannoyi operaciyi bula parnoyu I Praporec pererivannya angl Interrupt flag Vikoristovuyetsya dlya zaboroni dozvolu pererivan S Praporec supervizora angl Supervisor flag Oznachaye sho procesor znahoditsya v i na vidminu vid rezhimu prostogo koristuvacha vidkrito dostup do specialnoyi funkcionalnosti neobhidnoyi dlya operacijnoyi sistemi A Praporec chastkovogo perenosu angl Auxiliary carry flag Vstanovlyuyetsya yaksho v rezultati ostannoyi arifmetichnoyi operaciyi z yavivsya perenos mizh tetradami mizh 4 ta 5 bitom v bajti Najchastishe vikoristovuyetsya dlya realizaciyi operaciyi nad chislami v formati BCD F0 ta F1 Praporci koristuvacha Zberigayut pevni oznaki dostup zabezpechuyetsya specialnimi komandami Registr stanu v riznih procesornih arhitekturahArhitektura x86 Cej rozdil potrebuye dopovnennya serpen 2013 V danij arhitekturi rol registra stanu vikonuye registr EFLAGS Mikroprocesori RISC Procesori arhitekturi SPARC mayut mozhlivist pracyuvati yak z 32 h tak i z 64 h rozryadnimi operandami Cya arhitektura osoblivist bula vidobrazhena v registri stanu angl Condition Code Register sho skladayetsya z dvoh chastin xcc angl Extended Condition Code dlya 64 h rozryadnih chisel ta icc dlya 32 h rozryadnih Yaksho zh rozglyanuti chotiribitni polovinki cogo registra to mozhna pomititi sho voni identichni i skladayutsya z praporciv perenosu perepovnennya nulya ta vid yemnogo rezultatu Prote napriklad procesori PowerPC mayut svoyi arhitekturni osoblivosti Jogo 32 h rozryadnij registr stanu CR angl Condition Register podilyayetsya na 8 chotiribitnih grup CR0 CR7 Kozhna z nih maye v svoyemu skladi biti sho viznachayut negativnij pozitivnij nulovij rezultat ta praporec perenosu Inshoyu osoblivistyu danoyi arhitekturi ye nayavnist specialnih bitiv v CR1 sho viznachayut oznaki rezultatu z plavayuchoyu komoyu dzherelo V arhitekturi procesoriv ARM isnuye 6 registriv stanu sho mayut 32 biti prote lishe odin CPSR angl Current Program Status Register dostupnij programistu v usih rezhimah Vin skladayetsya z praporciv negativnogo rezultatu perepovnennya nulya perenosu ta zaboroni pererivan a takozh zberigaye nomer rezhimu v yakomu znahoditsya procesor dlya cogo vidvoditsya 5 bit Mikrokontroleri Cej rozdil potrebuye dopovnennya serpen 2013 Mikrokontroler ATmega103 rodini AVR maye v svoyemu skladi registr SREG angl Status Register sho zberigaye 8 praporciv perenosu nulya vid yemnogo rezultatu perepovnennya znaku perenosu mizh tetradami zaboroni pererivan ta bit koristuvacha Div takozhRegistr cifrova tehnika Slovo stanu programiPrimitkiDonald D Givone Robert P Roesser Microprocessors microcomputers An introduction McGraw Hill Book Company 1980 angl Sivarama P Dandamudi Guide to RISC processors for Programmers and Engineers Springer Science Business Media Inc 2005 ISBN 0 387 21017 2 angl Brodin V B Kalinin A V Sistemy na mikrokontrollerah i BIS programmiruemoj logiki M EKOM 2002 400 s ISBN 5 7163 0089 8 ros LiteraturaRafiquzzaman M Microprocessors and microcomputer development systems Designing microprocessor based systems Harper amp Row Publishers Inc 1984 ISBN 0 06 045312 5 angl Zhabin V I Zhukov V A Tkachenko V V Klimenko I A Mikroprocesorni sistemi Navchalnij posibnik K SPD Guralnik O Yu 2009 492 s ISBN 978 966 2340 00 6 Ce nezavershena stattya z informatiki Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi