Professional Documents
Culture Documents
Lab Rob 4
Lab Rob 4
Звіт
з лабораторної роботи № 4
з дисципліни “Організація та функціонування комп’ютерів”
на тему: “ Дослідження інструкцій логічних операцій і виконання арифметичних операцій
навчального комп’ютера – симулятора DeComp”
Львів
2016
Тема: Дослідження інструкцій логічних операцій і виконання арифметичних
операцій навчального комп’ютера – симулятора DeComp.
Мета:
1. Вивчити призначення логічних операцій.
2. Навчитись створювати і використовувати "фільтри" за допомогою логічних
операцій.
3. Вивчити правила кодування додатних і від’ємних двійкових чисел для
здійснення арифметичних операцій у комп’ютерах;
4. Навчитися кодувати двійкові числа із знаком у інструкціях навчального
комп’ютера – симулятора DeComp.
Теоретичні відомості:
В 16-ту комырку пам’яті я записав перше число, а в 17-ту – друге. В першу, четверту
сьому та десяту комірки були записані двійкові коди логічних операцій AND, OR,
XOR, NOT.
Програма в інструкціях:
Мнемонічний
№ комірки Двійковий код
запис Коментар
пам’яті інструкції
інструкції
завантажити число 1310 до
0000 0000 0000 0000 0000 0000 1010 LOAD 16;
Акумулятора.
0000 0000 0001 0100 0000 0001 0001 AND 17; 1310 & 3310
0000 0000 0010 0001 0000 0001 0010 STORE 18; Записати число в 18 комірку.
0000 0000 0011 0000 0000 0000 1010 LOAD 16; завантажити число 1310 до
Акумулятора.
0000 0000 0100 0101 0000 0001 0001 OR 17; 1310 | 3310
0000 0000 0101 0001 0000 0001 0011 STORE 19; Записати число в 19 комірку.
завантажити число 1310 до
0000 0000 0110 0000 0000 0000 1010 LOAD 16;
Акумулятора.
0000 0000 0111 0110 0000 0001 0001 XORE 17; 1310 3310
0000 0000 1000 0001 0000 0001 0100 STORE 20; Записати число в 20 комірку.
0000 0000 1001 0000 0000 0000 1010 LOAD 16: Завантажити число 1310 до
Акумулятора.
0000 0000 1010 0111 0000 0000 0000 NOT; 0000 1101 000001101
0000 0000 1011 0001 0000 0001 0101 STORE 21; Записати число в 21 комірку.
0000 0000 1100 0000 0000 0001 0001 LOAD 17; Завантажити число 3310 до
Акумулятора.
0000 0000 1101 0111 0000 0000 0000 NOT 0010 0001 0010 0001
0000 0000 1110 0001 0000 0001 0110 STORE 22; Завантажити число в 22
комірку.
0000 0000 1111 0111 1100 0000 0000 HALT; Зупинити програму
РА РД А РІ ЛАІ РО(Z S C)
1 0000 0001 0000 0000 1101 0000 1101 0000 1101 0000 1101 0000 0000 0001 0000 0000 0000 0001 000
2 0000 0001 0001 0010 0001 0010 0001 0000 0001 0000 0001 0100 0000 0001 0001 0000 0000 0010 000
3 0000 0001 0010 0000 0001 0000 0001 0000 0001 0000 0001 0001 0000 0001 0010 0000 0000 0011 000
4 0000 0001 0000 0000 1101 0000 1101 0000 1101 0000 1101 0000 0000 0001 0000 0000 0000 0100 000
5 0000 0001 0001 0010 0001 0010 0001 0010 1101 0010 1101 0101 0000 0001 0001 0000 0000 0101 000
6 0000 0001 0011 0010 1101 0010 1101 0010 1101 0010 1101 0001 0000 0001 0011 0000 0000 0110 000
7 0000 0001 0000 0000 1101 0000 1101 0000 1101 0000 1101 0000 0000 0001 0000 0000 0000 0111 000
8 0000 0001 0001 0010 0001 0010 0001 0010 1100 0010 1100 0110 0000 0001 0001 0000 0000 1000 000
9 0000 0001 0100 0010 1100 0010 1100 0010 1100 0010 1100 0001 0000 0001 0100 0000 0000 1001 000
10 0000 0001 0000 0000 1101 0000 1101 0000 1101 0000 1101 0000 0000 0001 0000 0000 0000 1010 000
11 0000 0000 1010 0111 0000 0000 0000 1111 0010 1111 0010 0111 0000 0000 0000 0000 0000 1011 010
12 0000 0001 0101 1111 0010 1111 0010 1111 0010 1111 0010 0001 0000 0001 0101 0000 0000 1100 010
13 0000 0001 0001 0010 0001 0010 0001 0010 0001 0010 0001 0000 0000 0001 0001 0000 0000 1101 010
14 0000 0000 1101 0111 0000 0000 0000 1101 1110 1101 1110 0111 0000 0000 0000 0000 0000 1110 010
15 0000 0001 0110 1101 1110 1101 1110 1101 1110 1101 1110 0001 0000 0001 0110 0000 0000 1111 010
16 0000 0000 1111 1101 1110 1101 1110 1101 1110 1101 1110 0111 1100 0000 0000 0000 0000 1111 010
1) Дослідження інструкції OR
1. Ак. Число(0000 1101 00000 1101), записав число 1310, використавши всі 4
тетради 16-ти розрядного формату.
2. Adr.0 OR(0101 0000 0000 0001), записав число 3310, використавши всі 4
тетради 16-ти розрядного формату.
3. Adr.1 Число (0010 0001 0010 0001 <=> 1000012)
4. ЛАІ Adr 0.
Блок-схема алгоритму:
Початок
Вхідні дані
Збільшення змінної
лічильника на 1
Так Ні
Перевірка на
наявність цифр
у числі
Виведення
лічильника
Кінець
Число А – задане число, яке міститься в 20тій комірці. Число В – лічильник пар
нулів в числі А, міститься в 21шій комірці. Число k – прапорець, для перевірки наявності
пар цифр в числі А, міститься в 22гій комірці, k = 8. В комірці 23 записано число 1.
В комірці 25 записано число 310.
Програма в інструкціях:
№і Двійковий код Мнемонічний Коментар до груп інструкцій, що відповідають
інструкції формат блокам алгоритму програми
інструкції
1 0000 0000 0001 0100 LOAD 20 Виконуючи операцію кон’юнкції встановлюю,
2 0100 0000 0001 1001 AND 25 чи дорівнюють два молодших розряди числа
3 1001 0000 0000 0111 JZ 7 “A” нулю.
4 0011 0000 0000 1110 LOAD 21 Якщо розряди дорівнюють нулю, тоді збільшую
5 0010 0000 0001 0111 ADD 23 змінну “B” лічильника на 1, якщо розряди не
6 0001 0000 0001 0101 STORE 21 дорівнюють нулю – виконується наступна група
інструкцій.
7 0000 0000 0000 1100 LOAD 20 Зсув числа “A” вправо для перевірки двох
8 1111 1110 0000 0000 ROR наступних розрядів числа.
9 1111 1110 0000 0000 ROR
10 0001 0000 0001 0100 STORE 20
11 0000 0000 0001 0110 LOAD 22 Перевіряю число на наявність неперевірених пар
12 0011 0000 0001 0111 SUB 23 цифр.
13 0001 0000 0001 0110 STORE 22
14 1001 0000 0000 0000 JZ 1
15 1000 0000 0000 0000 LOAD 21 Якщо всі пари цифр числа перевірені -
завантажити до акумулятора лічильник кількості
пар цифр ріних 0.
16 0111 1100 0000 0000 HALT Зупинка процесора
Вхідні дані
Встановити молодшими
розрядами дві наступні
цифри числа
Так Перевірка на Ні
наявність не
перевірених цифр
у числі
Виведення числа
А
Кінець
Число А – задане число, яке міститься в 20тій комірці. Число k – прапорець, для
перевірки наявності цифр в числі А, міститься в 22гій комірці, k = 8. В комірці 25
записано число 310.
Програма в інструкціях:
Початок
Додати числа
Виведення
результату
Кінець
Числа А та В – задані, містяться в 16тій та 17тій комірках.
Програма в інструкціях:
Адр.
комірки Мнемонічни
пам’яті у Код інструкції й формат Коментарі інструкцій.
десятковом інструкції
у коді
0 0000 0000 0001 0000 LOAD 16
Переведення в
1 0111 0000 0000 0000 NOT
доповняльний код 1-го
2 0010 0000 0000 1101 ADD 13
числа
3 0001 0000 0001 0000 STORE 15
4 0000 0000 0001 0001 LOAD 17 Переведення в
5 0111 0000 0000 0000 NOT доповняльний код 2-го
6 0010 0000 0000 1101 ADD 13 числа
7 0010 0000 0000 1111 ADD 16 Додавання 2-х чисел
8 0111 0000 0000 0000 NOT
Переведення в прямий код
9 0010 0000 0000 1101 ADD 13
результату.
10 0001 0000 0000 1111 STORE 15
11 0111 1100 0000 0000 HALT СТОП
Висновок
На цій лабораторні й роботі я вивчив призначення логічних операцій. Я навчився
створювати і використовувати "фільтри" за допомогою логічних операцій. Вивчив
правила кодування додатних і від’ємних двійкових чисел для здійснення арифметичних
операцій у комп’ютерах. Також я навчився кодувати двійкові числа із знаком у
інструкціях навчального комп’ютера – симулятора DeComp.