
- •Тема 1.Системи відліку
- •Тема 2.Пеpевод чисел із однієї системи відліку в іншу
- •Тема 3.Представлення чисел в еом
- •Тема 4.Двійкова арифметика
- •Тема 5.Арифметичні дії над числами з плаваючою комою
- •Тема 6.Аpхітектуpа мікpопpоцесоpа кр580вм80
- •Мультиплексор
- •Тема 7.Пpогpамна модель мп кр580вм80а
- •Тема 8. Методи адpесацiї
- •Тема 9. Машина мова та асемблер
- •Тема 10. Загальна архітектура еом
- •Центральний процесор
- •Запам’ятовуючі пристрої
- •Пристрій введення-виведення
- •Регістри
- •Тема 11. Система команд
- •Групи команд
- •Алгоритм виконання команд
- •Тема 12.Склад команд мп кр580вм80 Склад команд аpифметичних дій мп кр580вм80
- •Додавання з подвійною точністю
- •Операції віднімання
- •Віднімання з позикою
- •Команди інкрементування і декрементування
- •Склад команд передачі даних
- •Команди прямої адресації
- •Додаткові команди
- •E 0101 0111 e не змінюється
- •Склад команд логічних операцій
- •18. Cmc Cy Діє лише на біт Cy.
- •Команди розгалуження і переходів
- •Команда виклику підпрограми
- •Склад команд управління
- •Така задача виникає при аналізі станів сукупності тумблерів, пускачів, перемикачів або індикаторів.
- •Тема 13. Псевдокоманди мп кр580вм80
- •Програма
- •Програма
- •Програма
- •Приклад 10. Додавання десяткових чисел
- •П рограма Алгоритм
- •Тема 14. Директиви умовного асемблювання
- •Тема 15. Макрокоманди
- •Тема 16. Одно та двохпрохідний асемблери
- •Тема 17. Представлення інформації в полях назв, операцій, операндів та коментарів
- •Використання в адресних виразах арифметичних або логічних операціях для всіх типів даних.
- •Приклад 11. Таблиця квадратів
- •Програма Алгоритм
- •Тема 18. Літерно-цифровий код
- •Обробка символьної інформації
- •Приклад 12. Довжина рядка символів в коді ascii
- •Програма Алгоритм
- •Тема 19. Структура управління мп Intel 8080
- •Тема 20. Конструювання програм
- •Структурне програмування
Така задача виникає при аналізі станів сукупності тумблерів, пускачів, перемикачів або індикаторів.
Приклад 6. Визначення суми ряду чисел
Довжина ряду зберігається в комірці за адресою ADDR2 і сам ряд розміщується, починаючи з комірки ADDR3. Припустимо, що загальна сума не перевищує 127 і для її зберігання достатньо однієї комірки з адресою ADDR1.
(ADDR1) – результат,
(ADDR2) = 3 – розмір масиву
(ADDR3) = 35H – 1-й елемент масиву
(ADDR3 + 1) = 72 H – 2-й елемент масиву
(ADDR3 + 2) = 1DH – 3-й елемент масиву
Алгоритм Програма
ORG 800H
0800
97
SUB A
;Обнулення
А
0801
21 10 08
LXI
H,ADDR2
;адреса розм.
0804
46
MOV
B,M
;B
розмір
0805
23
SUM:
INX
H
;наст. комірка
0806
86
ADD
M
;додав. елем.
0807
05
DCR
B
;змен. розмір
0808
C2 05 08
JNZ SUM
;цикл, В# 0
080B
32 0F 08
STA ADDR1
;запис резул.
080E
76
HLT
080F
00
ADDR1:
DB 0
0810
03
ADDR2:
DB 3
0811
35 72 1D
ADDR3:
DB 35H,72H,1DH
END
Ні
Так
Тема 13. Псевдокоманди мп кр580вм80
-
Тип псевдокоманди
Псевдокоманда
DATA
DB (Define byte) - 8 бітні дані
DW (Define word) - 16 бітні дані
DEFINE
EQU
SET
END
END
ORIGIN
ORG
RESERVE
DS (Define store)
Асемблер автоматично присвоює значення іменам, які визначені як мітки команд. Ці значення визначають в процесі асемблювання команди і вони дорівнюють значенню лічильника команд. Але в програмі можна визначити інші імена і присвоїти їм значення, використовуючи директиви EQU і SET. Імена, що визначені директивою EQU не можуть бути перевизначені під час асемблювання. Якщо ім’я визначено директивою SET, то воно може бути перевизначене.
ONES EQU 0FFH
KRIST SET 5; визначення імені KRIST
ADI KRIST
KRIST SET 10H-6Q; перевизначення KRIST
ADI KRIST
Для визначення даних використовують оператори DB та DW.
Специфіковані оператором DB дані розміщуються послідовно в пам’яті, починаючи з адреси, що вказана в лічильнику команд.
Синтаксична конструкція
<ім’я >: DB < список виразів або рядків >
до 8 виразів і (або) рядків, розділених комами.
Значення виразів повинно знаходиться в межах від –127 до 128 включно. Рядок символів може містити до 128 символів в коді ASCII, що заключено в апострофи.
54 49 4D 45 ONES: DB ‘TIME’
A3 TWO: DB 0A3H
FD 0A CONST: DB –3,5*2
Оператор DW визначає в пам’яті 16 - бітові значення із списку виразів поля операнда, починаючи з поточного значення лічильника команд.
Синтаксис
<ім’я >: DW < список виразів або рядків >
8 елементів
Нехай COMP та FILL – мітки, що визначені раніше в програмі COMP=3B1CH FILL=3EB4H, тоді
1С 3В ADDR: DW COMP
B4 3E FILL: DW FILL
41 00 42 41 STRING: DW ‘A’, ‘AB’
04 00 FOUR: DW 4
Оператор DW використовують в програмі для запам’ятовування адрес.
Оператор DS використовують для визначення областей пам’яті, що використовуються для розміщення даних в ході виконання програми.
Синтаксис оператора DS
<ім’я >: DS < вираз >
Значення виразу визначає кількість байт в пам’яті . Будь-яке ім’я, повинно бути попередньо визначено в ході асемблювання до використання оператору DS.
BUFF: DS 72
Директива ORG встановлює лічильник команд у відповідність із значенням виразу в полі її операнда.
Синтаксис директиви ORG
<ім’я > : ORG < вираз >
Ім’я, що входить в вираз, визначають попередньо.
Нехай поточне значення лічильника команд 0880H.
PAG1: ORG 0FF34H
Мітці PAG1 присвоюється значення 0880H і наступна команда або байт даних будуть розміщені за адресою 0FF34H.
Директива END фіксує кінець програми і завершує процес огляду асемблером тексту програми на мові асемблера.
Синтаксис
< ім’я >: END
Приклад 7. Пересилання даних
Дана задача являє собою пересилку даних з одного місця пам’яті в інше.
Нехай довжина масиву знаходиться в комірці пам’яті за адресою ADDR1, дані розташовуються, починаючи з адреси ADDR2 і область, в яку вони надходять починається з адреси ADDR3. Масив складається з двох елементів, розташованих відповідно в комірках з адресами ADDR2 та ADDR2+1.
(ADDR1)=2 - розмір масиву,
(ADDR2)=7EH – 1-й елемент масиву,
(ADDR2+1)=55H – 2-й елемент масиву.
В результаті: зміст комірки за адресою ADDR2 необхідно надіслати в комірку за адресою ADDR3, а зміст комірки за адресою ADDR2+1 – в комірку за адресою ADDR3+1.