Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как запустить asm файл


Первая программа на ассемблере - Hellow World в стиле TASM.

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

Наша первая программа на ассемблере будет в формате *.COM — как мы уже знаем, исполняемые файлы указанного формата очень крохотные (tiny) по размеру и  состоят из одного сегмента, в котором размещаются код, данные и стек.

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

Резидентная (TSR-программа, от англ. Terminate and Stay Resident) — это программа, которая после запуска передает управление операционной системе, но сама не завершается, а остаётся в оперативной памяти, реагируя на определённые действия пользователя. Например, при нажатии сочетания горячих клавиш делает снимок экрана.

Код в статьях отображается в удобочитаемой форме: каждая строка имеет свой номер, строки и код подсвечиваются. Чтобы скопировать «чистый исходник», наведите курсор мыши на текст, дождитесь всплывающего меню и нажмите в меню кнопочку «копировать» (изображение двух листочков бумаги с текстом). Чистый код не содержит нумерации строк!

Наша первая программа выведет на экран монитора (консоль) надпись «Hello, World!». Итак, как говорил Юрий Алексеевич, поехали!

Создаём исполняемый файл PRG.COM.

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

  • Скачиваем с нашего сайта архив (DOS-1.rar) с предустановленными DOSBox и программами. Запускаем DOSBox. Стартует эмулятор MS-DOS и Norton Commander пятой версии.
  • В папке D:\TASM.2_0\TASM\ находим текстовый файл PRG.ASM. Это обычный текстовый файл, который можно создать
    с помощью любого текстового редактора, с расширением ASM вместо TXT.
  • В файл вносим код:

;Строка, после точки с запятой является комментарием ;и не обрабатывается ассемблером ; prg.asm - название файла. .model tiny ; создаём программу типа СОМ .code ; начало сегмента кода org 100h ; начальное значение смещения программы в памяти - 100h start: mov ah,9 ; номер функции DOS - в АН mov dx,offset message ; адрес строки - в DX int 21h ; вызов т.н. "прерывания" - системной функции DOS ret ; завершение СОМ-программы message db "Hello, World!",0Dh,0Ah,'$' ; строка для вывода end start ; конец программы.

;Строка, после точки с запятой является комментарием

;и не обрабатывается ассемблером

; prg.asm - название файла.

.model tiny ; создаём программу типа СОМ

.code ; начало сегмента кода

org 100h ; начальное значение смещения программы в памяти - 100h

start:

mov ah,9 ; номер функции DOS - в АН

mov dx,offset message ; адрес строки - в DX

int 21h ; вызов т.н. "прерывания" - системной функции DOS

ret ; завершение СОМ-программы

message db "Hello, World!",0Dh,0Ah,'$' ; строка для вывода

end start ; конец программы.

  • В папке D:\TASM.2_0\TASM\ находим «батник» ASM-COM.BAT со следующим текстом:

tasm.exe prg.asm tlink.exe /t /x prg.obj

tasm.exe prg.asm

tlink.exe /t /x prg.obj

Первая строка — запуск транслятора с названием нашего файла с кодом, расположенного в одной директории с транслятором.

Вторая строка — запуск компилятора с параметрами /t /x и название объектного файла — prg.obj, получившегося в результате выполнения первой команды.

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

  • После запуска ASM-COM.BAT в этой же директории появится файл prg.com. Запустив его мы увидим сообщение «Hello World!» в окне MS-DOS (при необходимости просмотра, снова применяем Ctrl+O).

Батник ASM-EXE.BAT предназначен для создания исполняемого файла формате *.EXE (предусматривает раздельную сегментацию для кода, данных и стека — наиболее распространённый формат исполняемых файлов DOS).

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

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

TASMED (Tasm Editor) — среда разработки приложений DOS на ассемблере.

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

Для более удобной работы с кодом целесообразно применять какую-либо среду разработки. Среда разработки — это громко сказано для времён MS-DOS, правильнее сказать — специфический редактор.

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

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

Основные плюсы:

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

Минусы:

  • только английский язык интерфейса, но английский программист должен знать лучше русского;
  • слишком много настроек для текстового редактора.
    Хотя, в принципе, настройки — не проблема. Основное, что необходимо настроить — это соответствующие пути:
    Options->External->Assembler
    Options->External->Linker
    В общем, разобраться не сложно.

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

Для удобства группирования создаваемых программ можно создать отдельную папку (мы создали папку PROJECTS) в которой создавать папки названий проектов, куда копировать соответствующие файлы. Пока у нас — это PRG.ASM, PRG.OBJ, PRG.EXE. Однако, в зависимости от параметров и наших программ их может быть больше (PRG.MAP, PRG.SYM и др.).

В нашем случае, все программы, рассматриваемые в курсе обучения будут группироваться в директории D:\WORK в соответствующих папках. Например, наша первая программа в папке D:\WORK\PRGCOM\ (файлы prg.asm и prg.com). Папку D:\TASM.2_0\PROJECTS\ оставляем пустой для ваших проектов и экспериментов.

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

  1. Запустить драйвер русской раскладки клавиатуры. В нашей запущенной MS-DOS системе на базе DOSBox это файл C:\KEYRUS\keyrus.com. Впрочем, при запуске MS-DOS согласно нашим настройкам DOSBox, он запустится автоматически. При этом будет обеспечено не только отображение русского текста в текстовых редакторах, но и русскоязычная раскладка клавиатуры. Переключение раскладки Eng->Rus и наоборот — горячая клавиша «правый CTRL».
  2. Текст исходников необходимо писать в текстовых редакторах или средах разработки DOS.
  3. Если исходники пишутся в Windows редакторах, должна быть обеспечена русскоязычная кодировка текста — ASCII для DOS (CP866 или OEM866).
Русскоязычная кодировка текста — программа просмотра файлов Total Commander.Русскоязычная кодировка текста — используем Notepad++.

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

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

Сборка

- Как запустить файл MS-DOS .asm с помощью VS2013 или MASM32?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

ubuntu - Скомпилировать / запустить ассемблер в Linux?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

Компиляция программы сборки с помощью NASM

Последнее обновление , автор: David Webb .

Компиляция программы сборки с NASM может выполняться в Linux или Windows, поскольку NASM доступен для обеих платформ. Netwide Assembler (NASM) - это ассемблер и ассемблер для архитектуры Intel x86, который обычно используется для создания 16-битных, 32-битных (IA-32) и 64-битных (x86-64) программ.


Сборка превратит ваше низкоуровневое кодирование с использованием мнемоники в машинный язык, понятный процессору.Эта статья научит вас не программированию с помощью NASM, а созданию исполняемой команды для Linux и Windows из исходного кода NASM.

Компиляция программы сборки с помощью NASM для Linux

Создание исходного файла

  • Для этого можно использовать любой текстовый редактор, например Gedit , KWrite или XEmacs . При сохранении файла присвойте ему расширение .asm .

Сборка исходного файла

  • Для этого шага вам понадобится программное обеспечение NASM, установленное на вашем компьютере.
  • Если вы используете Debian или Ubuntu, просто введите команду:
 sudo apt-get install nasm 
  • Если у вас другой дистрибутив Linux, вы должны использовать менеджер пакетов вашего дистрибутива (например, Urpmi, Yum, Emerge) или загрузить NASM с официального сайта.
  • Используйте следующую командную строку для сборки исходного файла:
 nasm -f elf test.asm 
  • В этом примере сохраненный файл .asm называется test.asm . В текущем каталоге будет создан файл с именем test.o .

N.B. Этот файл не является исполняемым. Это все еще объектный файл.

Создание исполняемого файла

  • Теперь, когда у нас есть объектный файл с именем test.o , мы должны создать исполняемый файл.
  • Ваша программа может начинаться с процедуры под названием _start . Это означает, что ваша программа имеет собственную точку входа без использования основной функции .Однако вам нужно будет использовать «l» для создания исполняемого файла:
 ld test.o -o test 
  • В качестве альтернативы ваша программа может начинаться с процедуры под названием main . Вам нужно будет использовать gcc для создания исполняемого файла:
 gcc test.o -o test 
  • Теперь ваш исполняемый файл создан, протестирован и находится в текущем каталоге.

Выполнение программы

  • Чтобы запустить программу под названием test , просто введите эту команду:
./ тест 

Компиляция программы сборки с помощью NASM для Windows

  • Основная функция недоступна в Windows и должна быть заменена на WinMain .
  • Если ваша точка входа - _start или main , ее следует изменить на _WinMain @ 16 . Также измените ret в конце процедуры на ret 16 :
 section .text 
global _WinMain @ 16
_WinMain @ 16:
mov eax, 0
ret 16

Установка программного обеспечения

  • Сначала необходимо установить NASM.Храните где-нибудь архив, так как он будет использован позже.

  • Самым сложным шагом будет установка MinGW, бесплатной среды разработки для Windows:
  • Начните с выбора последней версии MingGW на их веб-сайте. Запустите установщик, но не выполняйте обновление на этом этапе. Оставьте все параметры выбранными по умолчанию и дождитесь его установки.
  • Теперь вам нужно вставить NASM в среду разработки MinGW.Распаковать архив NASM. Вы должны получить папку, содержащую, среди прочего, файл с именем nasm.exe . Скопируйте этот файл в каталог C: \ MinGW \ bin .

Создание исходного файла

  • Как и в Linux, нет необходимости использовать конкретного издателя для создания исходного файла для NASM. Вы можете использовать Блокнот . Но обратите внимание, что он имеет тенденцию добавлять расширение .txt к файлам, которые он создает. Чтобы устранить двусмысленность, рекомендуется просматривать расширения ваших файлов.
  • В любом случае избегайте текстовых процессоров, таких как Word или WordPad .
  • При желании вы также можете использовать редактор, использующий синтаксис NASM, например NasmEdit IDE .
  • Убедитесь, что вы сохранили исходный файл с расширением .asm .

Сборка исходного файла

  • Откройте окно Command , выбрав Пуск> Выполнить и набрав cmd.exe
  • Используя команду cd , перейдите в папку, содержащую ваш исходный файл. Оказавшись в этом каталоге, соберите исходный файл ( test.asm ) с помощью этой команды:
 nasm -f win32 test.asm -o test.o 
  • Вы создали объектный файл. Следующим шагом будет преобразование его в исполняемый файл.

Создание и выполнение программы

  • В окне Command введите последнюю команду для создания исполняемого файла:
 ld test.о -o test.exe 

Фото Маркуса Списке на Unsplash.Сборка

- как использовать gcc для компиляции файла .asm?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с cowo
.

Смотрите также