Вы здесь: HomeУрокиУрок 3. Отладчик ассемблера

Урок 3. Отладчик ассемблера

На сегодняшнем нашем уроке мы поговорим о том как можно следить за ходом выполнения программы и за состоянием регистров процессора и всех его флагов состояния. Так же нам понадобиться программа debug.com - она входит в состав dos а также и в windows с ее помощью мы все это и будем делать. 

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

отладчик ассемблера

Рассмотрим команду которая просматривает память, она принимает адрес + смещение (процессор в реальном режиме имеет шину адреса в 20бит и соответственно может адресовать память 220= 1048576 байт = 1 мегабайт.) Для того чтоб использовать всю шину данных процессор складывает регистр данных и смещение в итоге получаем реальный адрес. К примеру если сегмент данных равен 45f0h а смещение 0032h то реальный адрес к которому мы обратимся будет  04622h. Исходя и этого команда которая показывает участок памяти принимает адрес+смещение к примеру мы хотим посмотреть память по адресу FE000h(кстати по этому адресу находиться серийный номер компьютера) для этого нам нужно ввести в отладчик команду D fe00:0 и нажать Enter.  Мы видим что все данные делятся на три части первая это номер строки памяти, вторая часть данные в шестнадцатеричном формате и третья часть это данные представлены в виде ascii символов. Все вводимые числа отладчик принимает как шестнадцатеричные. 

 

Для того чтоб узнать дату ROM BIOS которая в формате mm/dd/yy просто посмотрите адрес памяти FFFF5h (D ffff:5). У Вас должно появится примерно такое как на рисунке выше.

Также отладчик  позволяет вводит ассемблер код с помощью команды А. Введите ее и нажмите enter и у вас появиться возможность вводить команды к примеру давайте введем такую команду :

mov al,25
mov bl,32
add al,bl
ret

И в конце просто вводим пустую строку и мы выходим из режима ввода команд. Как я думаю Вы заметили что мы использовали команду ADD которую ранее не использовалась в предыдущих уроках, эта команда складывает два регистра, либо части регистров. В данном случае мы сложил две младшие части регистра ax и bx, результат будет в al. Для того чтоб выполнить каждый шаг программы(протестировать) введите t и смотрите за изменениями регистров. 

 

Также отладчик ассемблера позволяет нам с помощью команды u просмотреть код программы или введенного нами кода, либо части кода. как это мы видим на рисунке ниже.

 Если Вы желаете сохранить введенный код в исполняемый файл то для этого нужно с помощью команды N присвоит имя файла а также его расширение, затем в регистре cx (для это вводим R CX и меняем на нужное значение) указать отладчику размер программ(в нашем случае 7 байт) а затем сохранит с помощью команды W. И затем можно ввести команду q для выхода из отладчика.

 Для того чтоб открыт файл для отладки в отладчике ассемблера и сделать тестирование ассемблер кода нужно указать в качестве параметров полное имя файла. К примеру мы сохранили файл в примеры выше с именем name.com для это вводим в консоли debug name.com . Теперь можно с помощью команды u просмотреть код или с помощью R посмотреть состояние регистров процессора а также первую ассемблер команду которую будет выполнятся при трассировке. Также можно не трассировать все команды подряд а пропустить это и перейти к нужной нам команде, к примеру мы хотим оказаться на конце программы и сразу увидеть результат сложения регистров al и bl для это воспользуемся командой g и укажем ей адрес где хотим оказаться к. в нашем случае это будет выглядеть так:

 

На этом наш урок по отладчику окончен. Желаю Вам успехов в программировании. Можете приступить к следующим темам на странице  ассемблер уроки .

Добавить комментарий


Защитный код
Обновить