Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний університет Львівська політехніка
Кафедра САПР
Звіт
До лабораторної роботи №5
З курсу “Архітектура комп’ютерів”
На тему:
«Операції множення та ділення цілих беззнакових та знакових чисел однокристального МП 8080 (КР580ВМ80А)».
Тема роботи:
Операції множення та ділення цілих беззнакових та знакових чисел однокристального МП 8080 (КР580ВМ80А).
Мета роботи:
Вивчити алгоритми виконання операцій множення та ділення цілих беззнакових і цілих знакових чисел для однокристального мікропроцесора Intel 8080 (КР580ВМ80А), набути практичних навиків складання та налагоджування програм з використанням цих алгоритмів.
Теоретичні відомості
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Лабораторне завдання:
Виконати ділення 73:6 за поширеним алгоритмом, результат зберегти в регістровій парі B- частка, С- залишок.
Хід роботи
Для реалізації поставленого завдання мною був обраний алгоритм ділення з відновленням залишку і на його основі розроблена наступна програма:
ORG 100H
MVI L,8 ; KILKIST BIT - ITERACIJ CUKLY
MVI C,0
MVI D,6h ; D <- DILNUK
MVI E,49h ; E <- DILENE
LXI SP,150H
POCH: MOV A,E
RAL
MOV E,A
MOV A,C
RAL
SUB D
JNC NEVID
ADD D
NEVID: MOV C,A
CMC
MOV A,B
RAL
MOV B,A
PUSH B
DCR L
JNZ POCH
INR L
HLT
Після набору тексту програми в текстовому редакторі її було збережено у файл Lab5.asm. Після цього скомпільована та злінкована у файл Lab5.com. Пізніше було завантажено скомпільовану програму у відлагоджувач за допомогою команди d Lab5.com., та запущено на виконання командою G.
Після того як програма виконалась мною було перевірено відповідність карти пам’яті та інформації яка знаходилася в комірках за потрібною адресою, та відповідних регістрах.
Карта пам’яті
Адреса
Дані
Коментар
H
D
B
H
D
B
140
320
101000000
01
1
0001
C8
141
321
101000001
0C
12
1100
B8
142
322
101000010
00
0
0000
C7
143
323
101000011
06
06
0110
B7
144
324
101000100
00
00
0000
C6
145
325
101000101
03
3
0011
B6
146
326
101000110
03
3
0011
C5
147
327
101000111
01
1
0001
B5
148
328
101001000
04
4
0100
C4
149
329
101001001
00
0
0000
B4
14A
330
101001010
02
2
0010
C3
14B
331
101001011
00
0
0000
B3
14C
332
101001100
01
1
0001
C2
14D
333
101001101
00
0
0000
B2
14E
334
101001110
00
0
0000
C1
14F
335
101001111
00
0
0000
B1
Prn файл
0100 ORG 100H
0100 2E08 MVI L,8 ; KILKIST BIT - ITERACIJ CUKLY
0102 0E00 MVI C,0 ; Очистити регістр С ; (С)<-0
0104 1606 MVI D,6H ; D <- DILNUK
0106 1E49 MVI E,49H ; E <- DILENE
0108 315001 LXI SP,150H ; Встановлюємо лічильники стеку
010B 7B POCH: MOV A,E ; Передаємо ділене в акумулятор
010C 17 RAL ; Зсуваємо вліво через прапорець переносу
010D 5F MOV E,A ; Повертаємо ділене назад в рег. Е
010E 79 MOV A,C ;Зсуваємо залишок вліво
010F 17 RAL
0110 92 SUB D ;Відняти дільник
0111 D21501 JNC NEVID ; Перехід на мітку NEVID
0114 82 ADD D ; (A)<-(A)+(D)
0115 4F NEVID: MOV C,A ; (C)<-(A)
0116 3F CMC ; інверсія прапорця переносу
0117 78 MOV A,B ; (А)<-(B)
0118 17 RAL ; Зсув вліво через прапорець переносу
0119 47 MOV B,A ; (B)<-(А)
011A C5 PUSH B ;Завантаження в стек регістрової пари BC
011B 2D DCR L ; Декримент L
011C C20B01 JNZ POCH ; Перехід якщо результат не нуль – Z=0
011F 2C INR L ; Збільшити регістр L на 1
0120 76 HLT
Висновок:
Під час виконання лабораторної роботи мною було засвоєно матеріал по темі: “Операції множення та ділення цілих беззнакових та знакових чисел однокристального МП 8080 (КР580ВМ80А)”. Я отримав практичні навички складання і налагодження програм, з використанням алгоритмів ділення та множення цілих беззнакових та знакових чисел однокристального МП 8080 (КР580ВМ80А).