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

         

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


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

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

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



    Содержание раздела