Я задал вопрос об ассемблере здесь . У меня сложилось впечатление, что сложно использовать 16-битные программы. Так что теперь я хочу изменить его на 32 бит. Вот код первой программы, которую я пробовал:
[org 0x0100]
mov ax, 5
mov bx, 10
add ax, bx
mov bx, 15
add ax, bx
mov ax, 0x4c00
int 0x21
Я назвал его ex01.asm. Я использовал NASM для создания COM-файла. Команда была
nasm ex01.asm -o ex01.com -l ex01.lst
Но я не могу использовать созданный COM-файл в Ollydbg. Так что, если я хочу изменить эту программу для работы в win xp или win 7, чтобы я мог использовать Ollydbg, какие изменения мне нужно сделать и почему?
Мои мысли:
Я думаю, что я должен изменить ORG 0x100. Это специфично для COM-файлов, я думаю. Итак, я хочу знать, какие изменения я должен сделать здесь? COM-файл не работает на win XP и win 7? Могу ли я сделать EXE-файл вместо COM-файла? Я просто хочу понять эту процедуру.
Мне нужно изменить вторую последнюю строку, потому что она используется, чтобы сообщить DOS, что программа завершена. Какие изменения я должен сделать здесь и почему?
Я забыл, почему используется последняя строка? Кто-нибудь может сказать мне, и если потребуется замена для этого?