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.

Другие вопросы по тегам