Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2007 - 1.doc
Скачиваний:
4
Добавлен:
17.08.2019
Размер:
546.3 Кб
Скачать

тема РГР: «Графическое построение схемы исполнения машинных команд»

задание. сформировать схему двух трёх команд.

Обобщенная словесная характеристика исполняемых команд.

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

обобщенных словесных характеристик исполняемых команд.

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

Пояснения к обобщенной словесной характеристике:

  • перед исполнением ассемблерной команды в РСчК сформирован истинный физический адрес ячейки памяти программ, где располагается код ассемблерной команды;

  • не учитывается разрядность, следовательно, невозможно определить количество слов в команде;

  • номера РОНов источника и приёмника определяются их месторасположением в коде команды;

  • состояние флагов, в регистре флагов, изменяется в соответствии с типом ассемблерной команды;

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

вопросы к защите

  1. Выполнить численные примеры логических операций.

  2. Привести состав микрокоманд ассемблерной команды.

  3. Указать состояние флагов после исполнения команды.

1. Конъюнкция – Rd = Rd Rr – выполняется для двух произвольных РОНов, при этом результат операции вносится в РОН, номер которого приводится в характеристике поля Rd, т.е. является приёмником. Содержимое РОНа источника (Rr) остаётся неизменным после выполнения команды, а первоначальное содержимое РОНа приёмника теряется безвозвратно. В соответствии с результатом выполненной команды формируются состояния флагов в регистре состояний. Реализация данной операции возможна при использовании формата двухадресной ассемблерной команды (АК), состоящей из одного слова, где указываются код операции (КОп) в операционной части и порядковые номера РОНов участвующих при исполнении команды в адресной части.

Микрокоманды, предлагаемые для исполнения команды конъюнкция:

  • извлечение из памяти программ кода команды, которая будет исполняться;

  • декодирование кода команды, указанного в операционной части (основного и дополнительного);

  • формирование адреса РОНа источника, указанного в адресной части кода команды;

  • формирование адреса РОНа приёмника, указанного в адресной части кода команды;

  • чтение данных из РОНа источника;

  • чтение данных из РОНа приёмника;

  • выполнение логической операции конъюнкция над содержимым двух РОНов (Rd  Rr);

  • загрузка промежуточного результата в служебный регистр (при схемотехнической необходимости);

  • изменение состояния флагов в регистре состояния (РФ), в соответствии с результатом;

  • формирование адреса РОНа приёмника, указанного в адресной части кода команды;

  • загрузка результата выполнения операции конъюнкция в РОН приёмник.

  • инкрементирование регистра счетчика команд (РСчК)  для формирования физического адреса ячейки памяти, где располагается код команды, которая должна будет исполниться;

  • переход к исполнению следующей команды.

  • А налогичным образом формируется последовательность микрокоманд при исполнении всех логических и арифметических ассемблерных команд, где участвуют два РОНа: исключающее ИЛИ, вычитание, умножение и другие аналогичные.

2. Конъюнкция – Rd = Rd К – выполняется для произвольного РОНа и константы (К), при этом результат операции вносится в РОН, номер которого приводится в характеристике поля Rd, т.е. является приёмником. Константа располагается в адресной части формата команды и используется в качестве операнда источника. После выполнения команды константа остаётся неизменной. В соответствии с результатом выполненной команды формируются состояния флагов в регистре состояний. Реализация данной операции возможна при использовании формата одноадресной ассемблерной команды, состоящей из двух слов, где, в первом слове, указываются КОп в операционной части и порядковый номер РОНа приёмника в адресной части, а во втором слове, указывается константа.

Микрокоманды, предлагаемые для исполнения команды конъюнкция:

  • извлечение из памяти программ кода команды;

  • декодирование кода команды;

  • формирование адреса РОНа приёмника;

  • хранение адреса РОНа приёмника в служебном регистре (при схемотехнической необходимости);

  • инкрементирование РСчК;

  • извлечение из памяти программ константы;

  • выполнение логической операции конъюнкция над содержимым РОНа и константы (Rd  К);

  • загрузка промежуточного результата в служебный регистр (при схемотехнической необходимости);

  • изменение состояния РФ;

  • формирование адреса РОНа приёмника, указанного в служебном регистре;

  • загрузка результата выполнения операции конъюнкция в РОН приёмник;

  • инкрементирование РСчК;.

  • переход к исполнению следующей команды.

  • Аналогичным образом формируется последовательность микрокоманд при исполнении всех логических и арифметических ассемблерных команд, где участвуют РОН и константа: исключающее ИЛИ, вычитание, умножение и другие аналогичные.

3. Сложение двух РОНов с переносом – Rd = Rd + Rr + C – выполняется для двух произвольных РОНов, при этом результат операции вносится в РОН, номер которого приводится в характеристике поля Rd, т.е. является приёмником. Содержимое РОНа источника (Rr) остаётся неизменным после выполнения команды, а первоначальное содержимое РОНа приёмника теряется безвозвратно. К полученной сумме прибавляется то значение флага С, которое было до исполнения команды. В соответствии с результатом выполненной команды формируются состояния флагов в регистре состояний. Реализация данной операции возможна при использовании формата двухадресной ассемблерной команды, состоящей из одного слова, где указываются КОп в операционной части и порядковые номера РОНов участвующих в исполнении команды в адресной части.

Микрокоманды, предлагаемые для исполнения команды сложение двух РОНов с переносом:

  • извлечение из памяти программ кода команды;

  • декодирование кода команды;

  • формирование адреса РОНа приёмника;

  • формирование адреса РОНа источника;

  • чтение данных из РОНа источника;

  • чтение данных из РОНа приёмника;

  • выполнение арифметической операции сложение двух РОНов над содержимым двух РОНов (Rd + Rr);

  • загрузка промежуточного результата в служебный регистр (при схемотехнической необходимости);

  • вып-ние арифм-кой операции сложение промежуточного результата и содержимого флага С;

  • загрузка промежуточного результата в служебный регистр (при схемотехнической необходимости);

  • изменение состояния РФ;

  • формирование адреса РОНа приёмника;

  • загрузка результата выполнения операции сложение двух РОНов с переносом в РОН приёмник;

  • инкрементирование РСчК;.

  • переход к исполнению следующей команды.

  • А налогичным образом формируется последовательность микрокоманд при исполнении ассемблерных команд, где участвуют как РОНы (РОН и константа), так и содержимое флага переноса: вычитание константы из РОНа с заёмом и другие аналогичные.

4. Переход, если «равно» – BREQ k – выполняется по состоянию флага z = 1, при этом величина изменения числа в РСчК задается константой со знаком k. Выполнение команды не изменяет состояния флагов в регистре состояний. Реализация данной операции возможна при использовании формата безадресной ассемблерной команды, состоящей из одного слова, где указываются КОп в операционной части и константа, характеризующая направление и величину перехода  в адресной части.

Микрокоманды, предлагаемые для исполнения команды переход, если «равно»:

  • извлечение из памяти программ кода команды;

  • декодирование кода команды;

  • извлечение из памяти программ константы перехода;

  • загрузка константы перехода в служебный регистр (при схемотехнической необходимости);

  • анализ состояния флага z:

  • если состояние флага z = 0, следовательно, передачи управления нет, готовится к исполнению команда непосредственно следующая за командой перехода;

  • если состояние флага z = 1, следовательно, выполняется передача управления;

  • алгебраически суммировать текущее состояние РСчК и константы перехода;

  • загрузить новое число в РСчК;

  • переход к исполнению следующей команды.

  • инкрементирование РСчК;

  • переход к исполнению следующей команды.

  • Аналогичным образом формируется последовательность микрокоманд при исполнении ассемблерных команд: переход, если «нет переноса», переход по условию «меньше» и другие аналогичные.

5. Декремент РОНа – Rd = Rd – 1 – выполняется для произвольного РОНа, при этом результат операции вносится в РОН, номер которого приводится в характеристике поля Rd, т.е. является приёмником. В данной команде РОНом источником и РОНом приёмником является один и тот же РОН. В соответствии с результатом выполненной команды формируются состояния флагов в регистре состояний. Реализация данной операции возможна при использовании формата одноадресной ассемблерной команды, состоящей из одного слова, где указываются КОп в операционной части и порядковый номер РОНа участвующего в исполнении команды в адресной части.

Микрокоманды, предлагаемые для исполнения команды Декремент РОНа:

  • извлечение из памяти программ кода команды;

  • декодирование кода команды;

  • формирование адреса РОНа источника;

  • чтение данных из РОНа источника;

  • выполнение арифметической операции вычитание единицы из содержимого РОН (Rd = Rd - 1);

  • изменение состояния РФ;

  • формирование адреса РОНа приёмника (при схемотехнической необходимости);

  • загрузка результата в РОН приемник;

  • инкрементирование РСчК;.

  • переход к исполнению следующей команды.

  • Аналогичным образом формируется последовательность микрокоманд при исполнении ассемблерных команд: инкремент, логический сдвиг влево, перевод в обратный код, сброс всех разрядов РОН и другие аналогичные.

6. Абсолютный вызов подпрограммы – CALL K – выполняется по произвольному адресу, указанному константой без знака К, которая вносится в РСчК. Выполнение команды не изменяет состояния флагов в регистре состояний. Реализация данной операции возможна при использовании формата безадресной ассемблерной команды, состоящей из двух слов, где, первое слово указывает КОп и составляет операционную часть, а во втором слове, указывается константа k, определяющая новое значение РСчК.

Микрокоманды, предлагаемые для исполнения команды абсолютный вызов подпрограммы:

  • извлечение из памяти программ кода команды;

  • декодирование кода команды;

  • декрементирование регистра указателя вершины стека (РУС) для подготовки нового адреса ОЗУ;

  • формирование доступа к ячейке памяти ОЗУ, адрес которой указан в РУС;

  • инкрементирование РСчК;

  • извлечение из памяти программ абсолютного адреса вызываемой подпрограммы;

  • загрузка абсолютного адреса в служебный регистр;

  • инкрементирование РСчК;

  • чтение содержимого РСчК;

  • загрузка абсолютного адреса возврата из подпрограммы в ОЗУ;

  • загрузка содержимого служебного регистра в РСчК;

  • переход к исполнению следующей команды.

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

7. Пересылка данных между двумя РОНами – Rd = Rr – выполняется для произвольных РОНов, при этом результат операции вносится в РОН, номер которого приводится в характеристике поля Rd, т.е. является приёмником. Содержимое РОНа источника (Rr) остаётся неизменным после выполнения команды, а первоначальное содержимое РОНа приёмника теряется безвозвратно. Выполнение команды не изменяет состояния флагов в регистре состояний. Реализация данной операции возможна при использовании формата двухадресной ассемблерной команды, состоящей из одного слова, где указываются код операции (КОп) в операционной части и порядковые номера РОНов участвующих в исполнении команды в адресной части.

Микрокоманды, предлагаемые для исполнения команды пересылка данных между двумя РОНами:

  • извлечение из памяти программ кода команды, которая будет исполняться;

  • декодирование кода команды;

  • формирование адреса РОНа источника;

  • формирование адреса РОНа приёмника;

  • чтение данных из РОНа источника;

  • загрузка данных РОНа источника в служебный регистр;

  • чтение данных из РОНа приёмника;

  • загрузка данных РОНа источника в РОН приёмник;

  • загрузка данных служебного регистра в РОН приёмник;

  • инкрементирование РСчК;.

  • переход к исполнению следующей команды.

  • Аналогичным образом формируется последовательность микрокоманд при исполнении ассемблерных команд пересылки данных из регистров ввода-вывода.

8. Косвенное чтение данных в РОН из ячейки памяти данных с постинкрементном – Rd = [Z] – выполняется для группы специализированных РОНов, при этом результат операции вносится в РОН, номер которого приводится в характеристике поля Rd, т.е. является приёмником. Операнд источник указывается косвенно в регистре [Z], причём в регистр Z может входить несколько известных по умолчанию регистров. Особенность команды заключается в том, что РОН приёмник не может входить в регистр Z. Выполнение команды не изменяет состояния флагов в регистре состояний. Реализация данной операции возможна при использовании формата одноадресной ассемблерной команды, состоящей из одного слова, где указываются код операции (КОп) совместно с указанием на регистр Z в операционной части и порядковый номер РОНа в адресной части.

Микрокоманды, предлагаемые для исполнения команды косвенное чтение данных в РОН из ячейки памяти данных с постинкрементном:

  • извлечение из памяти программ кода команды, которая будет исполняться;

  • декодирование кода команды;

  • формирование адреса источника (регистр Z);

  • формирование адреса ОЗУ, указанного в регистре Z;

  • чтение данных из ОЗУ в служебный регистр;

  • формирование адреса РОНа приёмника;

  • загрузка данных из служебного регистра в РОН приёмник;

  • чтение данных из регистра РОН (Z);

  • выполнение арифметической операции сложение единицы из содержимого РОН (Z) (Rd = Rd + 1);

  • загрузка результата в РОН (Z);

  • инкрементирование РСчК;

  • переход к исполнению следующей команды.