Шаг 34 - Из EXE в ASM

До этого момента мы с Вами получали код в машинных кодах из текста на ассемблере. Но есть целый класс программ, которые умеют делать наоборот. То есть брать программу в машинных кодах и получать из нее ASM код. Точно так же как это делает Turbo Debugger только записывая результат в файл. Одна из таких программ некогда очень популярных называется Sourcer. Вы можете взять ее из сопроводительного проекта. Давайте попробуем перевести программу, которую мы создали в прошлом шаге. Итак, запускаем sc.exe. Здесь нужно указать входное имя программы. Нажимаем I и пишем.

34_1.gif (8574 b)

Для начала процесса нужно нажать G. После нескольких проходов Вы получите сообщение:

34_2.gif (10251 b)

И файл LST в текущем каталоге:

34_3.gif (3723 b)

Но эта программа будет хорошо работать только с ПО созданным для процессора 286. Вот что она сделала для прошлого шага:

33		proc	far
  
3AEF:0000			start:
3AEF:0000  B8 3AF1		mov	ax,seg_b
3AEF:0003  8E D8		mov	ds,ax
3AEF:0005  8E C0		mov	es,ax
3AEF:0007  B8 0014		mov	ax,14h
3AEF:000A  B9 001E		mov	cx,1Eh
3AEF:000D  91		xchg	ax,cx
3AEF:000E  B4 4C		mov	ah,4Ch	; 'L'
3AEF:0010  B0 00		mov	al,0
3AEF:0012  CD 21		int	21h	; DOS Services  ah=function 4Ch
					;  terminate with al=return code

Вполне прилично, а точнее один к одному за исключением сегментов и данных.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 31.12.2001