Вопрос № 34519: Добрый вечер эксперты. Я пользуюсь tasm, masm. Мне надо зделать бинарный код некой программы скомпилированной по адресу например 7с00h (org 7c00h). Но гогда я при помощи тасма прогбою скомпилировать этот код то получаю ошибку:
tasm egz.asm
...
Вопрос № 34.519
Добрый вечер эксперты. Я пользуюсь tasm, masm. Мне надо зделать бинарный код некой программы скомпилированной по адресу например 7с00h (org 7c00h). Но гогда я при помощи тасма прогбою скомпилировать этот код то получаю ошибку:
tasm egz.asm
tlink /t efz.obj
Turbo Link Version 3.0 Copyright (c) 1987, 1990 Borland International
Error: Cannot generate COM file : invalid initial entry point address
Может есть какая нибудь директива tlinkу чтоб он не обрашал на это внимания и компилировал со смещением 7с00h? Спасибо за ответ.
Приложение:
Отправлен: 01.02.2006, 01:20
Вопрос задал: OlegMA (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Seamanmur
Здравствуйте, OlegMA!
Давай разберемся. Тебе нужен чистый бинарник, или COM файл?
Ось загружая COM файл ищет для него свободное место. Инициализирует все сегментные регистры на это место. В первых 100h ячейках памяти располагается PSP программы. Код начинается с адреса 100h. Поэтому в COM файлах всегда пишут
org 100h
Проверить это ты можешь, посметрев файл .map, который произведет TLINK. Там видно, что сегмент кода у тебя начинается с адреса 0000h и имеет длину 7C0Eh.
В Тасме я не нашел, как сделать чистый бинарник :(.
Могу порекомендовать NASM. Он по умолчанию делает его.
Ответ отправил: Seamanmur (статус: 2-ой класс)
Отправлен: 01.02.2006, 09:31
Отвечает: EPDSota
--------- Открыть глаза навстречу солнцу
Ответ отправил: EPDSota (статус: Практикант)
Отправлен: 01.02.2006, 09:56