Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Asm_Tasks_4k.doc
Скачиваний:
6
Добавлен:
01.04.2025
Размер:
204 Кб
Скачать
☆

5. Обработка данных в цикле с использованием ветвлений

В задачах этого раздела под термином «массив» понимается последовательность данных, размещённая каким-либо способом в сегменте DS (система AsmEd легко позволяет сделать это). Результаты подсчётов элементов следует получить в одном из регистров процессора по указанию преподавателя. Второй массив (в задачах 3,6,7) можно разместить как в сегменте DS, так и в сегменте ES.

  1. Дан массив байтов. Подсчитать количество элементов, равных трем.

  2. Дан массив байтов. Подсчитать количество элементов, кратных трем (команда DIV).

  3. Дано два массива байтов, один заполнен числами по указанию преподавателя. Заполнить второй массив следующим образом: все элементы первого массива, стоящие на нечетных местах, возвести в квадрат, стоящие на четных местах – в куб.

  4. Дан массив: а) байтов, б) слов. Подсчитать количество четных элементов.

  5. Дан массив: а) байтов, б) слов. Подсчитать количество элементов, делящихся на 10 и не делящихся на 3.

  6. Дан массив байтов. Сформировать другой массив, в который нечетные элементы из первого массива переписать без изменений, а четные – увеличить на 1.

  7. Дан массив, заполненный двузначными числами. Сформировать другой массив, в котором каждый элемент представляет собой сумму цифр соответствующего числа первого массива.

6. Работа с видеопамятью (виртуальный дисплей)

В нижеследующих задачах студент должен использовать запись информации в видеопамять компьютерной системы. В системе AsmEd эта память начинается с адреса 0F600h и имеет структуру, стандартную для дисплеев IBM PC, т.е. чередующиеся байты кодов символов и цветовых атрибутов. Виртуальный дисплей системы AsmEd работает только в текстовом режиме (возможно использование псевдографических символов, как в задачах 5 и 6). Рекомендуется включить DOS-кодировку (меню «Вид»-«Настройка»-«Символы»), задержка автовыполнения должна быть выключена (равна 0). Разумеется, вывод на дисплей можно комбинировать с задачами из других разделов.

Перед началом работы студенту рекомендуется повторить раздел 2.4 и Приложение 1 «Методических указаний».

  1. Дан массив байтов, заполненный одноразрядными десятичными числами. Пользуясь прямой записью в видеопамять в текстовом режиме, вывести массив на экран зелёными буквами на красном фоне.

  1. Дан такой же массив, как в предыдущей задаче. Вывести его на экран аналогичным образом, но на белом фоне. Четные элементы выводить красным цветом, нечетные – зелёным цветом.

  1. Дано слово на русском языке. Выдать на дисплей: согласные - белым цветом, гласные - красным. Фон оставить чёрным.

  1. Дана строка символов. Выдать на дисплей с циклическим перебором цветов в пределах от 9 до 14 на чёрном фоне: первый символ выводится цветом 9, второй - 10, …, шестой - 14, седьмой - опять 9 и так далее.

  1. Дан массив байтов. Построить диаграмму (горизонтальные столбцы) из символов с кодом 219 (0DBh) на чёрном фоне. В каждом байте: младшие четыре разряда - цвет столбца, старшие - длина столбца.

  1. Написать программу, изображающую на виртуальном дисплее государственный флаг России из трёх полос (коды и порядок цветов сверху вниз: 15-белый, 9-синий, 12-красный). Каждую полосу составить из пяти символов с кодом 219 (0DBh). Фон изображения оставить чёрным.

  1. Дан байт (возможен ввод из порта 2 или 3). Получить его представление на виртуальном дисплее в шестнадцатеричном виде с добавлением буквы ‘h’ в конце.

  1. Дан байт (возможен ввод из порта 2 или 3). Получить его представление на виртуальном дисплее в двоичном виде с добавлением буквы ‘b’ в конце.

  1. Написать подпрограмму (процедуру) для вывода произвольной строки текста, находящейся в оперативной памяти, на виртуальный дисплей. Подпрограмма должна быть объявлена с помощью директив PROC и ENDP, вызываться командой CALL и возвращать управление в вызвавшую программу по команде RET. Подпрограмма должна получать цветовой атрибут в регистре AL, указатель на строку - в регистре BX, координаты X и Y первого символа выводимой строки - в регистрах DH и DL. Перед началом работы внимательно изучите пример программы из Приложения 2 «Методических указаний».

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]