Сборник задач и упражнений для лабораторного практикума по курсу "ЭВУ и системы" (изучение архитектуры и системы команд INTEL-совместимых микропроцессоров). Коршунов А.Д. - 13 стр.

UptoLike

Составители: 

13
Задание 2. Работа с моделями графических изображений
В памяти компьютера записана последовательность байтов, представляющая то
или иное графическое изображение. Декодировать его и выдать на виртуальный дис-
плей, изображая каждый пиксель псевдографическим символом с кодом 219 = 0DBh,
представляющим собой закрашенный прямоугольник. При этом в программе AsmEd
должна быть включена DOS-кодировка (меню «Вид»-«Настройка»-«Символы»), за-
держка автовыполнения должна быть выключена (равна 0).
Вариант 1. Одноцветное изображение без сжатия.
Изображение построено в квадратной матрице 8х8, состоит соответственно из восьми
строк и каждая строка кодируется одним байтом: если тот или иной бит равен 0, то
пиксель выводится одним цветом (например, зелёным - это цвет фона), если бит равен
1 - другим цветом (например, красным - это цвет самого изображения).
Пример одной строки:
= 0 1 0 1 1 0 0 1 = 59h
Алгоритм вывода такого изображения на экран виртуального дисплея системы AsmEd:
1. Записать в регистр SI адрес начала массива графических данных
2. Записать в регистр DI адрес начала видеопамяти (в системе AsmEd - 0F600h)
3. Повторить 8 раз:
a. Прочитать очередной байт ( = GB) из сегмента данных по адресу SI
b. Положить номер бита ( = B) равным 7
c. Повторить 8 раз:
c1. Выделить бит ( = BIT) номер B из байта GB
c2. Если BIT=1, то вывести по адресу DI красный прямоугольник (пиксель)
c3. Если BIT=0, то вывести по адресу DI зелёный прямоугольник (пиксель)
c4. Уменьшить номер анализируемого бита B на единицу
c5. Увеличить DI на следующую позицию экрана (видеопамяти)
(конец цикла)
d. Перейти (увеличением DI) на следующую строку экрана
e. Увеличить SI для указания на следующий байт данных
(конец цикла)
4. Закончить работу
Исходные данные для построения изображений (несколько примеров):
п/п Данные (восемь байт) Название Автор картинки
I DB 81 18 A5 A5 18 81 DB орнамент Босова Л.Л. (метод. пособие 5-6 кл.)
II 40 C1 C1 7F 7E 24 24 48 собачка Свистова Катя (класс 6А, с.ш. 24)
III 99 5A 3C FF FF 3C 5A 99 жучок Тюменева Ксюша (класс 6А, с.ш. 24)
IV 00 A3 E1 79 3E 7E C4 8C волчонок Елисеева Маша (класс 6А, с.ш. 24)
V 3C 42 95 81 85 8D 42 3C рожица Нуриева Афгана (класс 6А, с.ш. 24)
VI 2A 2A 2A 1C 08 08 08 08 трезубец Нуриева Афгана (класс 6А, с.ш. 24)
VII. Более сложное задание - изображение из 10 строк по 16 клеток (пикселей) в строке:
50 0E F8 01 A8 01 F8 02 77 FC 23 FC 03 FE 02 02 02 02 0C 0C (кошечка)
Здесь каждые два соседних байта описывают свою строку (50, 0E - первая строка; F8,
01 - вторая и т.д.). Напишите соответствующий алгоритм и программу!
                                                                                    13

Задание 2. Работа с моделями графических изображений

       В памяти компьютера записана последовательность байтов, представляющая то
или иное графическое изображение. Декодировать его и выдать на виртуальный дис-
плей, изображая каждый пиксель псевдографическим символом с кодом 219 = 0DBh,
представляющим собой закрашенный прямоугольник. При этом в программе AsmEd
должна быть включена DOS-кодировка (меню «Вид»-«Настройка»-«Символы»), за-
держка автовыполнения должна быть выключена (равна 0).

Вариант 1. Одноцветное изображение без сжатия.
Изображение построено в квадратной матрице 8х8, состоит соответственно из восьми
строк и каждая строка кодируется одним байтом: если тот или иной бит равен 0, то
пиксель выводится одним цветом (например, зелёным - это цвет фона), если бит равен
1 - другим цветом (например, красным - это цвет самого изображения).

Пример одной строки:
                               = 0 1 0 1 1 0 0 1 = 59h

Алгоритм вывода такого изображения на экран виртуального дисплея системы AsmEd:

1. Записать в регистр SI адрес начала массива графических данных
2. Записать в регистр DI адрес начала видеопамяти (в системе AsmEd - 0F600h)
3. Повторить 8 раз:
       a. Прочитать очередной байт ( = GB) из сегмента данных по адресу SI
       b. Положить номер бита ( = B) равным 7
       c. Повторить 8 раз:
          c1. Выделить бит ( = BIT) номер B из байта GB
          c2. Если BIT=1, то вывести по адресу DI красный прямоугольник (пиксель)
          c3. Если BIT=0, то вывести по адресу DI зелёный прямоугольник (пиксель)
          c4. Уменьшить номер анализируемого бита B на единицу
          c5. Увеличить DI на следующую позицию экрана (видеопамяти)
           (конец цикла)
       d. Перейти (увеличением DI) на следующую строку экрана
       e. Увеличить SI для указания на следующий байт данных
       (конец цикла)
4. Закончить работу

Исходные данные для построения изображений (несколько примеров):
№ п/п Данные (восемь байт) Название                   Автор картинки
  I    DB 81 18 A5 A5 18 81 DB орнамент      Босова Л.Л. (метод. пособие 5-6 кл.)
  II   40 C1 C1 7F 7E 24 24 48    собачка Свистова Катя (класс 6А, с.ш. № 24)
 III   99 5A 3C FF FF 3C 5A 99     жучок   Тюменева Ксюша (класс 6А, с.ш. № 24)
 IV    00 A3 E1 79 3E 7E C4 8C волчонок Елисеева Маша (класс 6А, с.ш. № 24)
  V    3C 42 95 81 85 8D 42 3C    рожица Нуриева Афгана (класс 6А, с.ш. № 24)
 VI    2A 2A 2A 1C 08 08 08 08   трезубец Нуриева Афгана (класс 6А, с.ш. № 24)

VII. Более сложное задание - изображение из 10 строк по 16 клеток (пикселей) в строке:

50 0E F8 01 A8 01 F8 02 77 FC 23 FC 03 FE 02 02 02 02 0C 0C    (кошечка)

Здесь каждые два соседних байта описывают свою строку (50, 0E - первая строка; F8,
01 - вторая и т.д.). Напишите соответствующий алгоритм и программу!