C исходный код, компилятор Watcom и EMU8086
Как получить компилятор Watcom (разветвленная бета-версия 2.0, работающая на 64-разрядных хостах) для вывода исходного кода сборки 8086 в файл ASM? Запуск wcc -0 main.c из командной строки создает только файл OBJ.
Как примечание, моя основная задача - преобразовать исходный код C в код сборки, который я могу запустить с EMU8086 (вместо написания фактического кода сборки). Я надеюсь, что файл ASM, созданный Watcom, будет работать без изменений (copy-paste) в EMU8086.
1 ответ
Я не вижу способа заставить компилятор Watcom генерировать файл ASM напрямую, но вы должны иметь возможность использовать дизассемблер Watcom (wdis
) для генерации списка сборки из объектного файла, созданного компилятором. В этом случае вы бы запустить что-то вроде wdis -l main
читать main.obj
и создайте файл с именем main.lst
который содержит листинг на ассемблере.
Если вы перекомпилируете main.c с -d1
или же -d2
возможность поместить дополнительные данные отладки в файл main.obj, тогда вы можете использовать дизассемблер -s
возможность добавления списка языков ассемблера с комментариями, показывающими исходный источник Си из main.c
,
Чтобы дизассемблер пропустил описательные комментарии и просто дал простую разборку, которая должна быть приемлемой в качестве исходного файла для ассемблера Watcom, укажите -a
вариант с дизассемблером. Эта опция также приводит к записи вывода дизассемблера в main.asm
скорее, чем main.lst
, Извините, я понятия не имею, будет ли этот вывод напрямую потребляться EMU8086.
Все это обсуждается в Руководстве пользователя Open Watcom C / C++ и Руководстве пользователя C/C++ Tools, ссылки на которые размещены по http://www.openwatcom.com/doc.php.