Лабораторная работа V1
ПРЕДСТАВЛЕНИЕ ДАННЫХ В ЭВМ ТИПА VAX-11. ФОРМАТЫ КОМАНД. АРИФМЕТИКО-ЛОГИЧЕСКИЕ ОПЕРАЦИИ С ЦЕЛОЧИСЛЕННЫМИ ДАННЫМИ.
Цель работы: Изучение архитектуры процессора VAX-11, изучение форматов команд и данных процессора VAX-11, изучение системы арифметико-логических команд процессора VAX-11, изучение типов адресации процессора VAX-11, ознакомление с работой эмулирующей программы. Выполнение простейших программ арифметико-логической обработки регистровых данных и данных из памяти с использованием различных способов косвенной адресации.
1. Методические указания
В данной лабораторной работе изучается представление данных и форматы основных команд в ЭВМ типа VAX-11, а также осуществляется выполнение простейших программ арифметико-логической обработки данных с помощью эмулирующей программы.
Данные в эмулирующей программе могут храниться, и соответственно, загружаться и считываться: а) в регистрах общего назначения (РОН), б) в памяти по адресам [0-7FF] (16).
Команды в программе могут храниться (соответственно, загружаться и считываться) в памяти по адресам [0-7FF].
При этом между командами и данными в хранении, записи и чтении нет принципиальной разницы.
При составлении программы и трассировке ее алгоритма также необходимо учитывать особенности адресации операндов различной длины
и порядок выполнения команд. В процессе выполнения команды сначала выбирается и анализируется код операции, затем вычисляется адрес первого операнда (со всеми изменениями регистров) и выбирается первый операнд, потом вычисляется адрес второго операнда и т. д.
2. Практическая часть
Практическая часть работы включает выполнение следующих действий:
а) формирование числовых значений в соответствии с индивидуальным заданием, перевод их в шестнадцатеричную систему счисления и определения минимального формата представления исходных данных как целых чисел;
б) по заданному алгоритму составление и выполнение простейшей программы работы с целочисленными данными, хранящимися в РОН;
в) по заданному алгоритму составление и выполнение простейшей программы работы с целочисленными данными, хранящимися в памяти (с использованием различных способов косвенной адресации).
Правильность разработки и выполнения программ арифметико-логической обработки данных контролируется путем ручной трассировки заданных алгоритмов с последующим сравнением результатов работы программ с результатами ручной трассировки.
3. Варианты заданий
Значения исходных данных определяются выражениями:
X1 = [ (-1) ( NB + 0 ) ] * ( NB + NГ ) * 3,
X2 = [ (-1) ( NB + 1 ) ] * ( NB + NГ + 17 ),
X3 = [ (-1) ( NB + 2 ) ] * ( NB + NГ + 29 )2 ,
X4 = [ (-1) ( NB + 3 ) ] * [ ( NB + NГ + 23 )2 ,
X5 = X32,
X6 = (-1) * X42 .
Здесь и далее: все числовые значения в исходных данных задаются в десятичной системе счисления,
NB - номер варианта индивидуального задания,
NГ - младшая цифра номера группы.
Для программы по п. б) размещение данных определяется в табл.1.
Для программы по п. в) адреса данных определяются выражениями:
Aдр(X1) = ( NВ * NГ ),
Aдр(X2) = ( NВ * NГ ) + 10,
Aдр(X3) = ( NВ * NГ ) + 20,
Aдр(X4) = ( NВ * NГ ) + 30,
Aдр(X5) = ( NВ * NГ ) + 40,
Aдр(X6) = ( NВ * NГ ) + 50.
Для программы по п. б) начальный адрес размещения программы определяется выражением: Aдр = NВ * 10 + 600.
Варианты алгоритмов программ приведены на рис.1. Номер реализуемого алгоритма определяется как один плюс остаток от деления на 6 суммы номера варианта и младшей цифры номера группы.
Варианты размещения операндов в РОН приведены в табл.1.
Для программы по п. в) начальный адрес размещения программы определяется выражением: Aдр = NВ + NГ + 666.
Варианты алгоритмов программ приведены на рис.2. Номер реализуемого алгоритма определяется как один плюс остаток от деления
на 4 номера варианта.
Таблица 1 Варианты размещения операндов в РОН
Данные | Номера РОН по вариантам | |||||||||||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | |
X1 | 0 | 1 | 2 | 9 | B | 5 | 2 | 3 | 9 | A | B | C | D | 4 | 3 | E | 6 | 7 |
X2 | 1 | 2 | 3 | 8 | A | 4 | 3 | 4 | A | B | C | D | E | 5 | 5 | 0 | 7 | 8 |
X3 | 2 | 3 | 4 | 7 | 9 | 3 | 4 | 5 | 8 | 1 | 3 | E | 6 | 7 | 4 | A | B | C |
X4 | 3 | 4 | A | 6 | 8 | 2 | 5 | 8 | 7 | 2 | 4 | 0 | 7 | 9 | 8 | B | C | D |
X5 | 8 | 5 | B | 5 | 7 | 1 | 6 | 9 | 6 | 3 | 5 | 1 | 8 | B | C | C | 4 | A |
X6 | 9 | 6 | C | 4 | 6 | 0 | 7 | A | 5 | 4 | 9 | 2 | 9 | C | 1 | 8 | D | E |
В табл.2 указаны типы используемой адресации для каждого операнда, где 6 - косвенная регистровая (простая косвенная) адресация, 8 - автоинкрементная (простая косвенная с автоувеличением), 7 - автодекрементная (простая косвенная с автоуменьшением) и 9 - косвенная автоинкрементная адресация (двойная косвенная с автоувеличением). Вариант комбинации способов адресации определяется по табл.2.
Промежуточные ячейки, используемые при реализации косвенной
адресации, должны быть расположены с адреса: Aдр = ( NВ * NГ ) + 100. РОН, используемые при адресации данных, выбираются произвольно.
4. Порядок выполнения работы
А. В процессе самостоятельной работы:
1. Выбрать исходные данные в соответствии с номером варианта.
Например, для варианта (NВ = 33, NГ = 4) исходные данные
имеют следующий вид:
X1 = [ (-1) ( 33 + 0 ) ] * [ ( 33 + 4 ) * 3 ] = [ (-1) 33] * [ 37 * 3 ] = - 111
X2 = [ (-1) 34 ] * ( 37 + 17 ) = 54
X3 = [ (-1) 35 ] * [ ( 37 + 29 ) 2 ] = - 4356
X4 = [ (-1) 36 ] * [ ( 37 + 23 ) 2 ] = 3600 и т. д.
2. Перевести значения величин X1-X6 и адреса их размещения в шестнадцатеричную систему счисления.
Например, для варианта (NВ = 33, NГ = 4) исходные данные имеют следующий вид:
X1 = - 111 = 91
X2 = 54 = 36
X3 = - 4356 = EEFC
X4 = 3600 = 0E10
и т. д.
3. Составить карту распределения памяти под команды и данные.
4. По п. б) составить программу заданного алгоритма в мнемонических и машинных кодах.
5. Произвести трассировку заданного в п. б) алгоритма с использованием заданных исходных данных.
6. По п. в) составить программу заданного алгоритма в мнемонических и машинных кодах.
7. Произвести трассировку заданного алгоритма с использованием заданных исходных данных, при этом в таблице трассировки должны быть отражены также и значения информации в ячейках памяти и регистрах, используемых для реализации различных способов адресации.
8. Оформить отчет по лабораторной работе.
Б. В учебной лаборатории:
1. Записать в память программу, составленную в соответствии с п. б) задания.
2. Выполнить программу, занесенную в память.
3. Проверить результаты выполнения программы, сравнивая их с результатами ручной трассировки алгоритма.
4. Записать в память программу, составленную в соответствии с п. в) задания.
5. Записать в память промежуточную информацию, необходимую для реализации различных способов адресации.
6. Выполнить программу, занесенную в память.
7. Проверить результаты выполнения программы, сравнивая их с результатами ручной трассировки алгоритма.
Таблица 2 Способы адресации
Опера-тор | Номер операн-да | Варианты | |||||||||||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | ||
1 | Оп1 Оп2 | 7 7 | 7 8 | 6 - | 9 - | 6 9 | 9 6 | 7 - | 8 - | 8 6 | 8 7 | 9 - | 6 - | 9 9 | 6 9 | 7 - | 8 - | 9 6 | 9 8 |
2 | Оп1 Оп2 | 9 6 | 6 9 | 8 9 | 7 8 | 8 7 | 6 8 | 7 9 | 6 7 | 7 7 | 7 6 | 7 6 | 9 8 | 6 8 | 8 8 | 9 7 | 7 6 | 9 7 | 6 7 |
3 | Оп1 Оп2 | 8 6 | 8 - | 7 8 | 6 6 | 9 6 | 7 - | 9 6 | 9 6 | 8 9 | 9 - | 9 8 | 7 7 | 7 8 | 7 - | 6 6 | 6 9 | 8 7 | 8 - |
4 | Оп1 Оп2 | 9 - | 7 8 | 6 7 | 9 7 | 7 - | 9 6 | 6 8 | 9 8 | 9 - | 6 9 | 6 8 | 9 8 | 6 - | 7 9 | 8 7 | 9 7 | 8 - | 8 9 |
5 | Оп1 Оп2 | 8 7 | 9 8 | 9 6 | 8 7 | 8 6 | 8 7 | 7 8 | 7 8 | 6 7 | 8 7 | 7 7 | 6 6 | 7 6 | 6 8 | 8 9 | 8 8 | 6 7 | 6 7 |
5. Содержание отчета
1. Титульный лист.
2. Текст задания.
3. Перевод исходных данных в шестнадцатеричную систему счисления.
4. Схемы алгоритмов программ.
5. Тексты программ в мнемонических и машинных кодах.
6. Карта распределения памяти под команды и данные.
7. Таблицы трассировки программ.
Пример оформления карты памяти приведен в табл.3, текста программы - в табл.4, а в табл.5 и 6 - структура таблицы трассировки.
Таблица.3 Карта распределения памяти
Число | 10-е значение | 16-й код | Адрес загрузки |
X1 | -111 | 91 | R3 |
X2 | 54 | 36 | R5 |
X3 | -4356 | EEFC | R4 |
X3 | -4356 | EEFC | 98 |
X4 | 3600 | 0E10 | A2 |
X5 | 18974346 | 01218810 | AC |
Текст программы 1 | 3A2 | ||
Текст программы 2 | 2BF |
Таблица.4 Текст программы
Оператор | Адрес | 16-й код | Мнемокод | Комментарий |
1 | 3A2 | 58 D7 | DECL R8 | X5=X5- 1 |
2 | 3A4 | 54 54 B2 | MCOMW R4,R4 | __ X4 = X4 |
3 | 3A7 | 55 53 8A | BICB2 R3,R5 | __ X2= X1 & X2 |
………… | …………… | ……….. | ………………… | |
00 | HALT |
1
2 
3
4 
5
6 
Pис..1
2 
1
4 
3
Рис.2
Таблица 5 Таблица трассировки для программы по п. б) задания
Номер шага | Номер регистра, в котором содержится результат операции | Расчетные значения | Значение, полученное в лаборатории | |
До выполнения | После выполнения | |||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
6 |
Таблица 6 Таблица трассировки для программы по п. в) задания
Номер шага | Адрес ячейки памяти, в которой содержится результат операции | Расчетные значения | Значение, полученное в лаборатории | |
До выполнения | После выполнения | |||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 |
Команды, используемые в данной лабораторной работе, представлены в табл.7.
Таблица 7 Целочисленные арифметические и логические операции
Мнемокод | КОП | Операция | Флаги | Описание | |||
N | Z | V | C | ||||
ADDB2 | 80 | оп2 = оп2 + оп1 двухоперандное сложение | + | + | + | + | оп1 и оп2 складываются, результат записывается по адресу оп2 |
ADDW2 | A0 | + | + | + | + | ||
ADDL2 | C0 | + | + | + | + | ||
SUBB2 | 82 | оп2 = оп2 - оп1 двухоперандное вычитание | + | + | + | + | оп1 вычитается из оп2, результат записывается по адресу оп2 |
SUBW2 | A2 | + | + | + | + | ||
SUBL2 | C2 | + | + | + | + | ||
ADWC | D8 | оп2 = оп2 + оп1+c сложение с переносом | + | + | + | + | оп1 складывается с оп2 и значением признака c, результат записывается по адресу оп2 |
SBWC | D9 | оп2 = оп2 - оп1- c вычитание с заемом | + | + | + | + | оп1 и значение признака c вычитаются из оп2, результат записывается по адресу оп2 |
INCB | 96 | оп1 = оп1 + 1 инкремент | + | + | + | + | оп1 складываются с 1, результат записывается по адресу оп1 |
INCW | B6 | + | + | + | + | ||
INCL | D6 | + | + | + | + | ||
DECB | 97 | оп1 = оп1 - 1 декремент | + | + | + | + | из оп1 вычитается 1, результат записывается по адресу оп1 |
DECW | B7 | + | + | + | + | ||
DECL | D7 | + | + | + | + | ||
MNEGB | 8E | оп2 = - оп1 пересылка дополнения оп1 | + | + | + | + | дополнение оп1 пересылается по адресу оп2 |
MNEGW | AE | + | + | + | + | ||
MNEGL | CE | + | + | + | + | ||
MCOMB | 92 | ___ оп2 = оп1 пересылка инверсии | + | + | 0 | - | инверсия оп1 пересылается по адресу оп2 |
MCOMW | B2 | + | + | 0 | - | ||
MCOML | D2 | + | + | 0 | - |
Продолжение таблицы 7
Мнемокод | КОП | Операция | Флаги | Описание | |||
N | Z | V | C | ||||
BISB2 | 88 | оп2 = оп2 v оп1 двухоперандная установка разрядов | + | + | 0 | - | логическое сложение оп1 и оп2 , результат записывается по адресу оп2 |
BISW2 | A8 | + | + | 0 | - | ||
BISL2 | C8 | + | + | 0 | - | ||
BICB2 | 8A | ___ оп2 = оп2 & оп1 двухоперандная очистка разрядов | + | + | 0 | - | оп1 логически умножается на инверсию оп2 , результат записывается по адресу оп2 |
BICW2 | AA | + | + | 0 | - | ||
BICL2 | CA | + | + | 0 | - | ||
XORB2 | 8C | оп2 = оп2 (+) оп1 двухоперандное исключающее ИЛИ | + | + | 0 | - | исключающее ИЛИ между оп1 и оп2, результат запоминается по адресу оп2 |
XORW2 | AC | + | + | 0 | - | ||
XORL2 | CC | + | + | 0 | - |


