Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Управление вычислительным процессом, сдвиги и логические операции↑ Стр 1 из 6Следующая ⇒ Содержание книги
Поиск на нашем сайте
РАЗДЕЛ 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) |
2А | E002 | CLF 2 | Сброс готовности ВУ-2 |
2В | 3006 | MOV 6 | Пересылка кода слова "ДА" в ячейку 006 |
2С | F000 | HLT | Останов ЭВМ |
Две первые команды этой программы "заставляют" ЭВМ ожидать его готовности ВУ-2 к выдаче данных. Поэтому необходимо ввести код символа "Д" в регистр данных ВУ-2. После сброса готовности ВУ-2 (команда CLF 2), которая подтверждает, что данные из регистра данных контроллера ВУ-2 переписаны в аккумулятор можно приступить к набору кода символа "А". В процессе набора этого кода ЭВМ занята сдвигом кода символа "Д" в старшие разряды аккумулятора, чтобы подготовиться к приему символа "А", и ожиданием поступления нового сигнала готовности ВУ-2 к выдаче информации. Так как ЭВМ выполняет эти операции значительно быстрее, чем человек, набирающий код нового символа. Теперь в аккумулятор перепишется все слово "ДА", затем оно перепишется в ячейку 006 и выполнение программы прекратиться.
Легко заметить, что при асинхронном обмене ЭВМ должна тратить время на ожидание момента готовности, а так как готовность проверяется командным путем (команда TSF), то в это время ЭВМ не может выполнять никакой другой работы по преобразованию данных.
Лабораторная работа № 5
Лабораторная работа № 6
Интерпретатор базовой ЭВМ.
Полный текст микропрограммы (интерпретатора команд) приведен в табл. 3.2. В этой таблице есть один "лишний" столбец (ВЕРТ.), содержание которого будет описано ниже.
Первые микрокоманды интерпретатора служат для выборки команды из основной памяти (ОП) базовой ЭВМ и определения ее типа: адресная, безадресная или ввода-вывода. Для этого содержимое СК (в котором хранится адрес исполняемой команды) пересылается через БР в РА (СК=>БР и БР=>РА). Затем из ячейки ОП, на которую указывает РА, пересылается в РД команда, а содержимое СК увеличивается на единицу и пересылается в БР: ОП(РА)=>РД, СК+1=>БР.
Таблица 3.2
Интерпретатор базовой ЭВМ (микропрограмма)
Адрес |
Микрокоманды
Комментарии
Цикл выборки команды
Определение вида адресации
Цикл прерывания
Пультовые операции
Далее содержимое БР, т.е. адрес следующей команды, пересылается в СК, а команда пересылается из РД в РК, после чего начинается ее дешифрация.
Так как адресные команды (команды с кодами операции от 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 с.)