Приложение 2
Типичные ошибки при ассемблировании программы
Tlink32.exe не компилирует файл, выдает ошибку:
Fatal: 16 bit segments not supported in module prog.asm
TASM32.EXE и TLINK32.EXE — ассемблер и компоновщик только для программ, написанных под ОС Windows!
Для наших примеров на данном этапе необходимы TASM.EXE и TLINK.EXE (я рекомендую MASM 6.11—6.13).
LINK при компилации выдает:
LINK : warning L4021: no stack segment
Однако файл с раширением exe создается.
Данное сообщение свидетельствует о том, что вы забыли указать стек в EXE-файле. Если вы написали программу типа COM, а ассемблируете ее как EXE, опуская необходимые параметры для COM-файла, то данная COM-программа будет работать некорректно.
Если вы создаете EXE-файл, то просто игнорируйте это сообщение, либо создайте сегмент стека.
Обратите внимание, что в настоящей книге рассматриваются в большинстве своем программы типа COM. Как получить COM-файл сказано в приложении 1.
Ассемблер (TASM) выдает ошибку:
**Error** prog4.asm(15) Near jump or call to different CS
Поместите в вашу программу после строки CSEG segment следующее:
ASSUME CS:CSEG, DS:CSEG, ES:CSEG, SS:CSEG
Сассемблированный файл не работает: компьютер виснет (программа работает не так, как надо: вместо выводимой строки — какие-то непонятные символы и пр.), хотя программа набрана верно (точь-в-точь, как в примере из книги).
Проблема, вероятно, в том, что вы написали COM-файл, а ассемблируете его, как EXE. Как правильно сассемблировать COM-файл сказано в приложении 1.