Прочитал, но не нашел как же делать выходной формат .bin, а по умолчанию у меня .obj. Может TASM не поддерживает другие выходные форматы?
Единственное, что удалось сделать похожее на .bin так это .com. Вот, например, в NASM задаешь в командной строке ключ -fbin и пожалуйста получите бинарный файл. Я думал, что и в TASM есть что-то похожее, да как видно нет.
Может имелся ввиду не TASM, а TLINK ? Тогда надо просто задать принудительно расширение выходного файла.
ну это кому как больше нравится ) COM можно собрать с любой базой, правда при загрузке по смещению 0х100 будут проблемы) Ведь никто не мешает написать org 200h и собрать com. правда выполнять его нельзя будет) я имел в виду просто то, что формат у кома чистый бинарный.
Great AFAIK в TASM'е com собрать с базой отличающейся от 100h нельзя, т.к. линкер выдает "Invalid initial entry point address". Хотя, как обычно, могу ошибаться. Поэтому поправьте пожалуйста, если ошибаюсь.
Tasm это ассемблер - он создаёт объектные модули. Хочеш бинарник - используй линкер. Код (Text): tasm /m prog.asm tlink /t prog.obj, prog.bin Нужно линкеру ОБЯЗАТЕЛЬНО указывать формат выходного файла. Потому что по дефолту это .com, и начальный адрес должен быть 100h. При явном указании выходного файла с расширением отличным от .com линкер создаст этот файл с любым стартовым адресом.
Я это знаю, и, когда начинал тему, имел в виду не транслятор tasm.exe, а весь пакет TASM. А за подсказку на явное указание выходного файла компоновщику спасибо. Все действительно работает как надо.
его можно пропатчить на предмет raw-формата, а именно отрубить ряд проверок при создании .com-файла в tasm.exe и tlink.exe. Они не имеют каких-либо принципиальных ограничений для создания raw, исключительно проверки.
патчить все равно придется, т.к. не пройдет проверка на org>64K или размере>64K ==> Location counter overflow (как error, так и warning).