АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Лабораторная работа № 2. ”Исследование процесса вывода ASCII-кодов на экран монитора ПЭВМ”

Читайте также:
  1. A. Самостоятельная работа.
  2. AKM Работа с цепочками событий
  3. File — единственный объект в java.io, который работает непосредственно с дисковыми файлами.
  4. III. ВЛИЯНИЕ ФАКТОРОВ РАБОЧЕЙ СРЕДЫ НА СОСТОЯНИЕ ЗДОРОВЬЯ РАБОТАЮЩИХ.
  5. III. Третий этап – Работа банка с кредитной заявкой клиента с целью оценки его кредитоспособности.
  6. IV. Практическая работа
  7. S:Статистические методы анализа качества разработаны как
  8. VI. Работа сновидения
  9. VIII. Работа над задачей
  10. А) Работа сгущения.
  11. Административная контрольная работа по дисциплине
  12. АУДИТОР, РАБОТАЮЩИЙ САМОСТОЯТЕЛЬНО

”Исследование процесса вывода ASCII-кодов на экран монитора ПЭВМ”.

На примере первой ассемблерной программы мы познакомились с одним из способов вывода текста на экран, а именно – вызовом функции DOS 09h. Это далеко не единственный способ вывода текста – DOS представляет для этого ещё несколько функций.

Функция DOS 02h: Записать символ в STDOUT (стандартное устройство вывода, в данном случае - экран) с проверкой на Ctrl – Break.

Вход: ah=02h

dl=ASCII – код символа

Выход: al=код последнего записанного символа (равен dl, кроме случая, когда dl=09h (табуляция), тогда в al возвращается 20h.

Данная функция обрабатывает некоторые управляющие символы: BEL (07h) – появляется звуковой сигнал, BS (08h) – курсор перемещается влево на одну позицию, HT (09h) – используется для замены на несколько пробелов. Назначение символов LF (0ah) и CR (0dh) было описано выше.

Если в ходе работы этой функции была нажата комбинация клавиш Ctrl – Break или Ctrl - C, вызывается прерывание 23h, которое по умолчанию осуществляет выход из программы.

Таким образом, используя подфункцию 02h и прерывание 21h, необходимо составить программу, которая выводит на экран все ASCII – символы, начиная с символа восклицательный знак (!) и заканчивая символом DEL – забой, то есть необходимо вывести 95 символов. Первый отмеченный символ имеет код 21h. Следовательно, этот код перед выводом следует загрузить в регистр dl и вызвать прерывание 21h. Каждый последующий выводимый на экран символ имеет код на единицу больший, чем предыдущий, то есть код кавычек (") будет 21h, код символа (#) будет 22h и.т.д. Последний выводимый код забоя будет иметь значение 7fh. Из сказанного следует, что для получения последующего кода из предыдущего можно воспользоваться командой inc dl, используемой в теле цикла, который необходимо организовать в программе для вывода отмеченных выше 95 символов на экран монитора. Между выводимыми символами предусмотреть вывод пробелов, имеющих код 20h. Отметим, что перед выводом пробела готовый к выводу очередной код символа в регистре dl следует поместить в стек командой push dx, то есть временно его сохранить, а после формирования пpобела на экране, восстановить его в регистре командой pop dx. Для организации циклического участка программы используйте регистр cx и команду loop метка. В начале выполнения программы предусмотрите вывод на экран сообщения 'OUT ASCII-CODE ON MONITOR', затем, пропустив одну строку, выводите сами символы. В конце программы также сформируйте временную задержку для наблюдения результатов работы Вашей программы.

В заключение отметим, что для вывода информации на экран в текстовом режиме могут использоваться и другие функции DOS,такие как 06h, 09h, 40h, а также средства BIOS, подробно рассмотренные в [2].

 

Контрольные вопросы

 

1.Какая информация может располагаться в сегменте данных?

2.Как должен начинаться и заканчиваться кодовый сегмент программы?

3.Какие ASCII – коды используются в программе для вывода информации на экран с новой строки?

4.Какое прерывание и какая функция DOS используются для вывода строки символов на экран?

5.Для каких целей используется функция DOS – 02h?

6.Для каких целей служит оператор offset?

17.Что означает символ $, стоящий в конце строки подлежащей выводу на STDOUT?

18.Как программным способом можно организовать временную задержку?


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)