Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpora_OMSU.docx
Скачиваний:
23
Добавлен:
19.09.2019
Размер:
419.12 Кб
Скачать

27.Команды пересылки, арифметический и логических операций.

Команды пересылки данных, осуществляют двусторонний обмен информации между внутренними регистрами МП и основной памятью. Команды этой группы должны задавать направления пересылки, источник операндов и приемник. Часто в регистре источника, или регистра приемника используется аккумулятор. Общим правилом этой команды является, что содержимое источника сохраняется. Наиболее часто используется внимательное обозначение этих команд. Это MOV (move)(передать) часто используется так же обозначения LD (load)(из памяти в регистр) ST (store)(запоминать)(из регистра в память). Арифметические и логические операции. Команды арифметических операций: «-», «+» (ADD), сложение с переносом (ADDC), вычитание (SUB). Далек не во всех имеющихся команды «х» и «/». Умножение – MUL, деление – DIV. Логические команды: AND-«И», OR – «ИЛИ», XOR – «исключение или», INC A – «добавление единицы», DEC – «вычитание единицы», DA – «десятичная коррекция», CRL A – «инверсия (инвертирование)», SWAP A – «тетроды меняются местами».

28.Команды переходов и связи с подпрограммами.

Команды переходов работают с счетчиком команд. Они используются для изменения естественного последовательного порядка следования команд и организации циклических участков команды. Простейшей командой переходов является команда безусловного перехода, которая загружает адрес перехода, которая загружает адрес перехода к указанной команде в счетчик команд. Имеется множество команд условного перехода. Эти команды поверяют указанное в команде условие и запускают в счетчик команд адрес перехода, если условие истинное. Как правило, в адресной части перехода указывается не полный адрес переходов, а 8-битное смещение относительно текущего счетчика команд. Смещение это число со знаком, поэтому переход может быть осуществлен в пределах -128…+127. Смещение представляет собой число в дополнительном коде и при выполнении разветвлений добавлялся к содержимому счетчику команд. Другой разновидностью реализации передачи по условию является команда пропуска следующей команды при выполнении условия. Такая программа используется в некоторых микропроцессорах SKIP, следующая команда пропускания, если проверяемое условие истинно, за счет добавления в счетчик команд величины соответствующей длине следующей команды. Команды связи с подпрограммами. Очень часто фрагменты программ, состоящие из последовательности команд используется многократно в различных частях основной программы. Например, программа умножения, деления, вычисление тригонометрических функций и т.д. Вместо того, что бы каждый раз записывать однотипные последовательности команд, эта последовательность оформляется специальным образом в виде подпрограммы и размещается в основной памяти микроЭВМ, вне основной программы. Для вызова подпрограмм используется команда вызова, как правило, с абривиатурой CALL<dst> (CALL MUL), где dst адрес подпрограммы. При выполнении этой команды содержимое счетчика команд автоматически заполняется в стеке, а в счетчик команд заносятся dst, таким образом осуществляется переход к началу подпрограммы. В самом конце программы ставится программа возврата, при выполнении которой из стека в счетчик команд заносятся адреса возврата, т.е.следующей будет выполняться команда следующая за командой CALL (RET – без адресной части; RTS). Команда RET является нулем адресной команды.

2 9.Команды сдвига (циклический, арифметический, логический). Команды сдвига: арифметический сдвиг и логический сдвиг. Как правило, одна команда выполняет сдвиг на одни разряд вправо или влево. Сдвиг может быть простым (с потерей сдвиговых разрядов ) или циклическим (старший разряд переносится в младший). Команды сдвигов позволяют побитно сдвигать код операнда вправо (в сторону младших разрядов) или влево (в сторону старших разрядов). Тип сдвига (логический, арифметический или циклический) определяет, каково будет новое значение старшего бита (при сдвиге вправо) или младшего бита (при сдвиге влево), а также определяет, будет ли где-то сохранено прежнее значение старшего бита (при сдвиге влево) или младшего бита (при сдвиге вправо). Например, при логическом сдвиге вправо в старшем разряде кода операнда устанавливается нуль, а младший разряд записывается в качестве флага переноса в регистр состояния процессора. А при арифметическом сдвиге вправо значение старшего разряда сохраняется прежним (нулем или единицей), младший разряд также записывается в качестве флага переноса. Циклические сдвиги позволяют сдвигать биты кода операнда по кругу (по часовой стрелке при сдвиге вправо или против часовой стрелки при сдвиге влево). При этом в кольцо сдвига может входить или не входить флаг переноса. В бит флага переноса (если он используется) записывается значение старшего бита при циклическом сдвиге влево и младшего бита при циклическом сдвиге вправо. Соответственно, значение бита флага переноса будет переписываться в младший разряд при циклическом сдвиге влево и в старший разряд при циклическом сдвиге вправо. Для примера на рис. 1 показаны действия, выполняемые командами сдвигов вправо. Команды проверки битов и операндов предназначены для установки или очистки битов регистра состояния процессора в зависимости от значения выбранных битов или всего операнда в целом. Выходного операнда команды не формируют. Команда проверки операнда (TST) проверяет весь код операнда в целом на равенство нулю и на знак (на значение старшего бита), она требует только одного входного операнда. Команда проверки бита (BIT) проверяет только отдельные биты, для выбора которых в качестве второго операнда используется код маски. В коде маски проверяемым битам основного операнда должны соответствовать единичные разряды. Наконец, команды установки и очистки битов регистра состояния процессора (то есть флагов) позволяют установить или очистить любой флаг, что бывает очень удобно. Каждому флагу обычно соответствуют две команды, одна из которых устанавливает его в единицу, а другая сбрасывает в нуль. Например, флагу переноса C (от Carry) будут соответствовать команды CLC (очистка) и SEC или STC (установка).

30.Команды ввода/вывода, управления. Команды ввода/вывода обеспечивает обмен информации между МП и регистрами внешних устройств. В некоторых МП имеется отдельное адресное пространство регистра ввода/вывода, отдельное ОЗУ (разделенный ввод/вывод), т.е. адреса регистров не совпадают с адресами ячеек. Есть специальные команды, где в коде команды указывается адрес регистра. При отработке этих команд вырабатываются стробы обращения к регистрам ввода/вывода. Во многих микроЭВМ под адресное пространство регистров отводится часть адресного пространства основной памяти. В таком случае не требуется специальных команд ввода/вывода, а команды, работающие с памятью работают с ____, такой вид называется совмещенный ввод/вывод. Специальные команды управления: во всех МП есть команды NOP(нет операций), если какую-либо команду при отладке надо исключить, то ее заменяют этой командой. Иногда NOP используется для построения точных программных задержек. К командам управления относятся команды разрешения(запрета, прерывания), управление таймером, если он есть.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]