"Сборник задач для лаб практ. 4 курса"



бет2/6
Дата27.05.2023
өлшемі176 Kb.
#474342
түріСборник задач
1   2   3   4   5   6
Asm Tasks 4k

Перед началом работы студенту рекомендуется повторить раздел 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 «Методических указаний».



7. Разные задачи

1. Дан байт в пределах от 0 до FFh (выполнить ввод из порта № 2). Выдать на дисплей как целое число со знаком в пределах от -128 до +127.


2. Дано целое число в пределах 0…40. Возвести это число в куб и результат оставить в регистре АХ.


3. Дан байт, представляющий собой число в стандартном двоичном коде. Преобразовать его в код Грея или какой-либо другой (см. таблицу). Использовать для преобразования команду XLAT.



Двоичный код

Код Грея

Код со сдвигом 3

Код «два из пяти»

0 0 0

0 0 0

0 1 1

11000

0 0 1

0 0 1

1 0 0

00011

0 1 0

0 1 1

1 0 1

00101

0 1 1

0 1 0

1 1 0

00110

1 0 0

1 1 0

1 1 1

01001

1 0 1

1 1 1

0 0 0

01010

1 1 0

1 0 1

0 0 1

01100

1 1 1

1 0 0

0 1 0

10001

4. Дан байт или слово, размещённые в регистрах AL или AX соответственно. Написать подпрограмму (процедуру), выводящую их на виртуальный дисплей как десятичное целое без знака. Число должно быть выдано на первую (верхнюю) строку дисплея, причём начальная позиция его расположения должна передаваться в подпрограмму через регистр BL (если BL = 0 - вывод с левого верхнего угла). Подпрограмма должна быть объявлена с помощью директив PROC и ENDP, вызываться командой CALL и возвращать управление в вызвавшую программу по команде RET. Примечание. Внимательно изучите тексты программ HexToDec.asm и PrintNumber.asm, находящиеся в папке Examples системы программирования AsmEd.


5. Необходимо разработать программное обеспечение для карманной электронной игрушки, умеющей отгадывать календарные даты (дни рождения). Человек загадывает календарную дату, умножает число (номер дня в месяце = X) на 12, прибавляет номер месяца (Y) и результат сообщает отгадчику. Так, при дате 10 января будет сообщён результат 12X+Y = 12*10 + 1 = 121. Отгадчик должен действовать по следующему алгоритму: определить остаток R от деления результата на 12, и тогда при R=0 имеем Y=12, в противном случае Y=R. Теперь, зная Y, уже легко найти X: из сообщённого результата вычитаем Y и то, что получилось, делим на 12.


В нашем примере Y = 121 mod 12 = 1 (январь), X = (121-1)/12 = 10 (число), таким образом, дата 10 января отгадана.
Написать программу, работающую в качестве отгадчика. Человек вводит результат своих подсчётов в порт № 2. Программа выдаёт отгаданную дату на виртуальный дисплей в следующем формате: XX.YY, в нашем примере - 10.01. Использовать подпрограмму вывода числа, разработанную при решении предыдущей задачи (№ 4).
8. Задания для лабораторных работ, выполняемые во встроенном ассемблере системы Borland Pascal (дополнительный раздел)


В задачах этого раздела под термином «массив» понимается стандартная структура языка Паскаль, описываемая с помощью слова ARRAY.



  1. Даны два массива типа BYTE: один заполнен (средствами языка Паскаль) случайными числами в пределах от 1 до 10, другой заполнен нулями. Разработать программу, записывающую во второй массив квадраты соответствующих чисел из первого. Пример входных данных: A=(3, 1, 5, 7, 9), B=(0,0,0,0,0). Результат: B=(9, 1, 25, 49, 81). Примечание: использовать команду MUL.




  1. В программе на языке Паскаль описаны две переменные типа string: одна из них содержит произвольный текст из малых (строчных) латинских букв, другая - заполнена таким же количеством пробелов. Осуществить преобразования: (а) заглавные/строчные латинские буквы; (б) шифровку/дешифровку текста (см. раздел № 4, задачи № 4 и 5).




  1. Пользуясь функцией AL=0 / INT 16h / AL->(код символа), написать программу, анализирующую нажатие клавиш ‘e’ и ‘r’. При нажатии первой из них должен происходить выход их программы. При нажатии второй – изображаться прямоугольник в графическом режиме 320х200 (прямая запись в видеопамять в графическом режиме), причем при каждом очередном нажатии ‘r’ цвет этого прямоугольника должен циклически изменяться (использовать коды цветов 10,11,12,13,14,15).




  1. Дан массив из трех байтов. Первый байт – это ширина, второй – высота, третий – цвет. Переключить экран в графический режим 320х200 и построить прямоугольник с этими параметрами прямой записью в видеопамять.




  1. Используя графический режим 320х200 и прямую запись в видеопамять, изобразить пять горизонтальных линий различного цвета.




  1. Используя графический режим 320х200 и прямую запись в видеопамять, изобразить государственный флаг России (коды и порядок цветов сверху вниз: 15-белый, 9-синий, 12-красный).




  1. Используя графический режим 320х200 и прямую запись в видеопамять, изобразить: а) горизонтальную, б) вертикальную линию, причем каждую точку выводить на 1 секунду позже предыдущей. Для чтения системного таймера применить функцию DOS: AH=2Ch / INT 21h / DH->(секунды).

9. Итоговые задания
Задание 1. Работа с кодом Морзе

Предлагается написать программу, перекодирующую текстовое сообщение (строку) в код Морзе либо программу, по коду Морзе восстанавливающую исходную строку.






Достарыңызбен бөлісу:
1   2   3   4   5   6




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет