- D:AVR-projects
- D:AVR-projects utorial
- D:AVR-projects utorialoutput
Теперь откроем блокнот и напишем текст батника:
D:avr avrasm avrasm.exe -i code.asm -e outputlistfile.lst -o outputhexfile.hex
pause=null
В первой строке мы вызываем компилятор tavrasm.
Мы ему говорим:
-i — тип выходного файла – «HEX»
code.asm – имя файла с исходным кодом. Вы можете вписать свое
-e – после этого ключа пишется путь к лист-файлу (он создается при компиляции)
outputlistfile.lst – относительный путь к лист-файлу
-o – после этого ключа пишем путь к выходному HEX-файлу
butputhexfile.hex – собственно, путь к HEX-файлу
Во второй строке мы просим батник не закрывать окно по завершении выполнения компиляции – чтоб спокойно прочитать, что нам написал компилятор. Он ведь может и ругаться 🙂
Теперь в меню «Файл» блокнота выбираем «Сохранить как».
Имя файла (File name): compile.bat Тип файла (Save as type): All Files
NASM. Первая программа. Установка среды. Компиляция Nasm на windows. Урок 1
Если оставить тип файла .txt, то блокнот сохранит файл под именем compile.bat.txt.
Сохраняем файл, ес-но, в папку tutorial.
Но не спешите вылазить из нета. Надо еще кой-чего скачать. А именно – фирменный компилятор от Atmel – «Avrasm». Он нам очень нужен из-за того, что в нем есть заголовочные файлы def.inc. А также – хелп.
Правда – на английском. Кстати, русский хелп к ассемблеру для AVR можно посмотреть здесь
Качаем вот этот архивчик (компилятор Avrasm): https://atmel.com/dyn/resources/prod_documents/ASM.ZIP
Затем — создаем папку D:avravrasm и распаковываем в нее скаченный архив. Распакуется куча всего, и среди этой кучи – папочка Appnotes. Вот как раз она то нам и нужна. Соответственно, путь к ней будет такой:
D:avravrasmappnotes
Убедитесь, что в папочке есть файл 2313def.inc !
Все! Теперь можно приступать к написанию программы.
Создаем в блокноте новый файл и сохраняем его как code.asm в папку D:AVR-projects utorial. Это будет файл исходного кода.
Теперь можно написать первую строчку. Она выглядит так:
То есть, мы подключаем заголовочный файл.
Выбор заголовочного файла зависит от того, для какой микросхемы пишется софт. В данном случае, мы пишем для AT90s2313. Соответственно, и файл – 2313.
Заголовочные файлы xxxdef.inc содержатся в установочной папке любого атмеловского компилятора для AVR-ок. Например — AVR Studio. Он качается на сайте Atmel. Качаем, ставим, ищем папочку, куда установилась программа.
Скорее всего, это здесь: C:Program FilesAtmel.
Ищем в ней папочку Appnotes.
Путь к ней, скорее всего, такой: C:Program FilesAtmelAVR ToolsAvrAssemblerAppnotes.
Там будут необходимые файлы. Это на тот случай, если нужный файл не найдется в инсталляции Avrasm. Например, заголовочные файлы для новых семейств mega и tiny в Avrasm не входят 🙁
Также (ВНИМАНИЕ: ХАЛЯВА), все (почти все) заголовочные файлы для контроллеров AVR Atmel, можно скачать прямо у нас на сайте. Они находятся в архивчике appnotes.zip.
Ассемблер Как скомпилировать asm в exe 2019
Ну вот, с заголовочными файлами разобрались.
Ниже можно писать текст программы. Напишем что-нибудь вроде:
ldi R16,5 ;загрузка констант в регистры
ldi R17,7
and R16,R17 ;логическое «И» двух регистров
nop
Заметим, что синтаксис ассемблера не требует каких либо знаков после команды. Но каждая команда обязательно должна писаться с новой строки. Знак «;» (точка с запятой), которым во многих языках обозначается конец команды, в Асме используется для комментирования – то есть все символы правее этого знака и до перехода на новую строку, компилятор игнорирует.
Сохраняем файл. Окно можно не закрывать. Лезем в папку tutorial и запускаем compile.bat. Файл компилируется.
Не забывайте сохранять файл перед каждой компиляцией!
По окончании компиляции, внимательно читаем текст на черном окошке. Если там содержатся слова типа «Error» – значит компилятор нашел ошибку. Обычно, он пишет, что именно ему не нравится и в какой строке. Смотрим номер строки, жмем в Блокноте Ctrl+G, вводим номер строки – и курсор автоматически встает в ее начало.
Исправляем ошибку.
Если ошибок нет – проверяем, создался ли в папочке output файл hexfile.hex.
Создался? Вот и здорово! Значит, можно приступать ко второй части Марлезонского балета – прошивке.
ВНИМАНИЕ.
Если компилятор пишет что ему не нравится строчка файла def.inc, с примерно таким содержимым:
.equ OR = 3
Просто октройте def.inc, найдите эту строчку и закомментируйте ее. То есть, поставьте в самом ее начале символ «;».
Источник: www.radiokot.ru
Ассемблер. Компиляция и компоновка
В этой статье мы рассмотрим процессы компиляции и компоновки программ на языке ассемблер для для операционных систем DOS и Windows. Напомню что компиляция — это процесс перевода файлов программы в так называемые объектные файлы. Объектные файлы — это файлы, в которых находится почти готовая программа в виде разрозненных кусков кода, связанных некоторой служебной информацией.
Чтобы превратить эти куски кода в готовую программу используется компоновщик. Он выстраивает код в исполняемом файле в нужном порядке и создает готовый файл заданного формата. Этот получившийся файл уже можно исполнять.
Начнем с компиляции под DOS
В DOS существовало два вида исполняемых файлов: *.com и *.exe. Файлы *.com характеризуются тем, что весь код программы, данные и место для стека содержится в одном сегменте памяти, причем код программы должен находиться в сегменте со смещением в 256 байт (100h). Файлы формата *.exe не имеют ограничений на количество используемых сегментов памяти.
Для компиляции под DOS я использую компилятор MASM версии 6.11 и TASM версии 5.3
Компиляция и компоновка файлов *.com с помощью TASM:
tasm32bintasm53.exe test.asm, test.obj, test.lst /z /t /ml /m2 /l tasm32bintlink.exe test.obj /x /t /3
Компиляция и компоновка файлов *.exe с помощью TASM:
tasm32bintasm53.exe test.asm, test.obj, test.lst /z /t /ml /m2 /l tasm32bintlink test.obj, test.exe /x /3
Описание всех параметров можно получить, выполнив в командной строке tasm53.exe /? и tlink.exe /?
Компилятор MASM позволяет выполнять компиляцию и компоновку через вызов своей программы-оболочки ml.exe
Компиляция файлов *.com с помощью MASM:
masm611binml.exe test.asm /AT /Fl /link
Компиляция файлов *.exe с помощью MASM:
masm611binml.exe test.asm /Fl /link
Компиляция под Windows
Для компиляции под Windows используются компилятор MASM32 и TASM32.
Компиляция и компоновка файлов *.exe с помощью TASM32:
tasm32bintasm32.exe test.asm, test.obj, test.lst /zi /t /ml /m3 /q tasm32bintlink32 /x /Tpe /ap /c /V4.0 test.obj, test.exe, , user32.lib
Компиляция файлов *.exe с помощью MASM32:
masm32binml.exe /c /coff test.asm masm32binlink.exe /SUBSYSTEM:WINDOWS test.obj
После компиляции и компоновки у вас должен получиться исполняемый файл *.exe или *.com формата, в зависимости от того, какие параметры вы задавали компилятору.
Источник: sysprog.ru
How to compile assembly code with NASM: in Linux, Windows
Compiling an assembly program with NASM can be done on Linux or Windows, as NASM is available for both platforms. An NASM assembler will turn your low-level coding, using mnemonics, into machine language that can be understood by the processor. This article will not teach you to program with NASM, but to create an executable command for Linux and Windows from NASM source code.
- NASM for Linux
- NASM for Windows
Netwide Assembler (NASM) is an assembler and dissembler for the Intel x86 architecture and is commonly used to create 16-bit, 32-bit (IA-32), and 64-bit (x86-64) programs.
How to compile an assembly program with NASM for Linux?
Creating the source file
- You can use any text editor, such as Gedit, KWrite, or XEmacs, to do so. When you save your file, give it the extension .asm.
Assembling the source file
- For this step, you will need NASM software installed on your machine.
- If you’re running Debian or Ubuntu, simply type the command:
sudo apt-get install nasm
- If you have another Linux distribution, you must use your distribution’s package manager (e.g. Urpmi, Yum, Emerge) or download NASM from the official site.
- Use the following command line to assemble your source file:
nasm -f elf test.asm
- In the example, the saved .asm file is called test.asm. This will create a file named test.o in the current directory.
N.B. This file is not executable. It is still an object file.
Creating the executable
- Now that we have our object file, named test.o, we must create our executable.
- Your program may begin with a procedure called _start. This means that your program has its own point of entry, without the use of the main function. However, you’ll need to use the «l» to create your executable:
ld test.o -o test
- Alternatively, your program may begin with a procedure called main. You will need to use gcc to create your executable:
gcc test.o -o test
- Now, your executable is created, tested, and located in the current directory.
Program execution
- To run the program called test, just type this command:
. / test
How to compile an assembly program with NASM for Windows?
Installing the software
- You must first install NASM. Keep an archive somewhere, as it will be used later.
- The most difficult step will be installing MinGW, which is a free development environment for Windows:
- Start by choosing the latest version of MingGW from their website. Run the installer, but don’t update at this point. Leave all options selected by default, and wait for it to install.
- Now you need to insert NASM in the development environment MinGW. Unpack the NASM archive. You should get a folder containing, among other things, a file named nasm.exe. Copy this file into the directory C: MinGW bin.
Creating a source file
- Like Linux, there is no need to use a specific publisher to create a source file for NASM. You can use Notepad. But take note that it tends to add the .txt extension to files it creates. To remove any ambiguity, it is recommend that you view the extensions of your files.
- In any event, avoid word processors, such as Word or WordPad.
- If you wish, you can also use an editor that uses NASM syntax, such a NasmEdit IDE.
- Make sure your save your source file with the .asm extension.
Assembling the source file
- Open the Command window by going to Start > Run and typing cmd.exe
- Using the command cd, go to the folder containing your source file. Once you are in this directory, assemble your source file (test.asm) with this command:
nasm -f win32 test.asm -o test.o
- You have now created an object file. The next step will be to turn it into an executable file.
Creation and execution of the program
- From your Command window, type the final command to create the executable:
ld test.o -o test.exe
Источник: ccm.net