Задание 8. Анализ выполненной команды по алгоритму

Пользуясь результатами предыдущего задания, зафиксированными в таблице 1, сопоставим выполнение этой конкретной команды с общим алгоритмом работы микроЭВМ.

1) Вычисление адреса команды – в данном случае МП не производил этого вычисления. Номер ЯП, куда был помещен первый байт команды, мы установили в РС заранее.

2) Выборка КОП – осуществлена в цикле М1, в такте ТЗ которого КОП записан в РК, где и хранится в течение выполнения всей команды.

3) Дешифрация КОП – производится не только сразу после помещения КОПа в РК (на тактах Т4, Т5 цикла М1), но и на более поздних этапах выполнения команды: на последующих циклах М2, М3 и т.д. В данном случае в результате первичной дешифрации КОПа «36» МП «установил», что команда двухбайтная и адресация непосредственная. Образное слово «установил» (так же как и другие подобные термины «воспринял», «знает» и т.д.) по отношению к неодушевленному МП, разумеется, не означает какого-либо осмысленного действия, а содержит только то, что по определенному коду дешифратор УУ выдаст строго определенные управляющие сигналы, которые обеспечат предписанные КОПом действия. Такая реакция заложена в самой схеме дешифратора. В данном случае действия МП будут таковы: переход к выполнению цикла М2 – чтение из ЗУ второго байта команды, причем эта информация уже будет воспринята как операнд.

4) Вычисление адреса операнда. Т.к. адресация непосредственная, то вычисление адреса операнда сводится для МП к выработке управляющего сигнала на регистр инкремент/декремент адреса (управляемый адресный регистр), который увеличит текущий адрес на 1, т.е. обеспечивается переход к последующей ЯП.

5) Выборка операнда производится циклом М2, т.е. в Т1 УУ МП выставляет на ШД, а в Т2 записывает в регистр системного контроллера управляющее слово, соответствующее циклу ЧТ из ЗУ. На МА выставляется содержимое РС, т.е. адрес второго байта команды (0806). На МУ системным контроллером в такте Т2 выставляется сигнал ЧЗУ. Содержимое ЯП 0806 выставляется на МД и оттуда в такте Т3 считывается во внутренние регистры МП (а не в РК).

6) Исполнение операции, заданной КОП заключается в пересылке числа 50 из внутренних регистров по адресу, записанному в HL. Эти операции стали ясны МП в результате вторичной дешифрации КОПа и будут осуществляться циклом М3 – ЗП в ЗУ. Итак, опять в системный контроллер записывается управляющее слово, соответствующее циклу М3, которое и будет ответственно за сигналы, управляющие исполнением цикла М3. На МА из регистров HL выставляется адрес ЯП ОС10. На МД из внутренних регистров – операнд 50, а на МУ – сигнал ЗП ЗУ.

В результате всех этих действий требуемая команда выполнена.

Задание 9. С помощью команды непосредственной пересылки (КОП=36) перешлите число 33 в ЯП 0F00. Выполните команду по циклам. Заполните таблицу 1.

Задание 10. Выполните по циклам команду «Прямое запоминание аккумулятора (А)»: Содержимое А передается в ЯП, адрес которой находится во втором и третьем байтах команды. КОП = 32.

Такая адресация, когда адрес ЯП, где должен быть расположен операнд, задается как второй и третий байт команды, называется прямой. Так, например, если операнд должен находиться в ЯП 0D55, то полный код команды: 32 0D 55. Команда в этом случае трехбайтная и выполняется за 4 цикла.

Действуйте аналогично заданию 7, но учтите, что пересылаемое число (какое выберете) должно быть заранее записано в А. При записи в ОЗУ кода команды имейте в виду, что после КОП в следующую по номеру ЯП нужно записать младшие разряды выбранной ЯП (55), и только в следующую по старшинству ячейку – старшие (0D). Это связано с очередностью записи адреса в регистры W и Z. В виду того, что ША 16-разрядная, а ШД 8-разрядная, запись адресной части команды происходит за два цикла: вначале записываются младшие разряды в регистр Z, а затем старшие в регистр W.

В процессе исполнения команды заполняется таблица 1. Определите типы циклов, начальное и конечное состояние внутренних регистров МП и ЯП. Убедитесь, что после 4 циклов команда выполнена. Сопоставьте действия микроЭВМ с алгоритмом МП.

Задание 11. Выполните по циклам команду регистрового сложения: содержимое внутреннего регистра (в данном случае возьмем В) складывается с содержимым аккумулятора и результат помещается в аккумулятор (А).

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

КОП = 80. Команда однобайтная и выполняется за один машинный цикл.

Действуйте аналогично заданию 7, но учтите, что выбранный вами операнд заранее должен быть записан в регистр В, а также какое-либо число должно быть записано в А.

Задание 12. Выполните по циклам команду ввода: данные из указанного в команде порта ввода-вывода записываются в аккумулятор.

Любое устройство ввода-вывода подключается к магистралям микроЭВМ через буферный регистр – порт. Каждый такой порт имеет свой адрес, который дешифруется в соответствующий сигнал обращения. В нашей микроЭВМ порт – регистр для устройства ввода-вывода имеет адрес 05. Таким образом, команды ввода-вывода в нашей машине двухбайтные. КОП команды ввода = DВ; полный код команды – DВ05. Команда выполняется за три цикла.

Действуйте, как в задании 7, но имейте в виду, что на устройство ввода нужно заранее подать какое-либо число – группой из 8 левых нижних переключателей, имитирующих устройство ввода.

Задание 13. Выполните по циклам команду вывода: содержимое А передается в указанный порт.

КОП=D3. Команда выполняется за 3 цикла.

Определите, какого типа адресация используется в командах ввода-вывода.

Задание 17. Выполните по циклам команду вызова подпрограммы. Команда эта трехбайтная и выполняется за 5 циклов. Первый байт, как всегда, КОП, равный для этой команды СД. Второй и третий байты должны составлять адрес (номер начальной ЯП) вызываемой подпрограммы. В результате выполнения команды вызова происходит а) передача управления начальному адресу вызываемой подпрограммы (второй и третий байты записываются в программный счетчик РС), б) адрес возврата из подпрограммы (номер следующей за командой вызова ЯП) записывается в стек, т.е. область ОЗУ, задаваемую указателем стека SP.

Обязательно отметьте в таблице начальное и конечное состояние РС и SP, а также ЯП NN SP-1 и SP-2 (а также №№ ЯП SP-H и SP-L). Обратите внимание на два последних цикла команды записи в стек (М7).

Например: нужно вызвать подпрограмму с начальным адресом 0DDD. Тогда команда вызова имеет вид: CD0DDD. Пусть она записана в следующих ЯП ОЗУ: CD - 0950; DD - 0951; 0D - 0952. Адрес возврата – 0953. В результате выполнения команды С0DDDD в РС окажется адрес вызова 0DDD, а в ячейках стека SP-1 (SP-H?) и SP-2 (SP-L?) – адрес возврата 0953. Указатель стека уменьшится на 2 (был 0bb0, должен стать – 0BAE). (См. в ЯП 0BAE – 53, 0BAF – 09).

Задание 18. Выполните по циклам команду возврата из подпрограммы. Команда однобайтная, выполняется за 3 цикла, КОП = С9. По этой команде управление передается адресу возврата, записанному в ЯП стека.

Если эта команда выполняется сразу за предыдущей командой вызова подпрограммы CD0DDD, то КОП команды возврата С9 следует записать в ЯП 0DDD, которой было передано управление предыдущей командой. Т.к. в предыдущей команде вызова адрес возврата 0953 был записан в ЯП SP-1 (SP-H?) и SP-2 (SP-L?), то команда возврата считает этот адрес возврата снова в РС. Одновременно к SP прибавится два раза по единице и восстановится первоначальное значение SP-0BB0.

Отметьте в таблице начальное и конечное состояние РС и SP. Обратите внимание на второй и третий циклы – чтение из стека (М6).

Приложение. Системы счисления

Десятичная Двоичная 16-ричная
  0 0 0 0 0 0 0 0
  0 0 0 1 0 0 0 1
  0 0 1 0 0 0 1 0
  0 0 1 1 0 0 1 1
  0 1 0 0 0 1 0 0
  0 1 0 1 0 1 0 1
  0 1 1 0 0 1 1 0
  0 1 1 1 0 1 1 1
  1 0 0 0 1 0 0 0
  1 0 0 1 1 0 0 1
  1 0 1 0 A
  1 0 1 1 B
  1 1 0 0 C
  1 1 0 1 D
  1 1 1 0 E
  1 1 1 1 F
D7 D6 D5 D4 D3 D2 D1 D0
S Z O AC O P   CY

 
 


 
 

 
 



[1] Н – указание на то, что число задается и индицируется на дисплее в 16-ричной системе счисления.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: