Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Блок 3. 1. Заполнить экран символами «!»



1. Заполнить экран символами «!». Перехватить прерывание 1Ch, по нажатию буквенной клавиши на клавиатуре. Заменить содержимое экрана нажатым символом. Вернуть экран в начальное состояние при нажатии пробела.

2. Очистить экран. Вывести несколько строк произвольного текста. Перехватить прерывание печати экрана Print Screen (Int 5h). Первый вызов этого прерывания заменяет все буквы текста их ASCII кодами. Второй – приводит в исходное состояние и т.д.

3. Очистить экран. Заполнить его произвольной информацией. Перехватить прерывание печати экрана Print Screen (Int 5h). Вызов этого прерывания транспонирует матрицу символов экрана (т.е. строчки становятся столбцами и наоборот)

4. Выводить последовательно символы от «а до «я» в центр экрана. При нажатии какой-либо буквы на клавиатуре менять темп вывода. Значение задержки между выводом очередного символа определять следующим способом: введённую букву преобразовать в ASCII код и умножить на 28 (в зависимости от тактовой частоты процессора данное значение может быть откорректировано в большую или меньшую сторону в процессе отладки), это и будет число повторений цикла задержки. Для анализа нажатия клавиши использовать вектор 1Ch.

5. Выводить в одно место экрана поочерёдно циклически символы «а» и «я». Задержка между выводом каждого символа составляет 1с. При нажатии любой клавиши на клавиатуре увеличивать значение задержки на 0,2с. Для анализа нажатия клавиши использовать вектор 1Ch.

6. Выводить в одно место экрана введённый символ до тех пор пока не будет введён другой символ. Менять при выводе атрибут символа если была нажата цифровая клавиша (значение нового атрибута вычислять как остаток от деления на 15 произведения текущего значения атрибута и значения введенной цифры). Для анализа нажатия клавиши использовать вектор 1Ch.

7. Выводить в правом верхнем углу ASCII код цифры ноль. В зависимости от нажатия на клавиатуре менять атрибут вывода и выводимое значение следующим образом: значение текущего атрибута сложить с ASCII кодом нажатой клавиши и взять остаток от деления полученной суммы на 15 – это и будет значение нового атрибута, новое выводимое значение – это ASCII код нажатой клавиши. Для анализа нажатия клавиши использовать вектор 1Ch.

8. Выводить в центр экрана цифру знак «!». Переводить этот символ в позицию выше, ниже, левее или правее текущего символа, в зависимости от нажатия клавиш «W», «A», «S», «D» (перед новым выводом очищать экран). Для анализа нажатия клавиши использовать вектор 1Ch.

9. В программе имеется циклический счётчик по i, считающий от 100 до 200. При нажатии любой клавиши содержимое счётчика преобразуется в ASCII код и выводится в место экрана, определяемое следующим образом: номер строки равен i div 20, а номер столбца i mod 10. Для анализа нажатия клавиши использовать вектор 1Ch.

10. Посчитать за какое время процессор выполнить 100 миллиард команд nop. Для подсчёта времени использовать вектор 1Ch. Вывести на экран число секунд, затраченное на операцию.

11. Очистить экран. Заполнить поле на экране размером 20х20 выше главной диагонали символом «Х» (атрибут 14). Перехватив прерывание печати экрана Print Screen (Int 5h). Очередное нажатие Print Screen производит заполнение указанного поля ниже побочной диагонали, ниже главной диагонали, выше побочной диагонали, выше главной диагоналя и т.д. (т.е. треугольник из символов «Х» передвигается в поле 20х20 по часовой стрелке)

12. Выводить ежесекундно в правом верхнем углу экрана системное время «часы:минуты:секунды».При нажатии любой клавиши сдвигать позицию вывода на одно символместо влево, пока не будет достигнуто начало строки. Для анализа нажатия клавиши использовать вектор 1Ch.

13. Вывести несколько строк произвольного текста, содержащие лишь малые буквы латинского алфавита. Каждые 5 секунд каждая буква в тексте заменяется на следующую за ней в алфавите циклически (буква «а» меняется на «z»).

14. В программе имеется циклический счётчик, считающий от 96 до 150. Его значение преобразуется в ASCII код и выводится в центре экрана каждые 1,6с. При нажатии цифровой клавиши это начальное время вывода увеличивается во столько раз, какая клавиша была нажата. Для анализа нажатия клавиши и подсчёта числа тиков таймера использовать вектор 1Ch.

15. В программе имеются два циклических счётчика, считающих от 96 до 200 и от 0 до 15. Их значение определяет соответственно ASCII код символа и его атрибут для вывода в центре экрана. При нажатии какой-либо клавиши на экран выводится символ, ASCII код которого и атрибут соответствуют значению счетчиков на момент вывода (счетчики продолжают считать). Для анализа нажатия клавиши использовать вектор 1Ch.

16. В программе имеется циклический счётчик по i, считающий от 0 до 255. В правом верхнем углу экрана постоянно выводится символ «*». Каждую секунду атрибут вывода символа меняется на значение счетчика, а его положение на экране определяется следующим образом: номер строки вычисляется как i div 5, а номер столбца – i mod 40. Счетчик продолжает считать. Для подсчёта числа тиков таймера использовать вектор 1Ch.

17. Посчитать за какое время процессор сможет выполнить 1 миллиард раз программу из лабораторной работы №2. Для подсчёта времени использовать вектор 1Ch. Вывести на экран число тиков таймера, потраченное на операцию.

18. Очистить экран. Вывести несколько строк произвольного текста по 10-15 символов (атрибут 7). Перехватив прерывание печати экрана Print Screen (Int 5h), выравнивать текст по правому краю. Каждое новое нажатие клавиши Print Screen меняет выравнивание на правое, следующее – на левое и т.д.

19. Выводить ежесекундно в правом нижнем углу экрана системное время «часы:минуты:секунды». Нажатая клавиша «Delete» на клавиатуре меняет формат вывода на «минуты:секунд», повторное нажатие оставляет только секунды, а последующее – приводит все в исходное состояние и т.д. Для анализа нажатия клавиши использовать вектор 1Ch.

20. Выводить символ «@» в центр экрана. При нажатии на клавиатуре какой-либо цифры очищать экран и выводить его в строке выше в том же столбце, если он достигнет верхней строки – то перебрасывать в нижнюю в том же столбце. Для анализа нажатия клавиши использовать вектор 1Ch.

21. Выводить в центр экрана символ, нажатый на клавиатуре. Если нажата цифра, менять атрибут вывода следующим образом: ASCII код нажатой клавиши делится нацело на 4 и полученное значение является новым атрибутом. Для анализа нажатия клавиши использовать вектор 1Ch.

22. Выводить в одно место экрана символ, предшествующий по алфавиту нажатому на клавиатуре символу (считать, что перед «a» находится символ «z»). Менять при выводе атрибут символа циклически от 1 до 15 каждый раз при смене символа. Для анализа нажатия клавиши использовать вектор 1Ch.

23. Выводить в текущее положение курсора символ «&» (атрибут 10). Следующий символ «&» выводить в позицию выше, ниже, левее или правее текущего символа, в зависимости от нажатия клавиш «8», «2», «4», «6» на цифровой клавиатуре (перед выводом выполнять очистку экрана). Для анализа нажатия клавиши использовать вектор 1Ch.

24. Выводить в текущее положение курсора символ, введённый с клавиатуры. Нажатая функциональная клавиша меняет атрибут вывода следующим образом: F1 – атрибут 0, F2 – атрибут 1, …, F12 – атрибут 11, Delete – атрибут 12, End – атрибут 13, Home – атрибут 14, Esc – атрибут 15. Для анализа нажатия клавиши использовать вектор 1Ch.

25. В программе имеются три циклических счётчика, считающих от 0 до 23, от 0 до 79 и от 96 до 121. Их значение определяет соответственно строку, столбец и ASCII код выводимого на экран символа. При нажатии какой-либо клавиши выводить на экран символ с ASCII кодом и в позицию, соответствующие текущим значениям счетчиков (счетчики при этом не останавливаются). Для анализа нажатия клавиши использовать вектор 1Ch.





Дата публикования: 2014-11-28; Прочитано: 551 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...