Функционирование микро-ЭВМ
Пусть требуется выполнить простую операцию сложения трех чисел, например 10+5+18 = 3310. Короткая и простая микропрограмма выполнения этой операции могла бы быть записана в следующей последовательности.
Команда 1: загрузить (LOAD) первое число (1010) в ЦП.
Команда 2: сложить (ADD) второе число (510) с первым.
Команда 3 сложить (ADD) третье число (1810) с двумя предыдущими.
Команда 4: поместить (STORE) сумму (3310) в ячейку памяти 2000Н.
После загрузки в память программы эти команды могли бы извлекаться из нее как команды памяти, показанной на рис. 4.10. Заметим, что первая команда программы начинается с адреса 0000Н. Эта команда (LOAD число 0AH) использует 2 байт памяти. Первый байт памяти содержит оперативную часть команды, другой — операнд. Код операции LOAD для микропроцессора, используемого в этом примере, будет 86Н (1000 01102). Операнд 0AH (0000 10102) является первым числом, подлежащим загрузке в аккумулятор микропроцессора. Заметим, что рис. 4.10 является широко распространенным представлением содержимого памяти и адресов в шестнадцатеричной записи. В реальной действующей машине такая информация представляется в форме напряжения Н- и L-уровней.
Предположим, что программа размещена в блоке ОЗУ микро-ЭВМ (рис. 4.1), в которую входят устройства, представленные на рис. 4.7. В таком случае рис. 4.11 иллюстрирует каждую операцию программы (LOAD, ADD, ADD, STORE).
Операция загрузки (LOAD) первой команды подробно приведена на рис. 4.11, а и показывает, что содержимое ячейки памяти 0001Н загружено в аккумулятор, который содержит после этого 0000 10102 — первое слагаемое число. В результате операции загрузки стирается предыдущее и записывается новое содержимое аккумулятора. Вторая команда, операция ADD, детализирована на рис. 4.11,6. Содержимое ячейки памяти 0003Н (0000 01012) складывается с содержимым аккумулятора 0000 10102, что дает сумму 0000 11112, помещаемую в аккумулятор, и мы можем заметить, что содержимое аккумулятора изменяется при операции ADD.
На рис. 4.11,0 показана вторая операция ADD (команда 3); содержимое аккумулятора — сумма 0000 11112 сложена с содержимым ячейки памяти 0005Н, т. е. выполняется операция 0000 1111+0001 0010=0010 0001. Окончательно 0010 0001 появляется в аккумуляторе после второй операции ADD.
Операция STORE (РАЗМЕСТИТЬ) по команде 4 представлена на рис. 4.11, г. Содержимое аккумулятора (0010 00012) передано и размещено в ячейке памяти по адресу 2000Н. Заметим, так как это важно, что ячейки памяти данных были идентифицированы в памяти программы двумя раздельными байтами (0007Н и 0008Н). Ячейка памяти программы 0006Н содержит КОП В7Н прямой команды STORE (см. рис. 4.10).
Рассмотрим извлечение, декодирование и выполнение команды LOAD по адресам 0000Н и 0001Н в программе.
Этот тип команды будет выполнен, вероятно, за время около 2—6 мкс большинством микро-ЭВМ. Рисунок 4.12 иллюстрирует процедуру выполнения центральным процессором этой специальной операции.
Рассмотрим сверху слева направо последовательность действий на рис. 4.12: счетчик команд прежде всего устанавливает
Рис. 4.11. Команды: a-LOAD; б-ADD; e —ADD: г-STORE
адрес первого этапа программы. После этого 16-разрядный адрес передается в адресный регистр, затем на адресную шину и в память программы. Для активизации памяти программы ЦП выдает сигнал считывания программы (1 на линии R/W), в то время как дешифратор адресов (который не входит в состав ЦП) активизирует выбор кристалла CS нулем. Затем счетчик команд инкрементируется до 0001Н, ячейка памяти программы 0000Н становится доступной и ее содержимое считывается на шину данных. Код операции (86Н) команды LOAD передается в регистр ЦП. Этап извлечения КОП команды LOAD завершен.
Затем КОП (86Н), содержащийся в регистре команды ЦП, интерпретируется дешифратором команд. В данном случае ЦП определяет, идет ли речь о команде LOAD непосредственно, что означает загрузку им содержимого памяти, адрес которой следует непосредственно за КОП, в аккумулятор. Содержимое счетчика команд (0001Н) передается в адресный регистр, на адресную шину и в память
Рис. 4.12. Подробный анализ команды LOAD непосредственных данных
Центральный процессор выдает импульс HIGH считывания на вход R/W памяти. Импульс LOW поступает на вход СS памяти, что активизирует память. В третьей строке (снизу) на рис. 4.12 счетчик команд инкрементируется до 0002Н, что подготавливает его к извлечению последующей команды. Ячейка памяти 0001Н становится доступной, и ее содержимое (0AH) поступает на шину данных, затем передается в аккумулятор. В ходе этапа извлечения КОП всегда помещается в регистр команд.
Упражнения.
4.55. Две части команды микропроцессоров называются операцией и __________ .
4.56. См. рис. 4.10. Когда ячейка памяти 0002Н доступна, ее содержимое передается в регистр _______ЦП через шину ________(адреса, данных).
4.57. См. рис. 4.10. Ячейка памяти 0003Н содержит 05Н, что рассматривается ЦП как ________ (операция, операнд) команды.
4.58. Двоичное 16-разрядное число может быть представлено шестнадцатеричным числом цифрами ________.
4.59. Привести три последовательных этапа цикла команды микропроцессора.
4.60. См. рис. 4.12. Этап извлечения является основным при операции __________ (считывания, записи), содержимое памяти помещается в __________ (аккумулятор, регистр команд) микропроцессора.
4.61. В ходе извлечения __________ (дешифратор команд, счетчик команд) указывает адрес КОП извлечения из памяти.
4.62. См. рис. 4.12. Какие другие входы памяти необходимы для активизации считывания байта кроме адресного входа?
4.63. См. рис. 4.10. Какое шестнадцатеричное число должно быть помещено в ячейку памяти 2000Н после выполнения ЦП команды 4?
4.64. См. рис. 4.12. После последовательного выполнения последовательности действий счетчик команд восстанавливается ___________ (дешифратором адреса, оператором).
Решения
4.55. Операндом. 4.56. Команд; данных. 4.57. Операнд. 4.58. Четырьмя. Например, 0010 0000 0000 11112 представляется в шестнадцатеричном коде как 200FH. 4.59. Извлечение — декодирование — выполнение. 4.60. Считывания; регистр команд. 4.61. Счетчик команд. 4.62. Входы R/W (чтение/запись) и CS (выбор кристалла). 4.63. Программа выполняет сложение 0АН+05Н+12Н, сумма будет 21Н. Эта сумма помещена в ячейку памяти 2000Н (см. рис. 4.11, г). 4.64. Оператором.
Дата добавления: 2016-07-05; просмотров: 3002;