Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Управление вычислительным процессом, сдвиги и логические операции

Поиск

РАЗДЕЛ 1. БАЗОВАЯ ЭВМ

 

Назначение базовой ЭВМ

       Базовая ЭВМ - это простая гипотетическая машина, обладающая типичными чертами многих конкретных ЭВМ. Знание принципов построения и функционирования этой ЭВМ будет хорошей базой для освоения ЭВМ любых типов и моделей. Естественно, что начинать изучение ЭВМ лучше всего с простых моделей, которые и были выбраны за прототип базовой ЭВМ.

 

Структура базовой ЭВМ

       На рис. 1.1 приведена упрощенная структура базовой ЭВМ. Это одноадресная ЭВМ, работающая с 16-разрядными словами. В ней реализованы два вида адресации: прямая и косвенная.

       Рассмотрим составные части базовой ЭВМ, не касаясь пока устройств ввода-вывода (УВВ) и пульта управления (ПУ).

 

Рис. 1.1. Модель базовой ЭВМ

       Память. Состоит из 2048 ячеек (16-битовых) с адресами 0,1,...,2046,2047.Восемь ячеек памяти с адресами 008,...,00F несколько отличаются от остальных. Эти ячейки называются индексными и их лучше использовать в циклических программах (п. 1.5).

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

       Счетчик команд (СК) служит для организации обращений к ячейкам памяти, в которых хранятся команды программы. После исполнения любой команды СК указывает адрес ячейки памяти, содержащей следующую команду программы. Так как команды могут размещаться в любой из 2048 = 211 ячеек памяти, то СК имеет 11 разрядов.

       Регистр адреса (РА) 11-разрядный регистр, содержащий значение исполнительного адреса (адреса ячейки памяти, к которой обращается ЭВМ за командой или данными).

       Регистр команд (РК). Этот 16-разрядный регистр используется для хранения кода команды, непосредственно выполняемой машиной.

       Регистр данных (РД). Используется для временного хранения 16-рязрядных слов при обмене информацией между памятью и процессором.

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

       Регистр переноса (С) - это одноразрядный регистр, выступающий в качестве продолжения аккумулятора и заполняющийся при переполнении А. Этот регистр используется при выполнении сдвигов.

       Арифметическо-логическое устройство (АЛУ) может выполнять такие арифметические операции, как сложение и сложение с учетом переноса, полученного в результате выполнения предыдущей операции. Кроме того, оно способно выполнять операции логического умножения, инвертирования, циклического сдвига.

 

Система команд базовой ЭВМ

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

· обращения к памяти (адресные команды);

· обращения к регистрам (регистровые или безадресные команды);

· команды ввода-вывода.

           

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

       Безадресные команды выполняют различные действия без ссылок на ячейку памяти. Например, команда CLA (табл. 1.1) предписывает ЭВМ очистить аккумулятор (записать в А код нуля). Это команда обработки операнда, расположенного в конкретном месте, "известном" машине. Другой пример безадресной команды - команда HLT.

       Команды ввода-вывода осуществляют обмен данными между процессором и внешними устройствами ЭВМ.

       Полный перечень команд базовой ЭВМ приведен в таблице 1.1.

       Форматы команд и способы адресации. Разработчики базовой ЭВМ выбрали три формата 16-битовых (однословных) команд с 4-битовым кодом операции (рис. 1.2).

 

Рис 1.2. Форматы команд: а - адресных, б - безадресных, в - команд ввода-вывода

 

       В командах обращения к памяти на адрес отведено 11 бит. Следовательно, можно прямо адресоваться к 211 = 2048 ячейкам памяти, т.е. ко всей памяти базовой ЭВМ (прямая адресация). В этом случае бит вида адресации должен содержать 0. Если же в этом же бите установлена 1, то адрес, размещенный в адресной части команды, указывает на ячейку, в которой находится адрес операнда (косвенная адресация).

       Отметим, что при мнемонической записи команд указание косвенной адресации производится путем заключения адреса в скобки. Например, команда ADD (25) -сложить содержимое А с содержимым ячейки, адрес которой хранится в ячейке 25 (косвенная адресация).

 

Арифметические операции

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

       Целые двоичные числа без знака можно использовать для представления нуля и целых положительных чисел. При размещении таких чисел в одном 16-разрядном слове они могут изменяться от (0000 0000 0000 0000)2 = (0000)16 = 0 до (1111 1111 1111 1111)2 = (1FFF)16 = 215 - 1 = 65535.

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

       Целые двоичные числа со знаком используются тогда, когда необходимо различать положительные и отрицательные числа. В них старший бит используется для кодирования знака: 0 - для положительных чисел и 1 - для отрицательных чисел. Отрицательные числа представлены в дополнительном коде (табл. 1.2). Это упрощает конструкцию ЭВМ, так как при сложении двух таких чисел, имеющих разные знаки, не требуется переходить к операциям вычитания меньшего (по модулю) числа из большего и присвоения результату знака большего числа.

 

Таблица 1.1

Система команд базовой ЭВМ

Наименование Мнемоника Код Описание

Адресные команды

Логическое умножение Пересылка Сложение Сложение с переносом Вычитание AND M MOV M ADD M ADC M SUB M 1XXX 3XXX 4XXX 5XXX 6XXX (M) & (A) è A (A) è M (M) + (A) è A (M) + (A) + (C) è A (A) – (M) è A
Переход, если перенос Переход, если плюс Переход, если минус Переход, если ноль Безусловный переход Приращение и пропуск BCS M BPL M BMI M BEQ M BR M ISZ M 8XXX 9XXX AXXX BXXX CXXX 0XXX Если (C) = 1, то M è CK Если (A) >= 0, то M è CK Если (A) < 0, то M è CK Если (A)и(C) = 0, то M è CK M è CK (M) + 1 è M, если (M) >= 0, то (CK) + 1 è CK
Обращение к подпрограмме JSR M 2XXX (CK) è M, M + 1 è CK

Безадресные команды

Очистка аккумулятора Очистка рег. переноса Инверсия аккумулятора Инверсия рег. переноса Циклический сдвиг влево на 1 разряд Циклический сдвиг вправо на 1 разряд Инкремент аккумулятора Декремент аккумулятора CLA CLC CMA CMC ROL   ROR   INC DEC F200 F300 F400 F500 F600   F700   F800 F900 0 è A 0 è C (!A) è A (!C) è C Содержимое A и C сдвигается влево, А(15) è C, C è A(0) Содержимое A и C сдвигается вправо, A(0) è C, C è A(15) (A) + 1 è A (A) – 1 è A
Останов Нет операции Разрешение прерывания Запрещение прерывания HLT NOP EI DI F000 F100 FA00 FB00  

Команды ввода-вывода

Очистка флага Опрос флага   Ввод Вывод CLF B TSF B   IN OUT E0XX E1XX   E2XX E3XX 0 è флаг устр. B Если (флаг устр. B) = 1, то (CK) + 1 è CK (B) è A (A) è B

Примечания:

(M), (A), (CK), (C), (B) – содержимое ячейки с адресом M, аккумулятора, счетчика команд, регистра переноса и регистра данных устройства ввода-вывода с адресом B.

XXX – адрес ячейки памяти.

XX – адрес устройства ввода-вывода.

 

           

Рассмотрим простое правило для получения дополнительного кода двоичного числа (для примера взято двоичное число, эквивалентное числу 709):

 

1. Получить инверсию заданного числа (все его 0 заменить на 1, а все 1 - на 0):

           

     0 000 0010 1100 0101 Число

     1 111 1101 0011 1010 Инверсия числа

       2. Образовать дополнительный код заданного числа путем добавления 1 к инверсии этого числа:

           

      1 111 1101 0011 1010 Инверсия числа

     +

                    1 Слагаемое 1

      ————————————————————

      1 111 1101 0011 1011 Дополнительный код числа

                                            

       Проверим правильность вычисления дополнения путем сложения заданного числа и его дополнения:

           

      1 1 111 1111 1111 1111 Переносы

     +

     0 000 0010 1100 0101 Число

     1 111 1101 0011 1011 Дополнительный код числа

      ——————————————————————

      1 0 000 0000 0000 0000 0

                       

       Так как перенос из старшего разряда выпадает за пределы разрядной сетки, то он не учитывается. Оставшаяся же 16-разрядная сумма равна нулю, что подтверждает правильность преобразования.

Таблица 1.2.

Десятичные эквиваленты 16-битовых двоичных чисел в дополнительном коде.

Двоичное число в  прямом коде Десятичное число Двоичное число в дополнительном коде Десятичное число
0 000 0000 0000 0000 0 000 0000 0000 0001 0 000 0000 0000 0010 0 000 0000 0000 0011 ... 0 111 1111 1111 1110 0 111 1111 1111 1111 —— 0 +1 +2 +3 ... +32766 +32767 —— —— 1 111 1111 1111 1111 1 111 1111 1111 1110 1 111 1111 1111 1101 ... 1 000 0000 0000 0010 1 000 0000 0000 0001 1 000 0000 0000 0000 —— -1 -2 -3 ... -32766 -32767 -32768

 

       Сложение целых двоичных чисел со знаком и без знака выполняется в базовой ЭВМ с помощью команды ADD.

Увеличение на 1 (INCREMENT) и уменьшение на 1 (DECREMENT). По команде INC к содержимому аккумулятора прибавляется единица, а по команде DEC - единица вычитается. Если при этом возникает перенос из старшего разряда А, то в регистр переноса заносится 1, в противном случае в него заносится 0.

       Вычитание (X-Y) может выполняться путем сложения уменьшаемого X и дополнительного кода вычитаемого Y. Однако это требует записи и выполнения нескольких команд (CLA, ADD Y, CMA, INC, ADD X). Для сокращения программ и времени выполнения вычитания в базовой ЭВМ предусмотрена команда SUB Y (CLA, ADD X, SUB Y), которая реализует те же действия за меньшее время.

       Умножение и деление. В базовой ЭВМ нет команд для выполнения этих действий (АЛУ не выполняет таких операций).Поэтому произведение и частное приходится получать программным путем.

Подпрограммы

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

       По команде JSR 300, расположенной в ячейке 25, выполняется запись числа 25 + 1 = 26 (текущего значения счетчика команд) в ячейку с адресом 300 и запись числа 300 + 1 = 301 в счетчик команд (адрес первой команды подпрограммы). Таким образом осуществляется переход к выполнению команд подпрограммы. Далее начинается процесс выполнения команд подпрограммы, который завершается командой BR (300), расположенной в ячейке 326. Эта команда безусловного перехода с косвенной адресацией предписывает ЭВМ выполнить переход к команде, расположенной по адресу, сохраняемому в ячейке 300. Так как в эту ячейку ранее было записано число 26, то будет исполняться команда, находящаяся в ячейке 26, т.е. следующая за обращением к подпрограмме. Аналогично выполняется команда JSR 300, расположенная в ячейке 72 (после выполнения команд подпрограммы будет выполнен переход к ячейке 73).

 


       Таким образом, при оформлении подпрограммы перед ее первой командой следует разместить ячейку, в которую будет пересылаться адрес возврата из подпрограммы. В команде обращения к подпрограмме указывается адрес именно этой ячейки (например, адрес М в команде JSR M). Последней командой подпрограммы должна быть команда выхода (команда BR (M) для подпрограммы, размещенной начиная с ячейки М). По ней осуществляется переход к команде, адрес которой сохраняется в первой ячейке подпрограммы.

           

Выполнение машинных команд

       В процессе исполнения команд устройство управления ЭВМ производит анализ и пересылку команд, отдельных ее частей (кода операции, признака адресации и адреса) или операнда из одного регистра ЭВМ в другой ее регистр, АЛУ, память или устройство ввода-вывода. Эти действия (микрооперации) протекают в определенной временной последовательности и скоординированы между собой. Для обеспечения такой последовательности в ЭВМ используется генератор тактовых импульсов.

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

 

       Выборка команд. В данном машинном цикле выполняется чтение команды из памяти и ее частичное декодирование.

1. Содержание ячейки памяти, на которую указывает счетчик команд, читается из памяти в регистр данных (рис. 1.4., а, б).

2. Содержимое счетчика команд увеличивается на 1 (рис. 1.4, б, в).

3. Содержимое регистра данных пересылается в регистр команд, код операции команды частично декодируется для выявления типа команды (адресная, безадресная или ввода-вывода), анализируя бит признака адресации и происходит подготовка цепей, необходимых для выполнения команды (рис. 1.4, г).

Безадресные команды и команды ввода-вывода окончательно исполняются в этом же цикле, т.е. это одноцикловые команды.

4. Выполняются действия по завершению одноцикловой команды. Выборка адреса. Этот машинный цикл следует за циклом выборки команды для адресных команд с косвенной адресацией (бит вида адресации равен 1). Цикл используется для чтения из памяти адреса операнда, результата или перехода и состоит из следующих шагов.

1) Адресная часть команды пересылается из регистра данных, где пока еще сохраняется копия команды, в регистр адреса.

2) Содержимое ячейки памяти, указываемой регистром адреса, читается в регистр данных. Теперь в этом регистре находится либо адрес операнда, либо адрес результата, либо адрес перехода, который будет использоваться в цикле исполнения команды. Если косвенно адресуется одна из индексных ячеек (адреса 8...F), то цикл выборки адреса операнда (результата) продолжается.

3) Содержимое регистра данных увеличивается на единицу.

4) Измененное содержимое регистра данных пересылается в ячейку памяти по адресу, указанному регистром адреса.

5) Содержимое регистра данных уменьшается на единицу.

 

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

       Исполнение. Последовательность действий, выполняемых в этом цикле, определяется типом выполняемой адресной команды.

1. Для команд, при выполнении которых требуется выборка операнда из памяти ЭВМ (AND, ADD, ADC, SUB, ISZ), цикл исполнения используется для чтения операнда в регистр данных и выполнения операции, указываемой кодом операции команды. Пример цикла исполнения команды ADD 21 приведен на рис. 1.4, д, е, ж, з.

2. По команде пересылки (MOV) в этом машинном цикле производится запись содержимого аккумулятора в ячейку памяти с адресом, расположенным в регистре данных. Для этого содержимое регистра данных пересылается в регистр адреса, а содержимое аккумулятора - в регистр данных и далее в ячейку памяти, указываемую регистром адреса.

3. При исполнении команд переходов (BCS, BPL, BMI, BEQ) производится проверка соответствующего условия (1 - в регистре переноса, 0 - в знаковом разряде аккумулятора и т.п.) и пересылка адреса из регистра данных в счетчик команд при выполнении этого условия. Иначе будет выбрана команда, расположенная вслед за командой перехода. При исполнении команды безусловного перехода (BR) пересылка адреса перехода в счетчик команд выполняется без какой-либо проверки.

4. Для команды обращения к подпрограмме (JSR) во время этого машинного цикла осуществляется пересылка содержимого счетчика команд в ячейку памяти, адрес которой содержится в регистре данных, и занесение в счетчик команд увеличенного на единицу содержимого регистра данных.


 

 


Домашнее задание № 1

Лабораторная работа № 1

Лабораторная работа № 2

Лабораторная работа № 3

Лабораторная работа № 4

Асинхронный обмен.

Программа такого обмена строится так: сначала проверяется готовность ВУ к обмену и если оно готово, то дается команда на обмен. ВУ сообщает о готовности установкой флага.

Пример 2.1 С помощью ВУ-2 записать в ячейку 006 коды символов слова "ДА".

Программа для выполнения этого задания имеет вид:

 

Содержимое

 
Адрес Код Мнемоника Комментарии
05 FFF8   Константа -8, используемая для сдвига
06 0000   Ячейка для записи слова "ДА"
........ ........    
20 E102 TSF 2 Опрос флага контроллера ВУ-2 и повторение этой операции: если ВУ-1 не готовок обмену (флаг=0)
21 C020 BR 20  
22 E202 IN 2 Это действие выполняется лишь после готовности ВУ-2, т.е. когда при выполнении TSF 2 выяснятся, что флаг=1 и пропускается BR 20, По команде IN 2 содержимое регистра данных контроллера ВУ-2 пересылается в восемь младших разрядов аккумуляторов.
23 E002 CLF 2 Сброс готовности ВУ-2 (очистка флага ВУ-2)
24 F600 ROL Код первого введенного символа сдвигается на восемь разрядов влево и освобождается место для ввода следующего символа.
25 0005 ISZ 5  
26 C024 BR 24  
27 E102 TSF 2 Опрос флага контроллера ВУ-2..... (см. Комментарии к командам 20 и 21)
28 C027 BR 27  
29 E202 IN 2 Ввод кода символа (если подан сигнал готовности ВУ-2)
E002 CLF 2 Сброс готовности ВУ-2
3006 MOV 6 Пересылка кода слова "ДА" в ячейку 006
F000 HLT Останов ЭВМ

 

Две первые команды этой программы "заставляют" ЭВМ ожидать его готовности ВУ-2 к выдаче данных. Поэтому необходимо ввести код символа "Д" в регистр данных ВУ-2. После сброса готовности ВУ-2 (команда CLF 2), которая подтверждает, что данные из регистра данных контроллера ВУ-2 переписаны в аккумулятор можно приступить к набору кода символа "А". В процессе набора этого кода ЭВМ занята сдвигом кода символа "Д" в старшие разряды аккумулятора, чтобы подготовиться к приему символа "А", и ожиданием поступления нового сигнала готовности ВУ-2 к выдаче информации. Так как ЭВМ выполняет эти операции значительно быстрее, чем человек, набирающий код нового символа. Теперь в аккумулятор перепишется все слово "ДА", затем оно перепишется в ячейку 006 и выполнение программы прекратиться.

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

 

Лабораторная работа № 5

Лабораторная работа № 6

Интерпретатор базовой ЭВМ.

Полный текст микропрограммы (интерпретатора команд) приведен в табл. 3.2. В этой таблице есть один "лишний" столбец (ВЕРТ.), содержание которого будет описано ниже.

Первые микрокоманды интерпретатора служат для выборки команды из основной памяти (ОП) базовой ЭВМ и определения ее типа: адресная, безадресная или ввода-вывода. Для этого содержимое СК (в котором хранится адрес исполняемой команды) пересылается через БР в РА (СК=>БР и БР=>РА). Затем из ячейки ОП, на которую указывает РА, пересылается в РД команда, а содержимое СК увеличивается на единицу и пересылается в БР: ОП(РА)=>РД, СК+1=>БР.

 

Таблица 3.2

Интерпретатор базовой ЭВМ (микропрограмма)

Адрес

Микрокоманды

Комментарии

    Горизонт. Верт. Метка Действие    1 2 3 4 5  

Цикл выборки команды

  01 0000 0008 0300 нач СК ==> БР   02 0004 0000 4001   БР ==> РА   03 0080 0408 0311   ОП(РА) ==> РД, СК + 1 ==> БР   04 0020 0000 4004   БР ==> СК   05 0000 0002 0100   РД ==> БР   06 0010 0000 4003   БР ==> РК           Определение типа команды   07 880C 8000 AF0C   IF BIT(15,PK) = 0 THEN АДЦ(0C)   08 880C 4000 AE0C   IF BIT(14,PK) = 0 THEN АДЦ(0C)   09 880C 2000 AD0C   IF BIT(13,PK) = 0 THEN АДЦ(0C)   0A 895E 1000 EC5E   IF BIT(12,PK) = 1 THEN БАД(5Е)   0B 828E 0008 83BE   GOTO B/B(8E)          

Определение вида адресации

0С 881D 0800 AB1D АДЦ IF BIT(11,PK) = 0 THEN АДР(1D)  

Цикл прерывания

8F 8288 0080 8788 ПРЕ IF BIT(7,PC) = 0 THEN HTL(88) 90 8201 0020 8501   IF BIT(5,PC) = 0 THEN НАЧ(01) 91 0000 0200 0020   0 ==> БР 92 0004 0000 4001   БР ==> РА 93 0000 0008 0300   СК ==> БР 94 0008 0000 4002   БР ==> РД 95 0100 0400 0012   РД ==> ОП(РА), 1 ==> БР 96 0020 0000 4004   БР ==> СК 97 0800 0000 4400   Запрещение прерывания 98 8201 0008 8301   GOTO НАЧ(01)

Пультовые операции

        Ввод адреса 99 0000 0040 3000 В/А КР ==> БР 9A 0020 0000 4004   БР ==> СК 9B 828F 0008 838F   GOTO ПРЕ(8F) 1 2 3 4 5         Чтение 9C 0000 0008 0300 ЧТ СК ==> БР 9D 0004 0000 4001   БР ==> РА 9E 0080 0408 0311   ОП(РА) ==> РД, СК + 1 ==> БР 9F 0020 0000 4004   БР ==> СК A0 828F 0008 838F   GOTO ПРЕ(8F)         Запись A1 0000 0008 0300 ЗАП СК ==> БР A2 0004 0000 4001   БР ==> РА A3 0000 0040 3000   КР ==> БР A4 0008 0000 4002   БР ==> РД A5 0100 0408 0312   РД ==> ОП(РА), СК + 1 ==> БР A6 0020 0000 4004   БР ==> СК A7 828F 0008 838F   GOTO ПРЕ(8F)         Пуск A8 0000 0200 0020 ПУС 0 ==> БР A9 005C E000 4077   БР ==> A, C, N, Z, РА, РД, РК AA 0400 0000 4200   Сброс флагов ВУ AB 0800 0000 4400   Запрещение прерывания AC 828F 0008 838F   GOTO ПРЕ(8F) ...         B0     Р - А Арифметическая команда 7### ...         D0     Р - П Команда перехода D### ...         E0     Р - Б Безадресная команда FC## ...         FF        

           

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

Так как адресные команды (команды с кодами операции от 0 до D) обязательно содержат ноль в 15, 14 или 13 бите, то проверкой этих битов РК можно выделить адресную команду и перейти к проверке ее 2-го бита (бита вида адресации). Для разделения команд ввода-вывода (код операции Е) и безадресных команд (код операции F) достаточно проанализировать 12-ый бит РК: если этот бит равен 1, то надо переходить к микрокомандам продолжения дешифрации безадресных команд, расположенных, начиная с адреса 5E (метка БАД). В комментариях микрокоманда анализа 12-го бита РК записана в виде:

IF BIT(12,РК)=1 THEN БАД(5E).

 

В памяти микрокоманд нет полных микропрограмм для адресных команд с кодами операций 7 и D, а также для безадресных команд FC00, FD00, FE00 и FF00. Когда при декодировании команды выясняется, что выбрана команда 7xxx, управление передается ячейке с адресом В0. Начиная с этой ячейки, могут располагаться микрокоманды какой-либо новой арифметической команды (например, умножения). Для микропрограмм реализации команды перехода и безадресных команд выделены участки памяти микрокоманд с начальными адресами D0 и E0.

В базовой ЭВМ реализован и другой вариант интерпретатора, использующий более короткие - вертикальные микрокоманды (столбец "ВЕРТ." табл. 3.2). Эти микрокоманды состоят из полей, в которых закодированы требуемые наборы управляющих сигналов (рис. 3.2). Для декодирования используются дополнительные устройства - дешифраторы.

 

Домашнее задание №4

Лабораторная работа № 7

Лабораторная работа № 8

Синтез команд базовой ЭВМ.

Цель работы - практическое завершение второй части домашнего задания №4. В ней производится загрузка в память микропрограмм микрокоманд новых команд базовой ЭВМ, загрузка в память ЭВМ программы для проверки правильности выполнения синтезированных команд, а также проверка и отладка этих микропрограмм.

Подготовка к выполнению работы. Завершить домашнее задание №4 и подготовить две таблицы по форме, приведенной в лаб. работе №7. Строки первой из этих таблиц (теоретически) должны быть заполнены содержимым регистров базовой ЭВМ при пошаговом выполнении за нее тестовой программы (синтезированные команды должны выполняться по тактам, остальные - по командам). Строку с содержимым регистров ЭВМ после исполнения (или первой микрокоманды новой команды) следует предворять заголовком:

КОМАНДА хххх, РАСПОЛОЖЕННАЯ ПО АДРЕСУ ххх

 

Вторая таблица (экспериментальная) заполняется в лаборатории.

Порядок выполнения работы

Занести в память ЭВМ текст тестовой программы.

Занести в память микрокоманд (ПМ) микрокоманды новых команд.

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

Содержание отчета по работе. Домашнее задание №4 (часть 2), таблицы с результатами выполнения тестовой программы(теоретическая и экспериментальная). Анализ расхождений между этими таблицами и описание процесса отладки программы и микропрограммы.

 

Приложение 1

 

 

РАЗДЕЛ 1. БАЗОВАЯ ЭВМ

 

Назначение базовой ЭВМ

       Базовая ЭВМ - это простая гипотетическая машина, обладающая типичными чертами многих конкретных ЭВМ. Знание принципов построения и функционирования этой ЭВМ будет хорошей базой для освоения ЭВМ любых типов и моделей. Естественно, что начинать изучение ЭВМ лучше всего с простых моделей, которые и были выбраны за прототип базовой ЭВМ.

 

Структура базовой ЭВМ

       На рис. 1.1 приведена упрощенная структура базовой ЭВМ. Это одноадресная ЭВМ, работающая с 16-разрядными словами. В ней реализованы два вида адресации: прямая и косвенная.

       Рассмотрим составные части базовой ЭВМ, не касаясь пока устройств ввода-вывода (УВВ) и пульта управления (ПУ).

 

Рис. 1.1. Модель базовой ЭВМ

       Память. Состоит из 2048 ячеек (16-битовых) с адресами 0,1,...,2046,2047.Восемь ячеек памяти с адресами 008,...,00F несколько отличаются от остальных. Эти ячейки называются индексными и их лучше использовать в циклических программах (п. 1.5).

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

       Счетчик команд (СК) служит для организации обращений к ячейкам памяти, в которых хранятся команды программы. После исполнения любой команды СК указывает адрес ячейки памяти, содержащей следующую команду программы. Так как команды могут размещаться в любой из 2048 = 211 ячеек памяти, то СК имеет 11 разрядов.

       Регистр адреса (РА) 11-разрядный регистр, содержащий значение исполнительного адреса (адреса ячейки памяти, к которой обращается ЭВМ за командой или данными).

       Регистр команд (РК). Этот 16-разрядный регистр используется для хранения кода команды, непосредственно выполняемой машиной.

       Регистр данных (РД). Используется для временного хранения 16-рязрядных слов при обмене информацией между памятью и процессором.

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

       Регистр переноса (С) - это одноразрядный регистр, выступающий в качестве продолжения аккумулятора и заполняющийся при переполнении А. Этот регистр используется при выполнении сдвигов.

       Арифметическо-логическое устройство (АЛУ) может выполнять такие арифметические операции, как сложение и сложение с учетом переноса, полученного в результате выполнения предыдущей операции. Кроме того, оно способно выполнять операции логического умножения, инвертирования, циклического сдвига.

 

Система команд базовой ЭВМ

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

· обращения к памяти (адресные команды);

· обращения к регистрам (регистровые или безадресные команды);

· команды ввода-вывода.

           

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

       Безадресные команды выполняют различные действия без ссылок на ячейку памяти. Например, команда CLA (табл. 1.1) предписывает ЭВМ очистить аккумулятор (записать в А код нуля). Это команда обработки операнда, расположенного в конкретном месте, "известном" машине. Другой пример безадресной команды - команда HLT.

       Команды ввода-вывода осуществляют обмен данными между процессором и внешними устройствами ЭВМ.

       Полный перечень команд базовой ЭВМ приведен в таблице 1.1.

       Форматы команд и способы адресации. Разработчики базовой ЭВМ выбрали три формата 16-битовых (однословных) команд с 4-битовым кодом операции (рис. 1.2).

 

Рис 1.2. Форматы команд: а - адресных, б - безадресных, в - команд ввода-вывода

 

       В командах обращения к памяти на адрес отведено 11 бит. Следовательно, можно прямо адресоваться к 211 = 2048 ячейкам памяти, т.е. ко всей памяти базовой ЭВМ (прямая адресация). В этом случае бит вида адресации должен содержать 0. Если же в этом же бите установлена 1, то адрес, размещенный в адресной части команды, указывает на ячейку, в которой находится адрес операнда (косвенная адресация).

       Отметим, что при мнемонической записи команд указание косвенной адресации производится путем заключения адреса в скобки. Например, команда ADD (25) -сложить содержимое А с содержимым ячейки, адрес которой хранится в ячейке 25 (косвенная адресация).

 

Арифметические операции

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

       Целые двоичные числа без знака можно использовать для представления нуля и целых положительных чисел. При размещении таких чисел в одном 16-разрядном слове они могут изменяться от (0000 0000 0000 0000)2 = (0000)16 = 0 до (1111 1111 1111 1111)2 = (1FFF)16 = 215 - 1 = 6



Поделиться:


Познавательные статьи:




Последнее изменение этой страницы: 2021-05-12; просмотров: 315; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.162.107 (0.01 с.)