Мегаобучалка Главная | О нас | Обратная связь


Система команд микропроцессора



2019-10-11 259 Обсуждений (0)
Система команд микропроцессора 0.00 из 5.00 0 оценок




Общие сведения

Для определенной серии МП" комплекта используется индивидуальный язык составления программ. Для МП КР580 применяется язык ассемблера. В командах на языке ассемблера код операции имеет сокращенную форму записи английских слов — мнемоническое обозначение. Мнемоника (от греч. mnemonic -искусство запоминания) позволяет легче запомнить команды по их функциональному назначению. Перед исполнением исходная программа переводится с помощью программы трансляции, назы­ваемой ассемблер, на язык кодовых комбинаций — машинный язык, в таком виде размещается в памяти МП и далее используется при выполнении команды. Например, команда очистки аккумулятора на языке ассемблера имеет вид CLA А (от англ. clear —- очищать); она же на машинном языке будет иметь вид 0100 1111. Сравнив две эти команды, видим очевидные преимущества написания програм­мы на языке ассемблера, обеспечивающем в первую очередь про­стоту записи и возможность считывания команд.

Система команд микропроцессора — это полный перечень эле­ментарных действий, которые способен производить МП.

Управляемый этими командами МП, выполняет простые действия, та­кие как элементарные арифметические и логические операции, пересылку данных, сравнение двух величин и др. Система команд для МП КР580ВМ80 представлена 244 кодами операций. Команда характеризуется форматом, т.е. числом отведенных для нее разря­дов, которые разделены побайтно на определенные функциональные поля. Для команд используются одно-, двух- и трехбайтовые форматы (рис. 1.5.3). Многобайтовые команды должны храниться в соседних ячейках памяти.

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

 

Рисунок 1.5.3 - Формат команд

 

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

Программа на языке ассемблер — это последовательность строк, в каждой из которых записывается команда, представляющая со­бой предложение, состоящее из четырех полей: поля метки, поля кода операции, поля операнда и поля комментария.

Например,

LOOP :_MOV_D, A_; D←(A) (содержимое РгАзаносится в РгD).

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

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

В поле операнда, как правило, дается информация о данных, над которыми производятся операции. Данные, над которыми должны быть произведены операции, могут быть заданы непосредственно в поле команды (непосредственные операнды). В этих полях могут быть заданы адреса источника данных (SSS) — регистры или па­мять, где хранятся требуемые данные, или адреса регистров.

Кроме того, в этом поле может быть размещена информация о приемни­ке результата выполнения операции (DDD). В командах условных и безусловных переходов в этом поле хранится имя метки возврата.

Поле комментария начинается символом «;». Это поле имеет вспомогательные функции и используется только программистом при составлении программы.

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

Классификация полей по формату команды и виду адресации показана на рис. 1.5.3. Заштрихованные на рисунке разряды первого байта команд относятся к коду операции.

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

При регистровой адресации один байт информации может храниться в одном из регистров, коды адресов которых представлены в табл. 21.2. Двухбайтовая информация хранится в регистровых па­рах, коды адресов которых представлены в табл. 21.3, причем стар­ший байт информации (с 8-го по 15-й разряд) размещается в пер­вом регистре пары, а младший байт (с 0 по 7-й) — во втором регистре пары.

 

 

Рисунок 1.5.4 - Расположение в соседних ячейках памяти слов программы

 

Под регистром М понимается ячейка оперативной памяти, адрес которой находится в паре регистров HL или байте команды.

Классификация команд. Различают следующие группы команд: пересылки данных, арифметических и логических операций, перехода, управления и вызова подпрограмм.

Команды пересылки данных организуют перемещение данных между следующими устройствами:

регистр — регистр;

регистр — память;

данные, содержащиеся в команде, — регистр;

данные, содержащиеся в команде, — память.

Команды пересылки данных могут быть однобайтовыми, двухбайтовыми и трехбайтовыми:

С помощью однобайтовых команд производится обмен данными между внутренними регистрами микропроцессора, а также между внутренними регистрами и ячейками памяти.

Команды пересылки данных из регистра в регистр MOV r1, r2. Содержимое регистра r2 (источник операнда — S) пересылается в регистр rl (приемник операнда — D). В качестве регистров S и D может быть использован любой из регистров А, В, С, D, H, L.

Содержимое регистра SSS при этом не меняется. В регистре DDD просто появляется копия содержимого регистра SSS.

Команды пересылки данных из регистра в память MOV M, г. Со­держимое регистра r (источник операнда — S) пересылается в ячейку памяти (приемник операнда — М) по адресу, указанному в регистровой паре HL.

 В этой команде происходит замена кода символа D на код символа М.

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

Команды пересылки данных из памяти в регистр MOV r, M.

Со­держимое ячейки памяти (источник операнда — М) пересылается в регистр г (приемник операнда — D). Пересылка данных осуще­ствляется из ячейки памяти по адресу, указанному в регистровой паре HL, в регистр-приемник, в качестве которого может выступать любой из регистров В, С, D, H, L или аккумулятор А.

При пересылке данных между аккумулятором и ячейкой памя­ти в качестве адреса ячейки памяти может быть использовано так­же содержимое регистровых пар ВС или DE. Тогда для записи в память данных или чтения данных из памяти могут быть использо­ваны команды типа STAX или LDAX.

Команды косвенной загрузки аккумулятора LDAX rр. Содержимое ячейки памяти, адрес которой указан в паре регистров rр, пересылается в регистр А.

Команды косвенной записи содержимого аккумулятора в память STAX rр. Содержимое аккумулятора пересылается в ячейку памяти, адрес которой определен в паре регистров rр.

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

Команды загрузки регистра вторым байтом команды MVI, r байт {непосредственная пересылка второго байта команды в регистр). Со­держимое второго байта команды пересылается в регистр г.

Команда загрузки ячейки памяти вторым байтом команды MVI M, байт (непосредственная пересылка второго байта в память). Содержимое второго байта команды пересылается в ячейку памяти, адрес которой указан в регистрах Н и L.

Трехбайтовые команды служат для непосредственной записи в соответствующие регистровые пары данных из второго и третьего байтов.

Команда непосредственной загрузки пары регистров LXI rр, 2. Тре­тий байт команды посылается в старший регистр (rh) пары регистров, второй — в младший регистр (rl) пары регистров.

Помимо ранее рассмотренных команд, используемых для пересылки данных между аккумулятором и ячейкой памяти для записи в память данных или чтения данных из памяти, могут быть использованы команды типа STA или LDA.

Команда прямой записи содержимого аккумулятора в память STA [адр.]. Содержимое аккумулятора пересылается в ячейку памяти, адрес которой указан во втором и третьем байтах команды.

Команды арифметических операций предназначены для выполнения арифметических операций над данными, хранимыми в ре­гистрах и ячейках памяти. Перед началом выполнения любой ко­манды один из операндов должен быть размещен в аккумуляторе, а другой (если команда однобайтовая) — в одном из восьмираз­рядных внутренних регистров МП или ячейке памяти с адресом, содержащимся в регистровой паре HL. В двухбайтовой команде зна­чение второго операнда задается непосредственно во втором байте команды. Полученный результат операции фиксируется в аккумуляторе, анализируется, и результат анализа заносится в регистр признаков (флаговый регистр), что может повлиять на порядок выполнения вычислительного процесса. Рассмотрим некоторые команды.

Команды сложения содержимого аккумулятора с содержимым регистра ADD r. Команды выполняют сложение содержимого регистра-источника S с содержимым аккумулятора А. Результат сложения помещается в аккумулятор. Чтобы получить конкретную команду, необходимо в формате команды вместо символов S про­ставить код регистра-источника.

Команды вычитания содержимого регистра SUB г. Команды вы­полняют вычитание содержимого регистра-источника S из содержимого аккумулятора. Результат помещается в аккумулятор.

Команда непосредственного вычитания SUB байт. Содержимое второго байта команды вычитается из содержимого аккумулятора. Результат помещается в аккумулятор.

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

Операция И над содержимым регистра и аккумулятора ANA r. Команда выполняет параллельно поразрядное логическое. И над содержимым регистра-источника и аккумулятора. Результат опе­рации заносится в аккумулятор.

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

Операция ИЛИ над содержимым аккумулятора и одного из регистров ORA r. Команда аналогична команде ANA r, но в отличие от нее выполняет логическое сложение содержимого регистра и ак­кумулятора. Результат помещается в аккумулятор.

Команды перехода позволяют изменить последовательность вы­полнения команд программы за счет выполнения безусловных и условных переходов. При выполнении команд безусловного перехо да текущая последовательность команд нарушается и происходит переход к выполнению другой последовательности команд, указанной в команде. Для организации этого перехода необходимо изменить адрес обращения за очередной командой в счетчике ко­манд. При этом флаги влияния на организацию перехода не оказы­вают. При выполнении команд условного перехода дальнейший выбор одной из последовательностей команд зависит от значения одного из четырех флагов: нуля, знака, четности, переноса, т.е. сначала проверяется состояние одного из четырех флагов МП на выполнение указанного в команде условия, а затем происходит выполнение команды. Например, если результат арифметической операции равен нулю, то необходимо осуществить переход к выполнению другой последовательности команд, начальный адрес которой указан в команде, если не равен — продолжить выполне­ние текущей программы. Условия перехода приведены в таблице

Команды управления предназначены для управления работой МП, устройствами ввода-вывода, стеком. Команды этой группы не оказывают влияния на флаги. Рассмотрим некоторые из них.

Команда ввода данных IN порт предназначена для ввода данных от входного порта по ШД в аккумулятор.

Команда читается следующим образом: «Считывание данных из порта ввода ( FA) в аккумулятор».

Команда вывода данных OUT порт предназначена для вывода данных из аккумулятора в выходной порт.

Команды PUSH используются для временного сохранения содержимого внутренних регистров МП в стеке при переходе к выполнению подпрограммы. По команде POP происходит извлечение из стека временно хранящихся данных после выполнения подпрограммы.

С помощью команд XTHL и SPHL происходит обмен данными между указателем стека SP и парой регистров Н и L в том или ином направлении, соответственно.

По команде HLT (останов) останавливается выполнение текущей программы до тех пор, пока не появится запрос на прерыва­ние от устройств ввода-вывода.

По команде DI (запрещение прерываний) МП игнорирует запросы на прерывание до тех пор, пока не получит команду EI (разрешение прерываний).

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


Тема 1.6.



2019-10-11 259 Обсуждений (0)
Система команд микропроцессора 0.00 из 5.00 0 оценок









Обсуждение в статье: Система команд микропроцессора

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (259)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.014 сек.)