Tasm не запускается на windows

Обновлено: 04.07.2024

Теперь о том как я подготовил свой комп для работы одновременно с TASM 5.0 и MASM 6.15.

У меня установлен Win XP. Берем архив TASM50.rar от сюда и разархивируем его таким образом, чтобы папка TASM, находящаяся внутри архива оказалась в корне диска C: (диск C: есть у всех, ну почти :) ). Если хотите поставить на другой диск, то вам придется изменить путь в батниках которые я приведу ниже. Затем скачиваем архив MASM615STDIRVIN.rar от туда же и разархивируем его таким образом, чтобы файлы находящиеся в папке MASM615STDIRVIN, так же оказалась в корне диска C: под в каталоге с именем MASM. В конечном итоге должно получится вот так:



Для удобной работы с обоими ассемблерами, необходимо установить соответствующие значения переменной PATH, а так же некоторых переменных окружения. Для этого создадим в корне диска C: папочку Scripts и прописываем путь к ней в переменной PATH WIN XP. В Scripts будем хранить наши батники, которые будут устанавливать необходимые нам значения, для корректной работы TASM и MASM.
У Windows XP есть одна особенность. Он устанавливает значения переменных окружения только для текущей сессии CMD.EXE (командной строки). И как только окно командной строки закрывается, все переменные сбрасываются. Но в принципе это и хорошо. Так как наши эксперименты ни как не затронут переменные окружения Win XP.
Скрипты (батники) надо будет запускать из тех папок в которых мы будем писать программы на ассемблере (я лично, использую FAR manager).
Итак ближе к скриптам. Создадим первый скрипт (в папке Scripts) с именем t.bat и с содержимым всего лишь с двумя строчками (пока):

path=c:\tasm\bin
start "TASM"

Таким образом, мы прописали путь до исполняемых файлов TASM. В будущем, конечно, могут понадобиться дополнительные переменные окружения, но их будем добавлять по мере необходимости.
Создаем батник с именем m.bat для MASM, так же с простым содержимым:

path=c:\masm\bin
start "MASM"

Если по ходу дела будут нужны другие переменные окружения, то будем добавлять их. И так в каталоге Scripts у нас должно получиться два файла: t.bat и m.bat .
Проверяем работу батников. Запускаем t.bat , на приглашение командной строки вводим команду tasm и жмем Enter. Должны получить вот это:


Затем запускаем m.bat. Даем команды masm и затем ml. Должны получить вот это:


Все! Для написания первых примеров этого достаточно.


Усе работает! Ура!
Пока не пытаемся особо понять прогу. Это все в будущем. Сейчас был просто тест правильной настройки компиляторов для изучения ассемблера.

Файл tasm32.exe из unknown Company является частью unknown Product. tasm32.exe, расположенный в e: \Program Files \Embarcadero \RAD Studio \7 .0 \bin \ с размером файла 188416.00 байт, версия файла Unknown version, подпись 25B3B024147804F0E7622F915E29873E.

  1. Запустите приложение Asmwsoft Pc Optimizer.
  2. Потом из главного окна выберите пункт "Clean Junk Files".
  3. Когда появится новое окно, нажмите на кнопку "start" и дождитесь окончания поиска.
  4. потом нажмите на кнопку "Select All".
  5. нажмите на кнопку "start cleaning".

Clean Registry to fix tasm32.exe has stopped working error

  1. Запустите приложение Asmwsoft Pc Optimizer.
  2. Потом из главного окна выберите пункт "Fix Registry problems".
  3. Нажмите на кнопку "select all" для проверки всех разделов реестра на наличие ошибок.
  4. 4. Нажмите на кнопку "Start" и подождите несколько минут в зависимости от размера файла реестра.
  5. После завершения поиска нажмите на кнопку "select all".
  6. Нажмите на кнопку "Fix selected".
    P.S. Вам может потребоваться повторно выполнить эти шаги.

3- Настройка Windows для исправления критических ошибок tasm32.exe:

Clean Registry to fix tasm32.exe has stopped working error

  1. Нажмите правой кнопкой мыши на «Мой компьютер» на рабочем столе и выберите пункт «Свойства».
  2. В меню слева выберите " Advanced system settings".
  3. В разделе «Быстродействие» нажмите на кнопку «Параметры».
  4. Нажмите на вкладку "data Execution prevention".
  5. Выберите опцию " Turn on DEP for all programs and services . " .
  6. Нажмите на кнопку "add" и выберите файл tasm32.exe, а затем нажмите на кнопку "open".
  7. Нажмите на кнопку "ok" и перезагрузите свой компьютер.
Как другие пользователи поступают с этим файлом?

Всего голосов ( 181 ), 115 говорят, что не будут удалять, а 66 говорят, что удалят его с компьютера.

'> Очень странная ошибка TASM/TLINK , Проблема при сборке программы

Собственно, сейчас я даже не могу точно сказать, ошибка ли это транслятора/линкера или это моя ошибка.

Некоторое время назад при разработке своей программы на ассемблере под DOS я столкнулся с одной очень серьезной проблемой. До конца мне ее решить тогда так и не удалось, сейчас же, когда я решил продолжить разработку своей программы, я снова столкнулся с этой проблемой, без решения которой программировать дальше просто невозможно.

Постараюсь описать суть возникшей проблемы.

Я делаю эмулятор ZX-Spectrum 48/128. Программа полностью на ассемблере, работает в защищенном режиме, использует свой собственный DOS-Extender. Работает только под чистым DOS (пока). До определенного момента все было хорошо.

При разработке использую TASM 5.0, TLINK 7.xx фирмы Borland
Программа большая, сложная и состоит из нескольких модулей, которые при сборке объединяются в один .exe файл.

В один прекрасный день, я запускаю свою программу, и она выдает мне ошибку общей защиты и вылетает в DOS.

Начинаю разбираться, в чем дело и что могло вызвать эту ошибку.

Обнаруживаю очень странную и непонятную вещь. В коде программы, как бы в совершенно произвольном месте (а именно по адресу возникновения ошибки защиты) нахожу некоторые странные последовательности байтов/команд, которых в исходном коде не было и не могло быть в принципе. Причем должен заметить, что эти команды совершенно бессмысленны.
На первый взгляд, это просто мусор, то, что вы увидите, открыв, например текстовый документ дизассемблером. Собственно эти команды и вызвали ошибку общей защиты, т.к они недопустимы (обращение по несуществующим адресам
памяти, - типа mov eax,[04f579fdh]; ret far; mov cs:[3453h],al и т.п)

Копаю дальше и глубже. Оказывается, что в объектном модуле *.obj такого нет и что это появляется только при сборке программы линкером TLINK.

Т.е программа-компоновщик TLINK при сборке .exe файла из модулей портит .exe файл.

Известно, что при сборке компоновщик TLINK настраивает адреса всех переменных в программе. Судя по всему, этот “мусор” является результатом этой настройки, по какой-либо причине попавшей “не туда”. И еще. В начале каждого файла есть таблица перемещаемых символов (Relocation Table).
Сейчас я не уверен точно, но по-моему при запуске программы часть адресов из таблицы перемещаемых символов (Relocation Table) тоже попадала на код программы, т.е не туда.

Я перепробовал все версии TASM/TLINK под DOS от Borland, а также MASM/LINK от дяди Билла.
Попробовал все возможные опции командной строки TASM/TLINK.

Ошибка не исчезла.
Тогда этот глюк удалось “решить” следующим способом:

В определенных местах исходного кода я расставил следующие директивы:

db 100h dup (90h)

или db 1700h dup (90h)

в общем, примерно директивы такого типа и с такими значениями.

После этого ошибка исчезла на время. При достижении же программой определенного размера этот глюк опять проявился, но теперь этим достаточно глупым способом мне не удалось обойти его.

Что это такое, что это за глюк да и глюк ли это вообще? Или это я так криво скомпоновал программу, что вылезла вот такая ошибка? Сталкивался ли кто с этим? Как решить эту проблему.

Возможно, что все просто, и я чего-то не понимаю.

(забыл сказать - ни TASM ни TLINK никаких явных ошибок не выдают )

Первая программа на ассемблере.

Ещё мы знаем, что в указанном формате пишутся резидентные программы, драйверы и вирусы.

Для достижения нашей цели делаем следующее.

  • Скачиваем с нашего сайта архив (DOS-1.rar) с предустановленными DOSBox и программами. Запускаем DOSBox. Стартует эмулятор MS-DOS и Norton Commander пятой версии.
  • В папке D:\TASM.2_0\TASM\ находим текстовый файл PRG.ASM. Это обычный текстовый файл, который можно создать
    с помощью любого текстового редактора, с расширением ASM вместо TXT.
  • В файл вносим код:
;Строка, после точки с запятой является комментарием org 100h ; начальное значение смещения программы в памяти - 100h int 21h ; вызов т.н. "прерывания" - системной функции DOS message db "Hello, World!" , 0Dh , 0Ah , '$' ; строка для вывода

Чтобы посмотреть список всех возможных параметров с пояснениями для файлов tasm.exe и tlink.exe необходимо запустить эти программы без параметров. Если вы сделаете это, не выходя из оболочки NC, то, чтобы просмотреть чистое окно DOS нажмите Ctrl+O, чтобы вернуться в NC, нажмите сочетание клавиш повторно.

Батник COMPLEX.BAT предназначен для создания исполняемых файлов из двух файлов кода (названия обязательно должны быть prg.asm, prg1.asm).

Наша первая программа на ассемблере прекрасно работает!

Выше мы рассмотрели стандартный подход к программированию на TASM в системе MS-DOS. Указанным алгоритмом создания программ можно пользоваться и далее.

Можете попробывать TASMED в папке D:\UTILS\TASMED\. Программа уже настроена и готова к использованию.

Первая программа на ассемблере.

Первая программа на ассемблере в среде разработки TASMED.

  • подсветка ассемблерного синтаксиса;
  • возможность сохранения проектов под любым именем и в любой директории;
  • работа как с TASM, так и MASM.

Практические советы: группирование проектов, русский язык в MS-DOS.

Для того, чтобы в исходниках, которые вы будете просматривать в системе MS-DOS с использованием текстовых редакторов DOS и различных сред разработок нормально отображалась кириллица (например в комментариях к строкам кода) необходимо проделать следующие действия.

Конечно вопрос снимается сам собой, если комментарии писать на английском.

Читайте также: