Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессоры Конспект.doc
Скачиваний:
9
Добавлен:
14.02.2015
Размер:
1.27 Mб
Скачать

1.4.3 Логические команды

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

Команды сдвига позволяют побитно сдвигать код вправо (в сторону младших разрядов) или влево ( в сторону старших разрядов). существуют следующие типы команд сдвига.

При логическом сдвиге вправо в старшем разряде кода операнда устанавливается ноль, а младший разряд записывается в качестве флага переноса в регистр состояния процессора.

При арифметиком сдвиге вправо значение старшего разряда сохраняется прежнем, младший разряд также записывается в качестве флага переноса.

циклические сдвиги Позволяют сдвигать разряд кода операнда по кругу (по часовой стрелке при сдвиге вправо или против часовой стрелке при сдвиге влево. При этом в кольцо сдвига может входить или не входить флаг переноса (если он используется). Бит флага переноса записывается в значение старшего бита при циклическом сдвиге влево и младшего бита при циклическом сдвиге вправо. Соответственно значение бита флага переноса будет переписываться в младший разряд при циклическом сдвиге влево, и в старший разряд при циклическом сдвиге вправо.

11.02

Эти команды предназначены для установки регистров состояния процессора, в зависимости от значения выбранных битов или всего операндов в целом. Команда проверки операнда TSTпроверяет весь код операнда, в целом на равенство нулю и на знак (значение старшего бита). Она требует только одного входного операнда.

Команда проверки бита проверяет только отдельные биты для выбора которых в качепстве второго операнда используется код маски. В коде маски проверяемым битом основного операнда должны соответствовать единичные разряды.

Команды установки и очистки битов PSW9флагов) позволяют установить или сбросить любой флаг, что бывает очень удобно. Каждому флагу обычно соответствует две команды, одна их которых устанавливает его в 1, а др сбрасывает в 0. Например, флагу переноса С.

Команды переходов

Команды переноса предназначен для реализации циклов, ветвлений, вызовов подпрограмм и т.д. Т.е, они не нарушает последовательный ход выполнения программы. эти команды записывает в регистр счетчик команд новое значение, и тем самым вызывают переход процессора не к слаед по порядку команде, а к любой другой команде памяти программ. Некоторые команды переходов подразумевают в дальнейшем возврат в точку, из которой был сделан переход.

Есл возврат возможен, то тякущей параметр процессора сохраняется в стэке, если нет, то тякущие параметры не сохраняются

Команды перехода без возврата делятся на две группы: команды безусловных переходов и команды условных переходов. В обохначении этих команд используют слова BraunchиJump.

Команды безусловных переходов вызывают переход в новый адрес, независимо ни от чего. Они могут вызвать переход на указаннуб величину смещения (вперед или назад) или же на указанный адрес памяти. Величина смещения или новое значение адреса указывается в качестве входного операнда.

Команды условных переходов вызывают переход только при выполнении заданных условий. В качестве таких условий обычно выступают значение флагов в регистрах PCW, т.е. условием перехода является результат предыдущей операции, меняющий значение флагов. Всего таких условий перехода может быть от 4 да 12. Пример, переход, если =0, переход, если не =0, переход, если есть переполнение, переход, если нет перевыполнения, переход, ели больше нуля. Если условие перехода выполняется, то производиться загрузка в регистр счетчика команд нового значения. Если же условие перехода не выполняется, счетчик команд просто наращивается и процессор выбирает выполнение след команды по порядку. Специально для проверки условий перехода выполняется команда сравнения, предшествующая команде условного перехода или даже нескольким командам условий переходов.

Флаги могут устанавливаться и любой другой командой, например командой пересылки данных любой арифметической и логической команды, сами команды переходов флаги не меняют. Это позволяет ставить несколько команд переходов, одной за другой.

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

Оценка быстродействия процессора, реферат.

Все команды переходов с возвратом предполагают безусловный переход, при этом они требуют одного входного операнда, который может указывать, как абсолютное значение нового адреса, так и смещение, складываемое с текущим значением адреса. Текущее значение счетчика команд (текущий адрес) сохраняется перед выполнением перехода в стэки. для обратного возврата в точку вызова подпрограммы (точку перехода) используется специальная программа RET(RTS). Это команда извлекает из стэка значение адреса команды перехода и записывает его в регистр счетчика команд.

Особое место среди команд перехода с возвратом занимают команды прерываний INT. Эти команды, в качестве входного операнда требуют номер прерывание (адрес вектор). Обслуживание таких переходов осуществляется также, как и аппаратных прерываний, т.е. для выполнения данного перехода процессор обращается к таблице векторов прерываний и получает из нее по номеру прерывания адрес памяти, к которой ему необходимо перейти. Адрес вызова прерывания и содержимое регистра состоянияPSWсохраняется стэке. Сохранение вPSWважное отличие команд прерывания от .....

Команды прерываний во многих случаях оказываеются удобнее, чем обычные команды переходов с возвратом. Сформировать таблицу векторов прерываний можно 1 раз и потом обращаться к ней по мере необходимости. Номер прерывания соответствует номеру попрограммы, т.е. номеру функции выполняемой подпрограммы. Поэтому команды прерывания гораздо чаще включаются в систему команд процессоров, чем обычные команды переходов с возвратом. Для возврата из подпогрраммы, вызванная прерыванием, используется команда возврата из прерывания IRET,RTI. Эта команда извлекает из стэка сохраноннон значение счетчика команд и регистр состояния процессора.