CMP AL,32 ;Проверка на управл. символ
JL control_code ;если ДА, то на спец.процедуру
CMP AL,65 ;если символ не входит в набор
JL next ;пишущей машинки, то берем
CMP AL,123 ;следующий
JL next
;--- Обработка символа в AL
STOSB ;Запом. символ по адресу ES:DI
. . .
;--- Вывод символа на экран
. . .
JMP next ;Переход к следующему символу
;--- Анализ управляющих кодoв
control_code:
CMP AL,13 ;Код ASCII равен 13 ?
JNE tab ;если НЕТ, то след.проверка
CMP AH,28 ;Иначе проверяем скан-код <CR>
JNE c_m ;если НЕТ, то было CTRL-M
CALL carriage_ret ;Обработка возврата каретки
JMP next ;Переход к след. символу
c_m: CALL ctrl-m ;Обработка CTRL-M
JMP next
tab: CMP AL,9 ;Проверка на табуляцию
. . .
CMP AL,8
. . .
reject: JMP next ;Переход к след.символу
;--- Анализ расширенных кодов (2-й байт кода в AH)
extended_code:
CMP AH,71 ;Проверка нижней границы
JL reject ;если меньше, то след. символ
CMP AH,81 ;Проверка верхней границы
JL reject ;если больше, то след. символ
;--- AH содержит символ управления курсором, анализируем его:
CMP AH,72 ;"Курсор-вверх" ?
JE c_u ;если ДА, то на спец. процедуру
CMP AH,80 ;"Курсор-вниз" ?
JE c_d ;если ДА, то на спец. процедуру
. . .
c_u: CALL cursor_up
JMP next
c_d: CALL cursor_down
JMP next
. . .
Рисунок 5.2
Персональный компьютер, совместимый с IBM PC AT, работающий под управлением ОС MS-DOS.
Инструментальные программные средства пакета Turbo Assembler фирмы Borland: компилятор tasm.exe, компоновщик tlink.exe, отладчик td.exe.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.