Теорія операційної системи

:: Меню ::

Головна
Представлення даних в обчислювальних системах
Машинні мови
Завантаження програм
Управління оперативною пам'яттю
Сегментна і сторінкова віртуальна пам'ять
Комп'ютер і зовнішні події
Паралелізм з точки зору програміста
Реалізація багатозадачності на однопроцесорних комп'ютерах  
Зовнішні пристрої
Драйвери зовнішніх пристроїв
Файлові системи
Безпека
Огляд архітектури сучасних ОС

:: Друзі ::

Карта сайту
 

:: Статистика ::

 

 

 

 

 

Команди переходу

Як говорилося на початку глави, команди умовного переходу — це те, що відрізняє фон-неймановський процесор від непроцессора або, в крайньому випадку, від не фон-неймановського процесора. Більшість сучасних процесорів має обширний набір команд умовного переходу за різними арифметичними умовами і їх комбінаціями.
Арифметичні прапори виставляються відповідно до результатів останньої арифметичної і логічної операції. Типовий набір арифметичних прапорів — це біт перенесення, біт нуля (виставляється, якщо всі біти результату дорівнюють нулю), знаковий біт (якщо дорівнює нулю старший біт результату) і біт переповнювання. У процесорах перших поколінь нерідко використовувався зворотний підхід: процесор мав всього один прапор умови переходу (так звана ы-признак) і одну команду умовного переходу, зате декілька команд порівняння, що додавали цьому прапору різну семантику.
Набор команд переходу, приведений в таблиці. 2.1, декілька ширше звичайного — команди Sbrc/sbrs для процесорів спільного призначення нетипові.
Мікроконтроллери PIC (мабуть, найекстравагантніша система команд серед сучасних процесорів, що промислово випускаються) мають всього дві команди, що виконують функції команд умовного переходу: BTFCS (Bit Test, Skip if Set — перевірити біт і, якщо він встановлений, пропустити наступну команду) і BTFCC (Bit Test, Skip if Clear, пропустити следую-шую команду, якщо біт скинутий). Об'єктом перевірки може служити будь-який біт будь-якого регістра процесора, у тому числі і біти арифметичних умов статусного слова. Для реалізації умовного переходу слідом за такою командою потрібно розмістити команду безумовного переходу. Саме такий чином асемблери для цього мікроконтроллера реалізують псевдокоманди умовних переходів.

Таблиця 2.1. Команди умовного переходу мікроконтроллерів сімейства AVR, цит. по [www.atmel.com]

Команда
Опис
Умова переходу
SBRC Rr, b
Пропустити, якщо біт в регістрі скинутий
if (Rr(b)=0) РС = РС + 2 or 3
SBRS Rr, b
Пропустити, якщо біт в регістрі встановлений
if (Rr(b)=1) РС = РС + 2 or 3
SBIC P, b
Пропустити, якщо біт в регістрі В/в скинутий
if (I/0(P,b)=0) РС = РС + 2 or 3
SBIS P, b
Пропустити, якщо біт в регістрі В/у встановлений
if (I/0(P,b)=l) РС = РС + 2 or 3
BRBS s, до
Перейти, якщо статусний прапор встановлений
if (SREG(s) =1) РС = Pc+k + 1
BRBC s, до
Перейти, якщо статусний прапор скинутий
if (SREG(s) =0) РС = Pc+k + 1
BREQ до
Перейти, якщо рівно
if (Z = 1} РС = РС + до + 1
BRNE до
Перейти, якщо не рівно
if (Z=0) РС = РС + до + 1
BRCS до
Перейти, якщо перенесення встановлене
if (C = 1) РС = РС + до + 1
BRCC до
Перейти, якщо перенесення скинуте
if (C = 0) РС = РС + до + 1
BRSH до
Перейти, якщо рівно або вище
if (C = 0) РС = РС + до + 1
BRLO до
Перейти, якщо нижче
if (C = 1) РС = РС.+ до + 1
BRMI до
Перейти, якщо мінус
if (N = 1) РС = РС + до + 1
BRPL до
Перейти, якщо плюс
if (N = 0) РС = РС + до + 1
BRGE до
Перейти, якщо більше або рівно, знакове
if (N XOR V= 0) РС = Pc+ до + 1
BRLT до
Перейти, якщо менше, знакове
if (N XOR V= 1) РС = РС + до + 1
BRHS до
Перейти, якщо напівбайтове перенесення встановлене
if (H = 1) РС = РС + до + 1
BRHC до
Перейти, якщо напівбайтове перенесення скинуте
if (H = 0) РС = РС + до + 1
BRTS до
Перейти, якщо Т-флаг встановлений
if (T = 1) РС = РС + до + 1
BRTC до
Перейти, якщо Т-флаг скинутий
if (T = 0) РС = РС + до + 1
BRVS до
Перейти, якщо прапор переповнювання встановлений
if (V = 1) РС = РС + до + 1
BRVC до
Перейти, якщо прапор переповнювання скинутий
if (V = 0) РС = РС + до + 1
BRIE до
Перейти, якщо переривання дозволені
if (1 = 1) РС = РС + до + 1
BRID до
Перейти, якщо переривання заборонені
if (1 = 0) РС = РС + до + 1

:: Реклама ::

 

:: Посилання ::


 

 

 


Copyright © Kivik, 2017