Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВИВЧЕННЯ КОМАНД МІКРОПРОЦЕСОРА КР580.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
251.86 Кб
Скачать

Опис програми на асемблері для мп кр580

Для наочного опису функціонування програм мікропроцесора КР580 розглянемо приклад програми виведення символів і графіки на монітор з використанням лічильників і застосуванням циклів:

Приклад: Розробити програму виведення всіх можливих символів в кодуванні DOSна дисплей зі зміною кольору кожного символу, провести пряму лінію, кожен піксель якого буде відрізнятися кольором від попереднього.

Рішення:

Для виведення символів на екран необхідно використовувати двухбайтное команди для монітора, де 1 байт зберігає інформацію про колір символу, 2 байт зберігає інформацію про самому символі в кодуванні DOS. Висновок на екран проводиться командойOUTN (гдеN- номер порту виведення), в нашому случаеOUT00. Необхідно відправити 2 байта для виведення одного символу. Дані для виведення 2х байт будемо мати у своєму розпорядженні в регістрахBі З відповідно. Після виведення 2х байт в монітор необхідно декрементіровать В і С, відповідно зміниться колір і символ в наступній передачі даних. Стартові значення для регістрів В - 7Fі З -FF, після виконання 256 циклів програми регістр З обнулится, далі необхідно відняти його з акумулятора, де знаходиться також значення 00, і отримати флагZ. За командеJNZадр16 програма буде виконувати умови циклу.

комірка | мнемоніка | коментар

0000 MVIB, 7F; Введення в регістр В кольори для 1го символу

0002 MVIC, FF; Введення в регістр С коду 1го символу

0004 MOVA, B; Введення в акумулятор кольору символу

0005 OUT00; Висновок кольору з акумулятора в монітор

0007 MOVA, C; Введення в акумулятор код символу

0008 OUT00; Висновок коду символу в монітор

000А DCRB; Декремент коду кольору

000BDCRC; Декремент коду символу

000С MVIA, 00; Введення в акумулятор нуля

000ESUBC; Вирахування з нуля коду символу

000FJNZ0004; Перевірка акумулятора на нуль

0012 HLT; зупинка

Для виведення графічного пікселя на екран необхідно використовувати трехбайтовую команду монітора. Перший байт містить код кольору пікселя, другий - координату по осі х, третій - координату по у. Для того щоб провести пряму лінію, слід декрементіровать значення х і фіксувати значення у в кожному циклі, або навпаки. Щоб отримати різнобарвну лінію, байт коду кольору необхідно також декрементіровать в кожному циклі. До наявних регістрів-лічильників В і С додаємо регістр-лічильник D, тепер У зберігає код кольору пікселя (8F-FF), С - координату по х, D- координату по у.

комірка | мнемоніка | коментар

0000 MVIB, FF; Введення лічильника кольору

0002 MVIC, 7F; Введення координати х

0004 MVID, FF; Введення лічильника координати у

0006 MOVA, B; Введення в акумулятор кольору пікселя

0007 OUT00; Висновок кольору з акумулятора в монітор

0009 MOVA, C; Введення в акумулятор координати х

000AOUT00; Висновок координати в монітор

000CMOVA, D; Введення в акумулятор лічильника у

000DOUT00; Висновок в монітор лічильника у

000FDCRB; Декремент коду кольору

0010 DCRD; Декремент координати у

0011 MVIA, 00; Введення в акумулятор нуля

0013 SUBB; Вирахування з нуля координати н

0014 JNZ0004; Перевірка акумулятора на нуль

0017 HLT; зупинка

Малюнок 3 - Монітор емулятор з виконаними програмами 1 і 2.

Лабораторне завдання

Створити програму виведення на монітор свого Імені і Прізвища, обмальованими прямокутником довільного кольору

Звіт за формою і змістом повинен містити функціональну схему КР580 та ­Програму в мнемонічному вигляді з коментарями, що пояснюють роботу кожної команди (див. Приклад).

Контрольні питання

  1. Опишіть принцип функціонування мікропроцесора КР580.

  2. Назвіть відомі вам команди.

  3. Як працювати з регістром прапорів?

  4. Типи адресації МП.

  5. Назвіть максимальне число адресується пам'яті і пристроїв введення-виведення МП КР580.