Модель процессора - часть 2
Смысл CISC-модели состоит в том, что выполнение каждой команды представляется в виде последовательности выполнения простых процедур ("микрокоманд"). Список микрокоманд, составляющих выполнение каждой команды, может быть "зашит" в программу в виде последовательности вызовов или представлен в виде данных, например, в виде списка номеров процедур. В последнем случае алгоритм не требует ветвления, а сводится к циклу, в каждой итерации которого выбирается номер очередной процедуры и вызывается процедура с данным номером. В предельном случае выполнение каждой команды может быть представлено в виде исходного текста на языке макрокоманд, который интерпретируется Интерпретатором.
Пример
Пусть в языке микрокоманд имеются следующие (показаны не все) микрокоманды:
Микрокоманда | Выполнение |
GETR n,rx | Выборка номера регистра, заданного в n-ом операнде в промежуточную переменную rx |
GETA n,ax | Выборка адреса, заданного в n-ом операнде в промежуточную переменную ax |
LDR dx,rx | Выборка данных из регистра, номер которого находится в промежуточной переменной rx в промежуточную переменную dx |
LDM dx,ax | Выборка данных из памяти по адресу, находящемуся в промежуточной переменной ax промежуточную переменную dx |
SDR rx,dx | Запись данных из промежуточной переменной dx в регистр, номер которого находится в промежуточной переменной rx |
SDM dx,ax | Запись данных из промежуточной переменной dx в память по адресу, находящемуся в промежуточной переменной ax промежуточную переменную dx |
ADD dx1,dx2 | Сложение данных из промежуточной переменной dx1 с данными из dx2; результат - в dx1 |
SIG dx | Инверсия знака данных, содержащихся в промежуточной переменной dx |
CC1 dx | Установка признаков "больше", "меньше", "равно" по значению, содержащемуся в промежуточной переменной dx |
CC2 dx | Установка признака переполнения по значению, содержащемуся в промежуточной переменной dx |
PC1 | Увеличение регистра-счетчика адреса на длину команды |
PC2 dx | Запись данных из промежуточной переменной dx в регистр-счетчика адреса |
END | Окончание микропрограммы |