Читайте также:
|
|
Отладчик Debug. Справочная информация
Сохранение программы из отладчика DEBUG
Можно использовать DEBUG для сохранения программ на диске в следующих случаях:
a) После загрузки программы в память машины и ее модификации необходимо сохранить измененный вариант. Для этого следует:
· загрузить программу по ее имени: DEBUG n:имя файла [Return]
· просмотреть программу с помощью команды D и ввести изменения по команде E,
· записать измененную программу: W [Return]
b) Необходимо с помощью DEBUG написать небольшую по объему программу и cохранить ее на диске. Для этого следует:
· вызвать отладчик DEBUG
· с помощью команд A (assemble) и E (enter) написать программу
· присвоить программе имя: N имя файла.COM [Return]. (Тип программы должен быть COM)
· так как только программист знает, где действительно кончается его программа, указать отладчику длину программы в байтах. (Для расчета длины программы необходимо от конечного смещения вычесть смещение первой команды, например: 010B-0100=000B)
· запросить регистр CX командой: R CX [Return] (отладчик выдаст на этот запрос CX 0000 (нулевое значение)
· указать длину программы (например, 000B)
· записать измененную программу: W [Return]
В обоих случаях DEBUG выдает сообщение "Writing nnnn bytes." (Запись nnnn байтов). Если nnnn равно 0, то произошла ошибка при вводе длины программы, и необходимо повторить запись снова.
Некоторые значения флагов регистра флагов:
NV нет переполнения
UP правое направление
DI прерывания запрещены
PL знак плюс
NZ не ноль
NA нет внешнего переноса
PO контроль на честность
NC нет переноса
ПРОСМОТР ЯЧЕЕК ПАМЯТИ
1. Р а з м е р п а м я т и. Сначала проверим размер доступной для работы памяти. В зависимости от модели компьютера это значение связано с установкой внутренних переключателей и может быть меньше, чем реально существует. Данное значение находится в ячейках памяти 413h и 414h и его можно просмотреть из DEBUG по адресу, состоящему из двух частей: 400h - это адрес сегмента, который записывается как 40 (последний нуль подразумевается) и 13 - это смещение от начала сегмента. Таким образом, можно ввести следующий запрос:
D 40:13 (и нажать <Enter>)
Первые два байта, появившиеся в результате на экране, содержат размер памяти в Kb и в шестнадцатеричном представлении, причем байты располагаются в обратной последовательности.
Несколько следующих примеров показывают шест. обратное, шест. нормальное и десятичные представления.
Шест. обратн | Шест. норм | Десятичн. (Кb) |
2. С е р и й н ы й н о м е р. Серийный номер компьютера "зашит" в ROM по адресу FE000. Чтобы увидеть его, следует ввести:
D FE00:0 (и нажать <Enter>)
В результате на экране появится семизначный номер компьютера и дата копирайт.
3. Д а т а ROM BIOS. Дата ROM BIOS в формате mm/dd/yy находится по адресу FFFF5. Введите D FFFF:05 (и нажмите <Enter>). З нание этой информации (даты) иногда бывает полезным для определения модели и возраста компьютера.
Используя команду D (Display), можно устанавливать адрес любой ячейки памяти для просмотра содержимого. Можно также пролистывать память, периодически нажимая клавишу D, - DEBUG выведет на экран адреса, следующие за последней командой.
Для окончания работы и выхода из отладчика в OS введите команду Q(Quit).
ПРИМЕР МАШИННЫХ КОДОВ: НЕПОСРЕДСТВЕННЫЕ ДАННЫЕ
Дата добавления: 2015-11-13; просмотров: 113 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Протокол событий, функция OutputDebugString | | | Использование отладчика DEBUG для непосредственного ввода программ в память и трассировки их выполнения. |