Как установить NASM в Windows 10?
Я пытаюсь изучить сборку и хотеть скачать NASM, я использую Windows 10, возможно ли установить NASM без использования DOSBOX или VM ?? Потому что я видел кого-то, используя CodeBlocks с NASM для кода в сборке ..
2 ответа
NASM имеет установщики для Windows, доступных с его сайта под вкладкой «Загрузки»
Последняя стабильная сборка Win64 (по состоянию на 15 см2019) доступна здесь: https: //www.nasm.us/pub/nasm/reelaseBuilds/2.14.02/Win64/.
Простая альтернатива для Windows 10 будет устанавливать NASM с помощью NASM с помощью Vinget Менеджер пакета.
Запустите командную строку в качестве администратора, а затем:
добавьте его на путь
Перезагрузите командную строку и проверить
NASM версия 2.15.05 скомпилирована 28 августа 2020
Как установить tasm на windows 10
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents

Basic support for MASM/TASM v1.x
Basic language support for assembly in DOS environment. may be suitable for studying MASM/TASM in DOSBox or courses like principles& peripheral technology of microprocessor.
- Language Support: Offer grammar,basic outline view,hover,code formate support for DOS assembly language
- Run and debug: Right click on the VSCode editor panel, run and debug your code
- Diagnose: process the output of ASM tools and display them in VSCode
- support all platform including Web, see platform support
- Note: this extension is built for learning assembly in DOS, it can not work with assembly for win32
Demo 1: Language Features
| Formate Codes | Diagnose |
|---|
The extension offers some language features like «hover»,»formate»,»jump to definition» as language id assembly . You can also use other extension for Assembly language Support, for example language ID asm-collection by installing extension ASM Code Lens.
Demo 2: Run and Debug
| using TASM via DOSBox | using MASM via msdos-player |
|---|
when you are editing assembly files ,you can right click at the editor panel,then you will see several choices listed below:
- Open Emulator: Open the dosbox, prepare the environment
- Run ASM code: Assemble,link and Run the program
- Debug ASM code: Assemble,link and Debug the program
- If your code just in a single file, set configuration masmtasm.ASM.mode as single file . The extension will copy your file to a seperate space in your machine to keep your workspace Folder clean.
- If your project is complex and making up with many files, you may set configuration masmtasm.ASM.mode as workspace and keep your files’ names follow the emulator’s limitation.
- take include <filename> for example, the <filename> should be the relative path to your workspace Folder
The extension depend on vscode-dosbox for intergration with DOS emulator. It has packaged all binary files for windows system.
Follow its doc for installing emulator like DOSBox in other system.
About DOSBox ‘s disk
The extension will mount some folder to DOSBox ‘s disk.
in DOSBox real path in the computer C: the path of tools folder D: the path of the work space Compile to .com files
You can change the command to exec in setting masmtasm.ASM.actions . For example, if you want to compile your code to .com , you can add a setting like this. And set masmtasm.ASM.assembler to its key TASM-com
According to VSCode-doc, the extension will be installed in following folder:
- Windows %USERPROFILE%\.vscode\extensions
- mac-OS
Assembler – Урок 0: Установка компилятора и запуск первой программы через DOSBox
В данном курсе планируется разобрать основные особенности программирования на самой простой реализации assembler – TASM. Этих знаний лично мне вполне хватило, чтобы на отлично сдать ЭВМ в институте и закончить все лабораторные работы. Во многих уроках будет домашние задание по их мотивам.
Для начала давайте установим наш старенький компилятор.
СсылкаПочему именно vk.com?
Я прекрасно понимаю, что это ещё тот колхоз делиться файлами через обсуждения VK, но кто знает, во что может превратиться эта маленькая группа в будущем.
После распаковки файлов, советую сохранить их в папке Asm на диск C, чтобы иметь меньше расхождений с представленным тут материалом.
Для запуска компилятора нам так же потребуется эмулятор DOSBox. Он и оживит все наши компоненты. Скачаем и установим его!
СсылкаВ папке Asm я специально оставил файл code.asm. Именно на нём мы и потренируемся запускать нашу программу. Советую сохранить его копию, ибо там хранится весь код, который в 99% случаев будет присутствовать в каждом вашем проекте.
Итак. Запускаем наш DOSBox и видим следующее:
Для начала нам нужно смонтировать диск, на который вы сохранили вашу папку Asm. У меня это диск C, поэтому я прописываю следующую команду:
Здесь d: это не реальный диск на вашем компьютере, а виртуальный. С таким же успехом вы можете назвать его i или s. А вот C это наоборот реальный диск. Мы прописываем путь до наших файлов ассемблера.
Теперь, откроем смонтированный диск:
Прописав команду dir, вы сможете увидеть все файлы, которые там хранятся. Здесь можно заметить и наш файл CODE с расширением ASM, а так же дату его создания.
И только теперь мы начинает запускать наш файл! Бедные программисты 20 века, как они только терпели всё это? Пропишем следующую команду:
После мы увидим следующее сообщение, а наша директория пополнится новым файлом с расширением OBJ.
Теперь пропишем ещё одну команду:
В нашей папке появилась ещё пара файлов – CODE.MAP и CODE.EXE. Последний как раз и есть исполняемый файл нашего кода assembler.
Если он появился, значит, мы можем запустить режим отладки нашей программы, введя команду последнюю команду. Обратите внимание, теперь мы не указываем расширение файла, который запускаем.
Этот старинный интерфейс насквозь пропитан духом ушедшей эпохи старых операционных систем. Тем не менее…
Нажав F7 или fn + F7 вы сможете совершить 1 шаг по коду. Синяя строка начнёт движение вниз, изменяя значения регистров и флагов. Пока это всего лишь шаблон, на которым мы потренировались запускать нашу программу в режиме дебага. Реальное “волшебство” мы увидим лишь в следующих уроках. Пока давайте лишь ознакомимся с имеющимися разделами.

Code segment – место, где turbo debug отражает все найденные строки кода. Важное замечание – все данные отражаются в TD в виде 16-ричной системы. А значит какая-нибудь ‘12’ это на самом деле 18, а реальное 12 это ‘C’. CS аналогичен разделу “Begin end.” на Pascal или функции main.
Data segment, отражает пока все мусорные данные, которые обнаружил TD. Справа мы видим их символьную (char) интерпретацию. В будущем мы сможем увидеть здесь наш “Hello, world”, интерпретируемый компилятором в числа, по таблице ASCII. Хорошей аналогией DS является раздел VAR, как в Pascal. Пока будем считать, что это одно и тоже.
Stack segment – место хранения данных нашего стека. Возможно, вы уже слышали о такой структуре данных. Если нет, обязуюсь пояснить в последующих статьях.
Регистры
Все эти ax, bx, cx, si, di, ss, cs и т. д. – это наши регистры, которые используются как переменные для хранения данных. Да, это очень грубое упрощение. Переменные из Pascal и регистры Assembler это не одно и тоже, но надеюсь, такая аналогия даёт более чёткую картину. Здесь мы сможем хранить данные о циклах, арифметических операциях, системных прерываниях и т. д.
Флаги
Все эти c, z, s, o, p и т.д. это и есть наши флаги. В них хранится промежуточная информация о том, например, было ли полученное число чётным, произошло ранее переполнение или нет. Они могут хранить результат побитого сдвига. По опыту, могу сказать, на них обращаешь внимание лишь при отладке программы, а не во время штатного исполнения.
Если пока что-то не понятно, уверяю, каждый из сегментов мы рассмотрим подробнее в следующих уроках. Они заслуживают детального обсуждения, и уместить в один абзац всю информацию просто невозможно.
Ещё одно замечание. Если вы измените данные исходного файла с расширением .ASM, то вам придётся совершить все ранее описанные операции вновь, ибо обновив например code.asm вы не меняете code.obj или code.exe.
Маленькая шпаргалка для заметок:
mount d: c:\asm – создаём виртуальный диск, где корень –папка asm
d: — открываем созданный диск
tasm code.asm – компилируем исходный код
tlink code.obj – создаём исполняемый файл
td code – запускаем debug
F7 – делаем шаг в программе
Буду ждать комментарии от всех, кому интересен Assembler. Чувствую, я где-то мог накосячить в терминологии или обозначении того или иного элемента. Но статья на Habr отличный повод всё повторить.