Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metodichka_lab__rab_spo.doc
Скачиваний:
14
Добавлен:
05.09.2020
Размер:
433.66 Кб
Скачать

2.2.21. Определение установленного оборудования

В одном из упражнений в начале работы просматривалось содержимое байтов с адресами 410Н и 411H, для определения оборудования, присутствующего в системе. BIOS содержит прерывание, INT 11H, помещающего соответствующую информацию в АХ. Введите команду А 100 в DEBUG и следующие инструкции:

INT 11 <Enter>

JMP 100 <Enter>, <Enter>

Введите R для просмотра регистров и первой инструкции. Эта инструкция, INT 11H, передает управление подпрограмме BIOS, помещающей данные об установленном оборудовании в АХ. Используйте команды Т для наблюдения за последовательным выполнением инструкций BIOS.

Инструкции, содержащиеся в BIOS вашего компьютера, могут отличаться от приведенных ниже – в зависимости от установленной марки и версии BIOS.

JMP EE53

PUSH DS ; Сохранить адрес из DS в стеке

M0V АХ,0040 ; Получить адрес сегмента,

MOV DS,АХ ; поместить его в DS

MOV АХ,[0010] ; Поместить данные из 40:10 в АХ

POP DS ; Восстановить адрес в DS из стека

IRET ; Вернуться в исходную программу

Последняя команда Т производит выход из BIOS и возвращает управление DEBUG. Если все выполнено правильно, АХ теперь содержит данные об установленном оборудовании. Введите Q для выхода или переходите к следующему примеру (установив IР в 0100Н).

2.2.22. Использование int для вывода на дисплей

Этот пример, выводящий данные на экран, вводит в употребление несколько новых возможностей. Введите в DEBUG команду А 100, а затем – следующие инструкции:

100 MOV АН,09 <Enter>

102 MOV DX,109 <Enter>

105 INT 21 <Enter>

107 JMP 100 <Enter>

109 DB ‘your name’, ‘$’ <Enter> <Enter>

Две инструкции MOV указывают INT 21H организовать вывод на экран (АН = 09Н) и с какого начального адреса (DX = 109). По смещению 109Н начинается строка, где DB означает "define byte" – "определить байт". Символы, подлежащие выводу, заключены в апострофы ('). За строкой, которую необходимо вывести, следует знак доллара ($), также заключенный в апострофы, указывающий INT на конец вывода.

Введите R для выполнения просмотра регистров и первой инструкции, две команды Т – для выполнения двух инструкций MOV, и Р – для выполнения INT 21Н, и на экране увидите строку, заключенную в апострофы. Введите Q для выхода или переходите к следующему примеру (установив IP в 0100Н).

2.2.23. Использование int для ввода с клавиатуры

Этот пример, воспринимающий символы с клавиатуры, также демонстрирует новые возможности. Введите команду DEBUG A 100 и следующие инструкции на Ассемблере:

100 MOV АН,10 <Enter>

102 INT 16 <Enter>

104 JMP 100 <Enter>, <Enter>

Первая инструкция, MOV, указывает код функции, 10Н, задающий использование INT 16H для ввода с клавиатуры. При выполнении инструкций обработчиком с клавиатуры считывается символ и помещается в регистр AL. Введите для просмотра регистров и следующей инструкции, и Т – для выполнения инструкции MOV. Затем введите Р для выполнения INT 16H, после чего система будет ожидать нажатия клавиши. Если вы нажмете клавишу 1, вы увидите, что в AL помещено число З1H(это ASCII-код цифры 1). Введите Т для выполнения инструкции JMP 100, затем еще раз Т – для выполнения MOV АН,10. Когда вы введете Р для выполнения INT 16H, система вновь будет ожидать нажатия клавиши. Если вы нажмете 2, то увидите, что в AL занесено значение 32Н. Можно продолжать ввод до бесконечности, следуя только что описанной процедуре. Введите Q для выхода или переходите к следующему примеру (установив IP в 0100Н).

Соседние файлы в предмете Системное программное обеспечение