До этого момента мы с Вами получали код в машинных кодах из текста на ассемблере. Но есть целый класс программ, которые умеют делать наоборот. То есть брать программу в машинных кодах и получать из нее ASM код. Точно так же как это делает Turbo Debugger только записывая результат в файл. Одна из таких программ некогда очень популярных называется Sourcer. Вы можете взять ее из сопроводительного проекта. Давайте попробуем перевести программу, которую мы создали в прошлом шаге. Итак, запускаем sc.exe. Здесь нужно указать входное имя программы. Нажимаем I и пишем.
Для начала процесса нужно нажать G. После нескольких проходов Вы получите сообщение:
И файл LST в текущем каталоге:
Но эта программа будет хорошо работать только с ПО созданным для процессора 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
Вполне прилично, а точнее один к одному за исключением сегментов и данных.