- •Тема 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 |
|
LXI D,SQTAB |
|
LDA ADDR1 |
|
MOV L,A |
|
MVI H,0 |
|
DAD D |
|
MOV A, M |
|
STA ADDR2 |
|
HLT |
SQTAB: |
DB 0,1,4,9,16,25,36,49 |
ADDR1: |
DB 4H |
ADDR2: |
DB 0 |
|
END |
Тема 18. Літерно-цифровий код
Коли мікро ЕОМ взаємодіє з відео терміналом або клавіатурою, необхідно звертатися до коду, який одночасно включає в себе числові та алфавітні знаки. Такі коди називають літерно-цифровими. Найбільш часто використовують літерно-цифровий код ASCII – американський стандартний код обміну інформацією. Повний код ASCII має коди цифр, великих та маленьких літер, знаків пунктуації та ознак команд.
Обробка символьної інформації
В більшості областях використання МП необхідна обробка символьної інформації. Це необхідно не тільки при роботі з такими поширеними пристроями, як клавішні пульти, телетайпи, друкуючі пристрої та дисплеї, але і при взаємодії з ЕОМ. Коди символів в коді ASCII можуть оброблюватися як звичайні числа з використанням арифметичних операцій та операцій порівняння.
Приклад 12. Довжина рядка символів в коді ascii
Необхідно визначити довжину рядка в коді ASCII, який розміщується в пам’яті, починаючи з адреси ADDR1. Кінець рядка помічено символом “крапка”, що має шістнадцятковий код 2EH. Результат необхідно розмістити в комірку за адресою ADDR1-1.
Програма Алгоритм
|
|
|
MVI B,0 ;довжина рядка =0 |
|
MVI A,’.’; завантаження крапки |
NI: |
LXI H,ADDR1 ;початок рядка |
|
CMP M ; поточний символ ‘.’ ? |
|
JZ DOV ; так, йти до DOV |
|
INR B;ні,збільшити довжину на 1 |
|
INX H |
|
JMP NI |
DOV: |
MOV A,B |
|
STA ADDR1-1 |
|
HLT |
ADDR1: |
DB ‘A!0*.2H’ |
|
END |
Приклад 12. Перетворення із коду ASCII в десяткову систему
Щоб перетворити цифру з коду ASCII в десяткову систему, достатньо відняти від її коду значення 30H (нуль в коді ASCII). В програмі необхідно також перевірити, чи є символ, що перетворюється цифрою.
ORG 800H;
SUI ‘0’; завантажити символ в коді ASCII
CPI 10; відняти нуль в коді ASCII A<10, Cy=1
JC DEC; результат менше 10 ?
MVI A,0FFH; символ не є десятковою цифрою
DEC: STA ADDR2; запам’ятати результат
HLT
ADDR1: DB 36H
ADDR2: DB 0
END
Приклад 13. Порівняння символьних рядків
В багатьох задачах необхідно розпізнавати рядки символів в коді . Ці рядки можуть бути командами, ідентифікаторами, іменами, повідомленнями або числами. Розпізнавання складається в перевірці співпадання деякого символьного рядка з заданим.
Нехай два рядка символів розміщені в пам’яті, починаючи з комірок ADDR1 та ADDR2 відповідно. В комірці ADD1 вказано довжину рядка. Програма надсилає в ADD2 нуль, якщо рядки співпадають та 0FFH в протилежному випадку.
ORG 800H CMP M
MVI C,0FFH JNZ D1
LXI H,ADD1 DCR B
MOV B,M JNZ D2
LXI D,ADDR2-1 D1: MOV A,C
D2: INX H STA ADD2
INX D HLT
LDAX D ADD1: DB 4
ADDR1: DB ‘CAT.’
ADDR2: DB ‘CAT,’
ADD2: DB 0
END

ORG
800H