Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Белош_Лекции_4_курс_2010г.doc
Скачиваний:
27
Добавлен:
16.07.2019
Размер:
2.92 Mб
Скачать

Команды процессора.

Все программы микроЭВМ состоят из последовательности шагов, называемых командами. Кол-во команд и их конкретное название меняется в соответствии с типом микроЭВМ. Кол-во команд и их функциональное назначение определяют архитектуру микроЭВМ. В общем случае команды микроЭВМ можно разделить на следующие основные группы:

  1. команды пересылки данных

  2. команды управления

  3. команды обращения к подпрограммам

  4. команды выполнения операций

  5. команды ввода/вывода

следует заметить, что деление команд на эти группы весьма условно и зависит от реализации конкретной ЭВМ. Рассмотрим команды каждой группы:

1.КОМАНДЫ ПЕРЕСЫЛКИ ДАННЫХ.

К этой группе относятся команды, которые пересылают данные между ячейками памяти, регистрами процессоров, а так же между регистрами и памятью микроЭВМ. Команды передачи данных необходимы в первую очередь для восстановления содержимого одного из операндов, когда при «короткой» команде результат операции записывается поверх одного из операндов. Аббревиатура команд бывает разной и зависит от конкретной ЭВМ (MOVE, LOAD, STORE)

2.КОМАНДЫ УПРАВЛЕНИЯ.

Эти команды можно разделить на условные и безусловные. Выполнение условных команд, управление вычислительным процессом зависит как правило от содержимого регистра состояния процессора. (Флажок переполнения разрядной сетки, Флажок «0» состояния аккумулятора и т.д.). В соответствии с содержимым задействованного флажка регистра составляется и выполняется условная команда управления STOP-остановить, SKIP-пропустить, JUMP-перех.

Команда SKIP позволяет производить ветвление или не ветвление содержимого вычислительного процесса

ADD A1@B1

SKIP T

JUMP #100

SUB B1,B3

При выполнении этой программы после команды сложения стоит команда пропуска при условии определенного содержания флажка Т регистра состояния процессора. Если это условие Т выполняется, то тогда команда JUMP пропускается и идет дальнейшее выполнение программы. Если состояние флажка Т таково, что должно произойти ветвление основной программы, то пропуск следующей программы не происходит и эта команда выполняется. Эта команда приводит к тому, что выполняется безусловный переход в ячейку с адресом 100. Это может быть например начало другой ветки алгоритма.

3.Команды обращения к подпрограммам.

Они позволяют гибко управлять вычислительным процессом и не писать в осн. программе большое количество раз текст выполнения той или стандартной и повторяющейся много раз процедуры КО к ПП могут быть безусловными, а иногда и условными , т.е когда вызов подпрограммы происходит при срабатывании заданного флажка регистра состояний. Рассмотрим безусловные команды обращения к подпрограммам. Когда мы вызываем подпрограмму например пишем команду CALL “Convert 10 -> 2”. В этом случае внутри процессора происходит следующее: необходимо запомнить состояние всех основных регистров процессора, от которых зависит выполнение основной программы, например счетчик команд, регистр команд, аккумулятор, регистр состояний и т.д. Нам еще необходимо сформировать и где-то запомнить адрес возврата.

Содержимое всех регистров при выполнении команды процессора называется текущими контекстами программы. Все контенты при переходе к подпрограмме записываются в стек. Кроме того, формируется адрес возврата в основную программу. Для того чтобы вернуться к следующей команде текущей основной программы мы должны содержимое счетчика команд увеличить на 1 шаг в поле памяти (на 1). И тогда его содержимое будет являться адресом возврата и укажет нам после возврата на ячейку с командой OUTPUT. Это содержание счетчика команд увеличится на 1 записанный в стек как адрес возврата.

Команда вызова подпрограммы “Convert” находятся по адресу 2600, сама подпрограмма convert начинается с адреса 00BE с команды пересылки move между ячейками A2 и регистр R1

Содержимое стека в данный момент таково, что он содержит адрес Ai, при выполнении команды Call в СчК

Подпрограмма преобразования “Convert” располагается с адреса 00BE в стеке хранится текущий адрес Ai, после выполнение команды Call, в стек сверху записывается сформированный адрес возврата в основную программу 2601, а предыдущее содержимое стека проталкивается на 1 шаг вниз. Начинается выполнение подпрограммы преобразования “Convert”, чтобы это произошло, в счетчике команд загружается адрес программы, т.е. ее содержимое 00BE.

RETURN- команда возврата из подпрограммы. Каждая подпрограмма должна заканчиваться этой командой чтобы вернуться в основную программу нужно взять из стека адрес возврата и загрузить его в счетчик памяти. Пусть подпрограмма заканчивается некоторой командой по адресу 010А. в стеке соответственно 2601. После выполнения команды RETURN содержимое из стека 2601 уйдет и запишется в адрес.

4.КОМАНДЫ ОПЕРАЦИЙ. Выполнение операций над содержанием различных ячеек памяти или регистров происходит в зависимости от того где находятся операнды. В качестве примеров приведем следующие команды операций:

CLEAR – очистка. По данной команде очищается содержимое какой-либо ячейки или регистра.

INCrement – содержимое операнда увеличивается на 1

DECrement – операнд уменьшается на 1

ROTation – циклический сдвиг операндов вправо или влево на указанное число шагов.

При выполнении команд данной группы может быть задействовано АЛУ и в этом случае процессор может выполнять операции сложения, вычитания, логического сложения или умножения (ADD,SUB,OR,AND)

Результат выполнения логического сложения записывается в аккумулятор. После выполнения операции содержимое регистра В не изменяется, изменяется только содержимое аккумулятора. «1» будут записаны в те разряды аккумулятора, в которых они поразрядно совпадают в 1 и во 2 операнде, т.е. в регистре В и в регистре А.

Пример: команды циклического сдвига

ROT A, +1

Операция выполняется над содержимым аккумулятора и сдвиг осуществляется справа на один разряд. После выполнения операции содержимое аккумулятора будет выглядеть