Команда для boch, которая пропускает команду «call», «jmp» или «int»

#bochs

#boch

Вопрос:

Я использую boch в качестве отладчика. Я использую команду «s» для пошагового выполнения своего кода. Однако моя проблема заключается в том, что всякий раз, когда приходит команда «int», она начинает выполнять пошаговое выполнение кода BIOS. Есть ли команда, которую я могу ввести, чтобы заставить ее пропустить весь код BIOS и вернуться к моему коду?

Ответ №1:

Я подписался на список рассылки bochs и отправил электронное письмо с моим вопросом. В электронном письме я получил ответ, что я должен использовать команду «b» для установки точки останова после инструкции «int», например:

 b <address>
 

И затем я должен использовать команду «c» для продолжения до точки останова.

Теперь, чтобы выяснить, каков адрес инструкции после инструкции «int», я разобрал свой код с помощью ndisasm и нашел инструкцию после инструкции «int»:

 0000000A  B40E              mov ah,0xe
 

Затем я взял 0000000A , добавил 0x7C00 к ней (потому что загрузочный файл загружается в память, начиная с 0x7C00 ), и именно там я установил свою точку останова.