Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
ПЛАН
По дисциплине: Специализированные языки программирования
Тема занятия: Вывод на экран с помощью DOS
Цель занятия: научиться выводить текст на экран используя различные функции операционной системы
Количество часов: 2
Содержание работы:
Написать программу, выводящую на экран все символы ASCII-кодов, 16 строк по 16 символов в строке. Выводимые символы должны быть расположенные по центру экрана, между символами вставить символ «пробел» (код 20 h) (разрешение экрана 80 символов*25 строк т.е. начать вывод с 4 строки и 25 позиции в строке). Для вывода на экран использовать средства DOS. Символы с кодами 07h, 08h, 09h, 10h, 13h (управляющие символы) при выводе на экран заменить на символ «пробел».
┌─────────────────────────────────┐
│ ☺ ☻ ♥ ♦ ♣ ♠ • ◘ ○ ◙ ♂ ♀ ♪ ♫ ☼ │
│ ► ◄ ↕ ‼ ¶ § ▬ ↨ ↑ ↓ → ← ∟ ↔ ▲ ▼ │
│ ! " # $ % & ' ( ) * + , - . / │
│ 0 1 2 3 4 5 6 7 8 9 : ; < = > ? │
│ @ A B C D E F G H I J K L M N O │
│ P Q R S T U V W X Y Z [ \ ] ^ _ │
│ ` a b c d e f g h i j k l m n o │
│ p q r s t u v w x y z { | } ~ ⌂ │
│ А Б В Г Д Е Ж З И Й К Л М Н О П │
│ Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я │
│ а б в г д е ж з и й к л м н о п │
│ ░ ▒ ▓ │ ┤ ╡ ╢ ╖ ╕ ╣ ║ ╗ ╝ ╜ ╛ ┐ │
│ └ ┴ ┬ ├ ─ ┼ ╞ ╟ ╚ ╔ ╩ ╦ ╠ ═ ╬ ╧ │
│ ╨ ╤ ╥ ╙ ╘ ╒ ╓ ╫ ╪ ┘ ┌ █ ▄ ▌ ▐ ▀ │
│ р с т у ф х ц ч ш щ ъ ы ь э ю я │
│ Ё ё Є є Ї ї Ў ў ° ∙ · √ № ¤ ■ │
└─────────────────────────────────┘
Дополнительная информация
Функции DOS вызываются при помощи прерывания Int 21h.
Функция DOS 02h: Записать символ в STDOUT с проверкой на Ctrl-Break.
Вход: АН = 02h DL = ASCII-код символа
Выход: Никакого, согласно документации, но на самом деле: AL = код последнего записанного символа (равен DL, кроме случая, когда DL = 09h (табуляция), тогда в AL возвращается 20h).
Данная функция обрабатывает некоторые управляющие символы: при выводе символа BEL (07h) появляется звуковой сигнал, посредством BS (08h) курсор перемещается влево на одну позицию, символ НТ (09h) используется для замены на несколько пробелов, символ LF (0Ah) - для перевода курсора на одну позицию вниз, a CR (0Dh) - для перехода на начало текущей строки.
Если в ходе работы этой функции была нажата комбинация клавиш Ctrl-Break, вызывается прерывание 23h, которое по умолчанию осуществляет выход из программы.
Функция DOS 06h: Записать символ в STDOUT без проверки на Ctrl-Break
Вход: АН = 06h DL = ASCII-код символа (кроме 0FFh)
Выход: Никакого, согласно документации, но на самом деле: AL = код записанного символа (копия DL).
Эта функция не обрабатывает управляющие символы (CR, LF, HT и BS выполняют свои функции при выводе на экран, но сохраняются при перенаправлении вывода в файл) и не проверяет нажатие Ctrl-Break.
Функция DOS 09h. Записать строку в STDOUT с проверкой на Ctrl-Break
Вход: АН = 09h DS:DX = адрес строки, заканчивающейся символом $ (24h)
Выход: Никакого, согласно документации, но на самом деле: AL = 24h (код последнего символа)
Действие этой функции полностью аналогично действию функции 02h, но выводится не один символ, а целая строка.
INT 29h: Быстрый вывод символа на экран
Вход: AL = ASCII-код символа
В большинстве случаев INT 29h немедленно вызывает функцию BIOS «вывод символа на экран в режиме телетайпа», поэтому никаких преимуществ, кроме экономии байтов при написании как можно более коротких программ, она не имеет.