Я хочу использовать компилятор TASM, т.к. именно его мы используем в учебной лаборатории вуз'а. Я скачал этот компилятор с сайта http://vas-unn.narod.ru там 4 файла: TASM.EXE TASM32.EXE TLINK.EXE TLINK32.EXE DOS я загружаю с загрузочной дискеты, сделанной с помощью Мой компьютер -> Диск А -> Форматировать... -> Соэдание загрузочного диска MS-DOS. В Windows XP вставляю дискету и перезагружаюсь. Norton Commander установлен. Файлы ASM и BAT созданы. Вопрос: как мне 'привязать' мой BAT - файл к TASM'у? TASM.EXE у меня в одной папке, ASM - в другой. А вообще они должны быть в одной папке или нет? И как однозадачный DOS сможет одновременно выполнить 2 программы - NORTON COMMANDER и TASM?
ты имел ввиду это?? Код (Text): @echo off C:\masm32\bin\ml.exe /c /coff /Gz C:\masm32\WORK\tControl\prop.asm pause @echo off C:\masm32\bin\rc.exe C:\masm32\work\tControl\prop.rc pause @echo off C:\masm32\bin\link.exe /debug /subsystem:windows /pdb:prop.pdb C:\masm32\WORK\tControl\prop.obj C:\masm32\WORK\tControl\prop.res pause
В DOS есть резиденты и он не такой однозадачный как кажется Не ясно конечно что он имел ввиду, но я понял по жругому... Я так понял что надо чтоб tasm из командной строки запускался из любой директории... Если действительно так, то добавь в autoexec.bat в конец строку Код (Text): set path=c:\tasmdir;%path% Где c:\tasmdir директория в которой у тебя находится tasm.exe
horpis Разумеется не это )) Он про TASM спрашивал, а Масм32 с DOS не дружит Saessie Когда давно играл в тасм, то компилировал и запускал батником RunDOS.bat Код (Text): @tasm /mx /z /r /kh65535 %1.asm @if ErrorLevel==1 GoTo TasmError @tlink %1.obj,%1.exe @if ErrorLevel==1 GoTo LinkError @%1.exe @erase %1.obj @GoTo EndBat :TasmError @echo При ассемблировании произошла ошибка @GoTo EndBat :LinkError @echo При связывании произошла ошибка :EndBat Путь к тасму и линкеру можно указать непосредственно в батнике, например: @c:\tasm5\bin\tasm ... @c:\tasm5\bin\tlink ... но лучше через PATH как cppasm советует , тогда можно батник в директорию с tasm положить, а не таскать его по папкам с исходниками. Tasm32 и Tlink32 нужны для компиляции программ под Win или Protect mode DOS И если ты нашёл только эти 4 файла - то загляни в инструменталку wasm - там есть полная 5+ версия, только не перепутай с TASM32 3.2 (первая строчка, но это совсем не тот тасм) и с патчем осторожнее - может он что-то и исправляет, но у меня после пропатчивания посыпалась куча сообщений об ошибках в нормально работающих прогах - пришлось откатиться И чуть не забыл для компиляции изапуска в командной строке NC пишется: RunDOS FileName где FileName - имя асм файла без расширения .asm А NC на то и "файловый менеджер"\"DOS оболочка", чтобы из него другие проги запускать
Как советовал уважаемый cppasm, код set path=c:\tasmdir;%path% не работает. Может из-за того что я загружаю DOS с дискеты (выполняется ли при этом C:\autoexec.bat ?). Или вместо path надо что-то написать? И как этот код определяет, что должен запускаться именно TASM.EXE, а не например TLINK32.EXE - ведь этого нигде не прописано - указана только папка? По поводу совета Y-MUR: А этого недостаточно? И А путь к этому файлу?
Saessie Разумеется при загрузке с дискеты выполняется A:\autoexec.bat вместо path ничего писать не надо - это имя системной переменной, где хранится список директорий к которым можно обращаться не указывая путь ;%path% означает, что ты не заменяешь, а дописываешь path командой set. Если set path используется в autoexec.bat однократно, то достаточно перечислить список директорий, разделённых ; и без пробелов. для ДОС достаточно tasm + tlink (даже без ...32), но в полном комплекте есть ещё отладчик, примеры и много не всегда нужной, но в принципе полезной мелочи . если RunDOS.bat лежит рядом с asm файлом или в директории с tasm, то путь не нужен. А кстати после загрузки с дискеты ты диск C:\ видишь?
Т.е. мне надо создать A:\autoexec.bat и там прописать set path=а:\tasmdir;%path% ? Что есть отладчик? Не то ли это, благодаря чему соэдаётся *.lst ? C:\ то я вижу, но вот E:\ не вижу. Вижу даже D:\ . Хотелось бы всё-таки видеть ещё и E:\. Как это сделать?
например set path=C:\;С:\tasm;D:\myAsmFil.es тогда к файлам расположенным в корне диска, C:\, и директориях С:\tasm, D:\myAsmFil.es можно будет обращаться не указывая путь. lst создаётся ключом /l или /la в tasm (запусти его без всего - получишь полный список его возможностей), а отладчик позволяет смотреть выполнение кода по шагам. Из под ДОС видно тольно FAT32 диски, если хочешь видеть ещё и NTFS диски, то нагугли утилиту Русиновича NTFSdos, хотя раз два есть, то имхо нет особого смысла "выпендриваться"
Огромное спасибо, теперь все мои программы работают! Правда я не использую ни отладчика, ни runDOS - просто a:\autoexec.bat.