Проверка состояния регистра клавиатуры (клавиша Shift)



В области данных BIOS по адресу 417Н хранится первый байт состояния регистра клавиатуры. Убедитесь, что Num Lock и Caps Lock выключены, и просмотрите содержимое байта по этому адресу командой D 40:17.

Результат будет похож на

0040:0017 00 00 ...

Теперь включите Num Lock и Caps Lock и введите вновь команду D 40:17. Результат должен начинаться с 60 00.

Проверка состояния видеоустройства

В области данных BIOS по адресу 449Н находится первая область видеоданных (Video Data Area). Введите команду D 40:49. Первый показанный байт указывает на текущий видеорежим (например, 03 - цветной), а второй – число столбцов на экране (например, 50 означает режим с 80 столбцами). Число строк хранится по адресу 40:84Н.

Упражнение 2: Просмотр ROM BIOS

Сведения об авторском праве BIOS системы встроены в ROM BIOS no адресу FE00:0. В зависимости от производителя компьютера будут выведены различные строки, после которых будет указан семизначный серийный номер. Строка, указывающая на авторство BIOS, легко читается в виде ASCII-последовательности, а серийный номер – в виде шестнадцатеричного числа. Строка с указанием авторских прав может быть длиннее, чем показанный участок памяти; в этом случае для просмотра не показанной части снова введите D и нажмите <Enter>.

Проверка даты производства BIOS

Эта дата, записанная в виде мм/дд/гг, начинается с адреса FFFF5H. Для ее просмотра введите команду D FFFF:5. Знание этой даты полезно при определении возраста и модели компьютера.

Используя команду D, вы можете просмотреть содержимое любой области памяти. Можно также последовательно просматривать память, просто повторно вводя D – DEBUG будет выводить 128 байт, следующих за последними просмотренными.

Для завершения работы с DEBUG введите Q.

Упражнение 3: Использование непосредственных данных

Воспользуемся DEBUG для ввода первой из двух программ непосредственно в память и наблюдения за ее выполнением. Обе программы включают простые инструкции машинного языка в виде, в котором они находятся в памяти, и позволяют продемонстрировать эффект их выполнения. Выполнение упражнения начинается с команды Е (Enter, ввести).

Первая программа использует непосредственные данные - данные, определенные в теле инструкций. Далее показан как машинный код и соответствующий символьный код с комментариями для улучшения восприятия. Первой инструкции, В82301, соответствует символьный код MOV АХ,0123, заносящий (копирующий) значение 0123Н в регистр АХ (непосредственные данные записываются в прямой, с непереставленными байтами, форме). MOV – инструкция, АХ – ее первый операнд, непосредственное значение 0123Н – второй.

 

Машинная Символьный код      Пояснение

инструкция

 

В82301     MOV AX,0123 Переслать значение 012Зh в АХ

052500     ADD AX,0025 Прибавить значение О025h к АХ

8ВD8       MOV BX,AX Переслать содержимое АХ в ВХ

03D8       ADD BX,AX Прибавить содержимое АХ к ВХ

8BCB       MOV CX,BX Переслать содержимое BХ в CХ

2BС8       SUB CX,AX Вычесть содержимое AХ из СХ

2ВС0       SUB AX,AX Вычесть содержимое АХ из АХ (очистка АХ)

90         NOP       Нет операции

EBEE       JMP 100   Переход к началу программы.

 

Из примера видно, что машинные инструкции имеют длину 1, 2 или 3 байта. Первый байт указывает, собственно, операцию, а все последующие – ее операнды (непосредственные значения, ссылки на регистры или адреса в памяти). Исполнение программы начинается с первой машинной инструкции и последовательно проходит через все инструкции одну за другой.

Ввод инструкций программы

Для того чтобы ввести свою программу непосредственно в память, вводите только машинный код, символьный код и комментарии водить не нужно. Введите команду Е и следующие символы, как показано ниже.

Е CS:100 B8 23 01 05 25 00 (и нажмите <Enter>)

CS:100 указывает начальный адрес области, в которой будет храниться введенный код (обычный начальный адрес для машинного кода в программе DEBUG). Команда Е сохранит следующие за ней байты в адресах от CS:100 до CS:105.

Следующая команда Е сохранит еще 6 байт в адресах от CS:106 до CS:10B.

Е CS:106 8В D8 03 D8 8В СВ (нажмите <Enter>)

Последняя команда Е сохраните 6 байт в адресах от CS:10С до CS:111.

Е CS:10C 2В С8 2В С0 ЕВ ЕЕ (нажмите <Enter>)

Если вы введете неправильную строку, просто повторите ввод правильно.


Дата добавления: 2018-04-04; просмотров: 780; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!