
- •Тема 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. Конструювання програм
- •Структурне програмування
Програма
|
|
|
ORG 800H |
|
800 |
21 10 08 |
|
LXI H,ADDR1 |
;HL ADDR1 вказівник на ;кількість |
803 |
46 |
|
MOV B,M |
;B {(HL)} завантажуємо ;довжину масиву |
804 |
11 12 08 |
|
LXI D,ADDR3-1 |
|
807 |
23 |
TRUNS: |
INX H |
; після інкрементування ;регістрових пар HL i DE ;отримуємо доступ до перших ;елементів |
808 |
13 |
|
INX D |
; адреса, куди надсилаємо дані |
809 |
7E |
|
MOV A,M |
;елемент першого масиву |
80A |
12 |
|
STAX D |
; {(DE)} A переміщення |
80B |
05 |
|
DCR B |
; зменшення лічильника на 1 |
80C |
C2 07 08 |
|
JNZ TRUNS |
;якщо зміст В#0 перейти на ;мітку TRUNS |
80F |
76 |
|
HLT |
|
810 |
02 |
ADDR1: |
DB 2 |
|
811 |
7E 55 |
ADDR2: |
DB 7EH,55H |
|
813 |
00 |
ADDR3: |
DB 0 |
|
|
|
|
END |
|
Приклад 8. Знаходження максимального елементу масиву ( задача сортування ). “Бульбашковий метод”.
Нехай довжина масиву даних знаходиться в пам’яті за адресою ADDR2, а сам масив розміщується, починаючи з адреси ADDR3. Програма повинна знайти максимальне значення і помістити його в комірку за адресою ADDR1 .
(
ADDR1)
= 0 – max,
(ADDR2) = 3 - розмір масиву (лічильник),
(ADDR3) = 37H - 1-й елемент масиву,
(ADDR3+1) = 0F2H - 2-й елемент масиву,
(ADDR3+2) =0C6H - 3-й елемент масиву.
Програма
|
|
|
ORG 800H |
800 |
21 16 08 |
|
LXI H,ADDR2 |
803 |
46 |
|
MOV B,M |
804 |
05 |
|
DCR B |
805 |
23 |
|
INX H |
806 |
7E |
|
MOV A,M |
807 |
27 |
MAX: |
INX H |
808 |
BE |
|
CMP M |
809 |
D2 0D 08 |
|
JNC NOCH |
80C |
7E |
|
MOV A,M |
80D |
05 |
NOCH: |
DCR B |
80E |
C2 07 08 |
|
JNZ MAX |
811 |
32 15 08 |
|
STA ADDR1 |
814 |
76 |
|
HLT |
815 |
00 |
ADDR1: |
DB 0 |
816 |
03 |
ADDR2: |
DB 03H |
|
37 F2 C6 |
ADDR3: |
DB 37H,0F2H,0C6H |
|
|
|
END |
-32768…32767 2B
-65536…65535 4B
Приклад 9. Арифметика для чисел, які займають декілька комірок пам’яті.
Нехай довжина чисел знаходиться в комірці пам’яті за адресою ADDR1, а самі числа розташовуються починаючи з адрес ADDR2 та ADDR3 відповідно, таким чином, що спочатку йдуть молодші розряди. Програма розміщує результати в комірки, де зберігалось перше число.
(ADDR1) = 3 – довжина чисел,
(ADDR2)=29H (ADDR2+1)=0A4H (ADDR2+2)=50H- перше число,
(ADDR3)=0FBH (ADDR3+1)=37H (ADDR3+2)=28H – друге число.
Результатом є додавання 24 - бітних чисел:
(ADDR2) = 29H + 0FBH = 24 i 1 переносу
(ADDR2+1) = 0A4H + 37H + 1 = 0DCH
(ADDR2+2) = 50H + 28H = 78H 78DC24H