Здравствуйте, товарищи-программисты!
У меня глупый (для вашего lvl) вопрос:
Использование плоского ассемблера и его отладка с помощью ollydbg (v2.00.01) em >
У меня есть следующий код:
format PE
org 100h
start:
mov eax, 0 ; clear entire register
mov edx, 0 ; clear entire register
mov ah, 02h ; define control character
mov dl, 'A' ; character it needs to print to "standart output" (?)
int 21h ; interruption service call
hlt
Итак, с приведенным выше кодом у меня две проблемы:
- OllyDbg сообщает «Нарушение прав доступа» при чтении [FFFFFFFF], когда речь идет о линии с вызовом службы прерывания.
- Я переписал приведенный выше код, используя управляющий символ
mov ah, 05h
. По-прежнему возникает ошибка из-за 1-го пункта.
Было бы любезно с вашей стороны помочь мне решить эти два требования:
- Понимание разницы между стандартным выводом и принтером по умолчанию.
- Запись одного символа в console (?) без использования регистра
ds
(и любых ранее определенных данных).
Большое спасибо всем, кто отвечает!
Решено ...
Как выяснилось, вы не можете использовать прямой звонок служб DOS из исполняемого файла Win32.
format PE
), вы собираете ее в исполняемый файл Win32. Из такого исполняемого файла невозможно вызвать службы DOS. - person fuz   schedule 28.02.2021