Консультация № 189804
21.09.2016, 21:27
0.00 руб.
1 15 0
Здравствуйте! Я собираюсь изучать ассемблер, и у меня, как и у большинства тоже возникли проблемы с установкой MASM 6.11. Я скачала архив с сайта asminog. И вот, что вышло.
Все делала, согласно инструкции отсюда http://www.cyberforum.ru/assembler/thread826426.html парень расписал годную пошаговую инструкцию со скринами. Все получилось. (только я не стала патчить до версии 6.11d, потому что не нашла папку "Patches" и в инструкции на сайте asminog ничего об этом не написано, поэтому я решила опустить.)

Потом, я зашла в каталог MASM чтобы проверить наличие всех папок. У меня там не оказалось папки BINR.
Я зашла, чтобы дополнить переменную path, но она у меня дополнилась автоматически (я думаю это связано с тем, что до этого я тоже пыталась установить MASM 6.11, и дополняла я ее искусственно (как в той статье по установке, сохранила, а потом, т.к. уткнулась в ту же ошибку, к которой пришла сейчас, удалила все, что связано с установкой MASM на ноуте (при этом path очистилась сама!) и сейчас пробую установить все заново. Вот, что содержит path на данный момент:
C:\Program Files\Intel\iCLS Client\;C:\Program Files\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Git\cmd;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files\Microsoft SQL Server\120\DTS\Binn\;C:\Program Files\Microsoft SQL Server\130\DTS\Binn\;C:\Program Files\Microsoft DNX\Dnvm\;C:\MASM611\BIN;C:\MASM611\BINR;C:\MASM611\LIB;C:\MASM611\INCLUDE;C:\MASM611\HELP;C:\MASM611\INIT;C:\MASM611\SAMPLES

Далее проверяю микроассемблер на работоспособность. Создаю bat файлы, ввожу в один из них gh (как и на сайте) и он выдает совсем не то, что нужно. Я понимаю, что я что то точно делаю не так, но что? Очень надеюсь на подробный ответ!

P.S. У меня семерка , ultimate
Необходимый скрин тоже прикреплен.

Прикрепленные файлы:
3d5305a7cfc51d8bdb4429fc9848172ccdc2141d.PNG

Обсуждение

давно
Старший Модератор
31795
6196
22.09.2016, 13:01
общий
Адресаты:
Думаю, что у Вас такаяже проблема как в этотом вопросе.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
400486
11
23.09.2016, 13:58
общий
Адресаты:
[q=31795][/q]

Прочитала. Мне кажется у меня проблемы в настройке.
Я делала при установке то же, что и у вас в комментарии https://rfpro.ru/question/189761# к тому вопросу. Тоже установлено на диск С.
Нажала WIN+R, ввела cmd. Вот что вышло: после имени пользователя нет никакой ссылки на masm!
Прикрепленные файлы:
2198926ee6e88c0080c9de63eeafff72.PNG
давно
Старший Модератор
31795
6196
23.09.2016, 16:41
общий
Адресаты:

Ещё раз пересмотрите этот вопрос.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
400486
11
24.09.2016, 23:04
общий
24.09.2016, 23:05
Адресаты:
Прочитала внимательнее этот вопрос.

Вот такие моменты хочу прояснить:

1. Что за рабочая папка _my с рабочими программами? И почему вы к ней сначала обращались через адресную строку?

2. У вас много компиляторов. И вы работаете с ними через адресную строку, вводя
D:\CAT\_Lang\Masm\Masm.613\BIN\ml 160601b.asm /c
D:\CAT\_Lang\Tasm\tasm.2\tlink 160601b.obj /t
я так понимаю эти две строки вы пишите одновременно? А если нет TASM, мне надо его устанавливать?
И у меня только один компилятор. Зачем модератор дал там ссылки на скачивание MASM 6.10-13? Это надо?
Вообще для работы на Ассемблере достаточно установить только MASM 6.11?

3. Теперь непосредственно к вызову программы.
МASM 6.11 расположен на С. В папку BIN я расположила программу в блокноте 160601b.asm . Таким образом вызов файла будет выглядеть:
(после имени пользователя)>C:\MASM611\BIN\ml 160601b.asm /c
Но мне выдается точь-в точь то же самое, что и у пользователя из того вопроса! (fatal error A1000:cannot open file:160601b.asm\c)
Только я так и не поняла почему он пытался вызвать еще и 160301a.asm? Это что за файл?

4. Далее, я как вы и советовали, захожу в Параметры папок. Вижу, что напротив "скрывать расширения для зарегистрированных типов файлов" у меня стоит галочка. Я ее снимаю и сохраняю. Повторяю тот же вызов программы. Та же ошибка.
Второй вариант отпадает (так как я посмотрела, в расширении программы стоит asm. И сохраняла я его, написав в имени файла 160601b.asm, а в графе тип файла, выбрала "все файлы".) Так что тут ошибки быть не должно. Тогда почему так выходит?((


давно
Посетитель
400534
33
25.09.2016, 11:19
общий
25.09.2016, 11:21
Цитата: darka777
160301a.asm? Это что за файл?

это тоже программа , что и 160601b.asm. Тоже пытался вызвать. =) давайте объединим темы что бы на один и тот же вопрос не плодить множество тем (предложение модераторам)
давно
Посетитель
400534
33
25.09.2016, 13:13
общий
Цитата: darka777
я так понимаю эти две строки вы пишите одновременно?

я так понимаю он создает через блокнот ВАТ файл..и через него запускает командную стоку а там автоматом открывает рабочую папку, то есть не надо вручную вводить путь до рабочей папке..
давно
Посетитель
400486
11
25.09.2016, 15:10
общий
Адресаты:
Цитата: Strannik
это тоже программа , что и 160601b.asm.
а зачем она нужна? У нас уже есть 160601b.asm. Я что-то упустила ее создание =)

Цитата: Strannik
я так понимаю он создает через блокнот ВАТ файл..и через него запускает командную стоку а там автоматом открывает рабочую папку, то есть не надо вручную вводить путь до рабочей папке..

А почему он два вызова пишет? Через MASM и TASM (как я поняла, одновременно). Да и вообще зачем столько дофига компиляторов?)
давно
Посетитель
400534
33
25.09.2016, 15:34
общий
Цитата: darka777
У нас уже есть 160601b.asm. Я что-то упустила ее создание =)

да не обращайте внимание..я экспериментировал..Зенченко Константин Николаевич у него в скрине увидел..
Цитата: darka777
Да и вообще зачем столько дофига компиляторов?

ну вот я работаю на Delphi 7 и Delphi XE8 и Константин по неизвестной нам причине тоже работает. Просто мне тоже не понятно..зачем вызывать два компилятора. Подождем до понедельника..я думаю что они и сами не знают что у нас..ибо чувствуется желание отвечать нам уменьшилось а хотелось бы вникнуть. Я три года назад так же по книге хотел заняться Асемблером..но из за того что не смог установить компилятор потерял интерес..сейчас вернулся и такая же эпопея..думаю все таки добью я этот тасм..
Скажите а почему вас не устраивает компилятор на 32 разряда например: FasmEditor-v2.0 или MASM32.ver.09.English?
давно
Посетитель
400486
11
25.09.2016, 16:55
общий
Адресаты:
Да, я считаю в любом случае надо дождаться модеров! Только они могут прокомментировать свои действия. Все равно эту проблему надо решать! Ну не мы, так другие напишут. Сколько людей возьмутся за эту книгу, столько и проблем будет! Надо все решить для будущих поколений!))
Уже хочется начать учиться)

Цитата: Strannik
Скажите а почему вас не устраивает компилятор на 32 разряда например: FasmEditor-v2.0 или MASM32.ver.09.English?


Хороший вопрос) Вообще говоря у меня есть MASM32 (не знаю какая версия). Я скачала, но пока не устанавливала. В книге сказано, что MASM 6.11 нужен для выполнения заданий первой части книги, а MASM32, для второй. Я лично считаю, что пока ты мало что понимаешь в видах компиляторах, и для чего какой нужен, стоит следовать рекомендациям. Вот и две недели, как уперлась в MASM6.11! Установлю любой ценой!
А то разбирать на бумаге код из книги, как-то надоело))
давно
Посетитель
400534
33
25.09.2016, 17:53
общий
Цитата: darka777
А то разбирать на бумаге код из книги, как-то надоело))

да в общем то я и сам пока в сухую разбираю..но все таки из под виртуальной системы ХР получается у меня откомпилировалось..но только не в COM ФАЙЛ..надо просто в командной строке было просто прописать атрибут /AT тогда линковщик создаст COM файл. (Приложение читайте) А просмотр кода из под ассемблера выполняется (уже откомпилированного) в отладчике( про который вы спрашивали) Сами посмотрите в книге фото В ОТЛАДЧИКЕ ВЫПОЛНЕНА КОМАНДА.. (можно использовать отладчик ADF или CodeView) Но они видят файл программы если исполняемые файлы этих отладчиков поместите в папку с программами откомпилированные. Да..насчет виртуальной ОС..я использую программу : VMware Workstation далее на нее с образа устанавливаете Виндовс ХР и от туда работаете. Вот пожалуй и все.
давно
Старший Модератор
31795
6196
26.09.2016, 18:17
общий
26.09.2016, 18:19
Адресаты:

Это самый минимум, который нужно, чтобы скомпилировать код, без всяких путей и программирования PATH.
Одновременно нажать кнопки Win + R, запускается окно RUN(выполнить) и Вы набираете команду CMD и нажимаете ОК. Запускается Command promt(Kомандная строка), набрав команду CD C:\masm611\bin выполняется переход в папку компилятора. Создав в папке(скопировав в неё) файл name.asm, с разширением .asm и набрав команду компилятора ML name.asm /At - Вы запускаете созданние СОМ-файла, который уже можно запускать. Запускается все в томже окне.

Отвечая на остальные Ваши вопросы, да у меня много компиляторов, т.к. задавая вопрос, спрашивающему не интерестно, что я люблю писать в TASM'е, ему нужнен, к примеру NASM. И кроме ассемблеров, у меня есть несколько паскалей, фортранов и С. Чтобы не искать написанные рание программы по папкам дистрибутивов, я храню их в одном месте в папке _MY.

Как вариант можете себе поставить FASM, синтаксис несколько отличается от описаного в книгах MASM/TASM. В комплекте есть файл в котором расписаны различия. Но с ним проще работать, т.к. компиляция запускается в самой IDE FASM.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
400486
11
30.09.2016, 19:15
общий
Адресаты:
Сделала все так, как вы сказали. Вылезла та же ошибка. В чем же проблема?(

Да, можно установить другой компилятор, но книга написана для него. Поэтому, когда имеешь маленький опыт, со всякими отличиями не очень хочется возиться (надо понять то, что есть в книге). По этой причине я хочу установить сейчас именно MASM 6.11. Но понять в чем ошибка, не могу.
Прикрепленные файлы:
047ecb970333c82ed0da4d328263cde2.PNG
давно
Посетитель
7438
7205
01.10.2016, 12:38
общий
Адресаты:
Параметр /AT надо отделять пробелом от имени ASM-файла
Вот и вся ошибка...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
400486
11
02.10.2016, 21:24
общий
02.10.2016, 21:25
Адресаты:
Здравствуйте! Я сделала так, как вы сказали (прикрепляю скрин)
Меня смущает warning A4017. Что это?
А так, после того, как я в новой строке c:\MASM611\BIN>ввела 160601b.COM прога запустилась)) Уря!

Но у меня так же остались вопросы:
1. Почему надо запускать расширение .COM, а не .EXE (так как я видела в одном видео, что запускать надо .EXE)?



2. Почему у меня не выполняется тестирование с сайта http://asminog.h1.ru/articles/licbez/confide.html , где надо создавать файлы .BAT и .COM. На команду qh (в тексте моего вопроса я допустила ошибку: написала gh вместо qh. Но текст в обоих случаях пишется одинаковый (см. самый первый мой скрин)). На сайте сказано, что если выдается «QuickHelp cannot open c.hlp», то это значит, что установленный пакет работает. А если у меня появилось ""qh" не является внутренней или внешней командой, исполняемой пакетным файлом..."-выходит у меня пакет работает неправильно?
И так же некорректно. Так же у меня возникли затруднения с вызовом программы (той, которая предложена на сайте). Хотелось бы разобраться.
Прикрепленные файлы:
556d4740635916c924996aa2432e99d1.PNG
давно
Посетитель
7438
7205
03.10.2016, 10:24
общий
Адресаты:
Меня смущает warning A4017. Что это?
Это означает, что параметр записан неправильно, дословно, некорректная опция командной строки. Вы ж записали /at ( не так ли?), а надо /AT (большими буковками). Компилятор его проигнорировал. Но, что интересно, все равно создал COM-файл. Видать, решение принято исходя из-за того, что в коде записано MODEL TINY. Но правильно будет задавать явно.
Почему надо запускать расширение .COM, а не .EXE (так как я видела в одном видео, что запускать надо .EXE)?
Для досовских программ есть два основных формата программ: EXE и COM. Отличие в том, что COM - это простой образ памяти, который загружается в свободный сегмент с адреса 100h (именно поэтому необходимо для COM-программ всегда писать org 100h, чтобы все адреса начинались с адреса 100h) и apriori состоит из одного сегмента. EXE же содержит в себе дополнительную информацию о сегментах, стеке, и другом. Найдите в Интернете структуру EXE и COM файлов, почитайте. Основным является формат EXE, но для небольших досовских программ удобен COM.
Почему у меня не выполняется тестирование с сайта http://asminog.h1.ru/articles/licbez/confide.html
Чего-то я не нашел, где там выполнять тестирование. Может, не там смотрел? Подскажите
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа