Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Дата ROM BIOS
Дата ROM BIOS в формате mm/dd/yy находится по шест. адресу FFFF5. Введите D FFFF:05 (и нажмите Enter) Знание этой информации (даты) иногда бывает полезным для определения модели и возраста компьютера. Теперь, поскольку вы знаете, как пользоваться командой D (Display), можно устанавливать адрес любой ячейки памяти для просмотра содержимого. Можно также пролистывать память, периодически нажимая клавишу D, — DEBUG выведет на экран адреса, следующие за последней командой. Для окончания работы и выхода из отладчика в DOS введите команду Q (Quit). Рассмотрим теперь использование отладчика DEBUG для непосредственного ввода программ в память и трассировки их выполнения. Машинные команды имеют различную длину: один, два или три байта. Машинные команды находятся в памяти непосредственно друг за другом. Выполнение программы начинается с первой команды и далее последовательно выполняются остальные. Можно ввести программу непосредственно в память машины и выполнить ее покомандно. В тоже время можно просматривать cодержимое регистров после выполнения каждой команды. После загрузки DEBUG на экране высвечивается приглашение к вводу команд в виде дефиса. Для непосредственного ввода программы на машинном языке введите следующую команду, включая пробелы: E CS:100 B8 23 01 05 25 00 (нажмите Enter) Команда E обозначает Enter (ввод). CS:100 определяет адрес памяти, куда будут вводиться команды, — шест.100 (256) байт от начала сегмента кодов. (Обычный стартовый адрес для машинных кодов в отладчике DEBUG). Команда E записывает каждую пару шестнадцатеричных цифр в память в виде байта, начиная с адреса CS:100 до адреса CS:105. Следующая команда Enter: E CS:106 8B D8 03 D8 8B CB (Enter) вводит шесть байтов в ячейки, начиная с адреса CS:106 и далее в 107, 108, 109, 10A и 10B. Последняя команда Enter: E CS:10C 2B C8 2B C0 90 CB (Enter) вводит шесть байтов, начиная с CS:10C в 10D, 10E, 10F, 110 и 111. Проверьте правильность ввода значений. В случае, если есть ошибки, то следует повторить команды, которые были введены неправильно. Теперь осталось самое простое — выполнить эти команды. Введите команду R для просмотра содержимого регистров и флагов. В данный момент отладчик покажет содержимое регистров в шест. формате, например, AX=0000, BX=0000,... Содержимое регистра IP (указатель команд) выводится в виде IP=0100, показывая что выполняемая команда находится на смещении 100 байт от начала сегмента кодов. Регистр флагов показывает следующие значения флагов: NV UP DI PL NZ NA PO NC Данные значения соответствуют: u NV — нет переполнения u UP — правое направление u DI — прерывания запрещены u PL — знак плюс u NZ — не ноль u NA — нет внешнего переноса u PO — контроль на честность u NC — нет переноса. Команда R показывает также по смещению 0100 первую выполняемую машинную команду. MOV AX,0123 — ассемблерный мнемонический код, соответствующий введенной машинной команде. Это есть результат операции дизассемблирования, которую обеспечивает отладчик для более простого понимания машинных команд. Рассматриваемая в данном случае команда обозначает пересылку непосредственного значения в регистр AX. В данный момент команда MOV еще не выполнена. Для ее выполнения нажмите клавишу T (для трассировки) и клавишу Enter. В результате команда MOV будет выполнена и отладчик выдаст на экран содержимое регистров, флаги, а также следующую на очереди команду. Заметим, что регистр AX теперь содержит 0123. Машинная команда пересылки в регистр AX имеет код B8 и за этим кодом следует непосредственные данные 2301. В ходе выполнения команда B8 пересылает значение 23 в младшую часть регистра AX, то есть, однобайтовый регистр AL, а значение 01 — в старшую часть регистра AX, то есть, в регистр AH: AX: | 01 | 23 | Содержимое регистра IP:0103 показывает адрес следующей выполняемой команды в сегменте кодов: 13C6:0103 052500 ADD AX,0025 Для выполнения данной команды снова введите T. Команда прибавит 25 к младшей (AL) части регистра AX и 00 к старшей (AH) части регистра AX, то есть, прибавит 0025 к регистру AX. Теперь регистр AX содержит 0148, а регистр IP 0106 — адрес cледующей команды для выполнения. Введите снова команду T. Следующая машинная команда пересылает содержимое регистра AX в регистр BX и после ее выполнения в регистре BX будет содержаться значение 0148. Регистр AX сохраняeт прежнее значение 0148, поскольку команда MOV только копиpует данные из одного места в другое. Теперь вводите команду T для пошагового выполнения каждой оставшейся в программе команды. Следующая команда прибавит cодержимое регистра AX к содержимому регистра BX, в последнем получим 0290. Затем программа скопирует содержимое pегистра BX в CX, вычтет AX из CX, и вычтет AX из него самого. После этой последней команды, флаг нуля изменит свое состояние c NZ (не нуль) на ZR (нуль), так как результатом этой команды является нуль (вычитание AX из самого себя очищает этот регистр в 0). Можно ввести T для выполнения последних команд NOP и RET, но это мы сделаем позже. Для просмотра программы в машинных кодах в сегменте кодов введите D для дампа: D CS:100 В результате отладчик выдаст на каждую строку экрана по 16 байт данных в шест. представлении (32 шест. цифры) и в символьном представлении в коде ASCII (один символ на каждую пару шест. цифр). Представление машинного кода в символах ASCII не имеет смысла и может быть игнорировано. Первая строка дампа начинается с 00 и представляет содержимое ячеек от CS:100 до CS:10F. Вторая строка представляет cодержимое ячеек от CS:110 до CS:11F. Несмотря на то, что ваша программа заканчивается по адресу CS:111, команда Dump aвтоматически выдаст на восьми строках экрана дамп с адреса CS:100 до адреса CS:170. При необходимости повторить выполнение этих команд сбросьте содержимое регистра IP и повторите трассировку снова. Введите R IP, введите 100, а затем необходимое число команд T. После каждой команды нажимайте клавишу Enter. Для завершения работы с программой DEBUG введите Q (Quit — выход). В результате произойдет возврат в DOS и на экране появится приглашение A> или C>. В случае, если печатался протокол работы с отладчиком, то для прекращения печати cнова нажмите Ctrl/PrtSc. Date: 2015-05-22; view: 486; Нарушение авторских прав |