Справочник по Ассемблеру


Ошибки при ассемблировании программы


  1. Tlink32.exe не компилирует файл, выдает ошибку:

    Fatal: 16 bit segments not supported in module prog.asm;

  2. Ассемблер не может найти файл 32RTM.EXE;
  3. LINK выдает: LINK : warning L4021: no stack segment
  4. Ассемблер выдает ошибку: **Error** prog4.asm(15) Near jump or call to different CS
  5. Сассемблированный файл не работает: компьютер виснет (программа работает не так, как надо: вместо выводимой строки - какие-то непонятные символы и пр.), хотя программу набрал верно (точь-в-точь, как в примере из книги)…

Tlink32.exe не компилирует файл, выдает ошибку:

Fatal: 16 bit segments not supported in module prog.asm

TASM32.EXE и TLINK32.EXE - ассемблер и компоновщик только для написания программ под ОС Windows! Для ассемблирования программ под ОС MS-DOS необходимы TASM.EXE и TLINK.EXE (я рекомендую MASM 6.11)

Ассемблер (TASM.EXE) не может найти файл 32RTM.EXE.

TASM 5.0 работает только под управлением ОС Windows. Если Windows у Вас нет, то придется искать TASM более старых версий (1.0 - 4.0), MASM до версии 5.10 включительно либо файл 32RTM.EXE

LINK выдает:

LINK : warning L4021: no stack segment

Данная надпись свидетельствует о том, что Вы забыли указать стек в *.EXE-файле. Если Вы написали программу типа *.COM, а ассемблируете ее как *.EXE, опуская необходимые параметры для *.COM-файла, то данная *.COM программа будет работать некорректно. Если Вы создаете *.EXE-файл, то просто игнорируйте эту надпись, либо создайте сегмент стека. Для получения *.COM-файла см. Приложение № 01(Ассемблирование)

Ассемблер (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-файл см. Приложение № 01(Ассемблирование)




- Начало -    - Вперед -



Книжный магазин