Консультация № 191404
30.09.2017, 13:34
0.00 руб.
0 9 1
Здравствуйте! Прошу помощи в следующем вопросе: начал читать книгу О.А.Калашникова, оказалось необходим ассемблер MASM 6.11 для ДОС. у меня на компьютере установлена Windows 7 (64-bit, x64). какой версии MASM мне установить для 64-bit операционной системы и x64 ? будут ли работать примеры из книги Калашникова если использовать другие ассемблеры например NASM ? - насколько я понял в интернете, ассемблеры отличаются от одной разновидности к другой, то есть насколько я понимаю примеры из книги Калашникова адаптированы только к MASM, но не к NASM, то есть они (примеры) не будут работать, если использовать NASM, то есть надо писать другие коды - правильно ли я понимаю суть дела ? Спасибо.

Обсуждение

давно
Старший Модератор
31795
6196
30.09.2017, 19:00
общий
Вам нужен DOSBox.
Синтаксис Nasm ничем не отличается от синтаксиса Fasm т.е.
Команда mov ax,val-получает адрес переменной, а mov ax,[val]-ее значение, есть еще некоторые заморочки инициализацией данных, а так вроде больше ничего особенного.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
02.10.2017, 12:11
общий
Адресаты:
Что у Вас получилось?
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
401339
51
02.10.2017, 17:54
общий
Адресаты:
Уважаемый Константин Николаевич и эксперты, здравствуйте,

спасибо за Ваши сообщения и извините за задержку с ответом. я установил DosBox, куда успешно установил MASM611 и скомпилировал первый пример "Hello, World" из книги О.А.Калашникова - программа скомпилировалась и работает успешно - выводит на экран DosBox сообщение "Hello, World".

Константин Николаевич, я - новичок в Ассемблере, хотя и имею небольшой опыт программирования на Си и Фортране-77. поэтому мне хотелось бы постигать Ассемблеры постепенно - надеюсь, что благодаря книги О.А.Калашникова я смогу в дальнейшем сделать серьезные шаги в мир Ассемблеров, хотя понимаю, что потребуется и другая более продвинутая литература по Ассемблерам, "железу" (hardware) и электронике.

что касается NASM, то наверное мне нужно будет пройти путь к изучению данного ассемблера постепенно - от простого к сложному - на настоящее время у меня есть книга О.А.Калашникова и компилятор MASM611 - поэтому я хотел бы изучить не только NASM, но и работу (и синтаксис) MASM, и TASM, и FASM. конечно, объять необъятное невозможно, но с другой стороны для изучения NASM и программирования с его помощью серьезных вещей необходимо иметь базу знаний и опыт програмирования на основе MASM/TASM/FASM. у меня есть желание на изучение этих компиляторов для ОС Windows/DOS и, может быть, в дальнейшем, для ОС Linux.

в дальнейшем надеюсь на ваше взаимопонимание и помощь по изучению и программированию на Ассемблерах в Windows/DOS/Linux.

Спасибо.
давно
Старший Модератор
31795
6196
02.10.2017, 18:36
общий
02.10.2017, 18:41
Адресаты:
Вам респект, что только после не большой подсказки сами во всем разобрались.

Цитата: Ильдар Рифович Альмиев
что касается NASM, то наверное мне нужно будет пройти путь к изучению данного ассемблера постепенно - от простого к сложному - на настоящее время у меня есть книга О.А.Калашникова и компилятор MASM611 - поэтому я хотел бы изучить не только NASM, но и работу (и синтаксис) MASM, и TASM, и FASM.



Чтобы программировать под NASM, прочитайте Расширенный ассемблер: NASM, в одной из глав есть описание отличий от MASM и TASM. Их не много, но основной код будет одинаков, т.к.:
Цитата: вики
Кроме того, ассемблер gas по умолчанию[5] использует AT&T-синтаксис, ориентированный на процессоры не от Intel, в то время как NASM использует вариант традиционного для x86-ассемблеров Intel-синтаксиса; Intel-синтаксис используется всеми ассемблерами для DOS/Windows, например, MASM, TASM, FASM.

Аналогичная справка идет в пакете FASM(см приложение). Некоторые моменты Вам напомнят NASM.
Не смотря на то, что я предпочитаю TASM(из-за простоты командной строки и некоторых макросов, которых не у других), у меня есть ещё куча различных компиляторов(см. картинку), которыми я периодически пользуюсь.


Удачи Вам!
Прикрепленные файлы:
a282708bfadd519e827377fa83c62386.txt
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
04.10.2017, 13:54
общий
это ответ
Здравствуйте, ialmiev!

Несмотря на постоянные заявления о совместимости снизу вверх, в 64-х битной версии Windows убрали NTVDM, и ОСь перестала поддерживать 16-ти битные программы.
Варианты решения проблемы:
- установка виртуальной машины и гостевой ОСи с поддержкой 16-ти битного кода;
- использовать эмулятор DOSBox/

Примеры работать будут, но не все, т.к. NASM не поддерживает некоторые директивы компиляторов MASM и TASM. Неплохой учебник по NASM, в главе: Пользователям MASM: Отличия все указано.

Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
404853
18
07.03.2021, 01:30
общий
доброй ночи! подскажите компилятор под nasm. os linux.
давно
Старший Модератор
31795
6196
07.03.2021, 14:55
общий
Адресаты:
Тут смотрели/?
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
07.03.2021, 14:58
общий
Адресаты:
А вообще есть оф.сайт, с инструкциями.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
404853
18
09.03.2021, 01:37
общий
Адресаты:
Спасибо посмотрим!
Форма ответа