Джоуи
|
|
1 | |
Элементарные вещи про nasm - как создать exe22.04.2017, 21:38. Показов 8956. Ответов 4
Нижайше прошу прощения за столь наглый вопрос, хочу начать асм с простого создания экзешника. Ессесно тупо скопировал код HelloWorld что с Википедии, что с форума, но удалось создать лишь obj-файл, а как его скомпоновать в exe? Скачал с оф сайта nasm-2.13rc21.zip и nasm-2.13rc21-win64, с помощью nasm.exe создал объектный модуль. Но вот где взять линковщик? tlink сказал, что не пашет под win64, в самом дистрибутиве nasm не знаю где линковщик. Поиск по link и ld ничего не дал. В FAQ-е форума ссылка на тему с кодом, но не нашел про создание экзешника. Понимаю, вопрос типичный для высоко-языкового программиста, дескать "дайте сразу готовый экзешник", прошу понять, простить...
Пирогова тоже скачал. Многабукаф про архитектуру Intel, про суть вещей, про команды да директивы. Также много где говорится про программирование под UNIX/Линукс и соответственно компилирование/компоновка тоже на них. Поясняю - я не хочу сразу стать тру-ассемблерщиком, просто хотелось попробовать. Сорри за тупой вопрос
0
|
22.04.2017, 21:38 | |
Ответы с готовыми решениями:
4
Элементарные вещи,которые не могу понять... Как получить из .obj .exe (nasm)? Найти багаж, средний вес одной вещи в котором отличается не более чем на 0.3 кг от общего среднего веса вещи Файл: найти багаж, средний вес одной вещи в котором отличается не более чем на m кг от общего среднего веса одной вещи |
Модератор
|
|
22.04.2017, 22:27 | 2 |
Сообщение было отмечено Joey как решение
Решение
Попробовал сейчас по http://sysbin.com/files/lowlevel/nasm_windows.htm
Исходник привёл в obj nasm -fobj winhello.asm Скачал alink.zip, win32lib.zip https://sourceforge.net/projec... alink/1.6/ Распаковал к nasm. Слинковал x32 приложение для Windows alink -oPE winhello.obj win32.lib Запустил exe и увидел окошко с приветствием. Попутно попались inc файлы https://sourceforge.net/projects/nasmx/ Но ими ещё не пользовался.
1
|
Джоуи
|
|
22.04.2017, 22:32 [ТС] | 3 |
ФедосеевПавел, 1. так с nasm нет своего линковщика?
2. Почему нужно использовать сторонние линковщики для такой стандартной задачи? Или это не стороннее ПО? Не по теме: Или про nasm тоже можно сказать - сторонний компилятор?))
0
|
Модератор
|
|
22.04.2017, 22:56 | 4 |
Пять минут назад прочитал, что NASM - кроссплатформенный, а линкер требуется под конкретную платформу. Поэтому в NASM отказались от линкера.
Wikipedia предлагает Я так понимаю, что NASM чуть ли не единственный (кроме FASM) компилятор с синтаксисом MASM (Intel) под Linux. Поэтому очень ценимый в кругах разработчиков. Добавлено через 2 минуты Под "чуть ли не единственный" подразумевается отлаженный поддерживаемый инструмент, а не студенческая поделка.
1
|
Джоуи
|
||||||
22.04.2017, 23:02 [ТС] | 5 | |||||
Сообщение было отмечено ФедосеевПавел как решение
Решение
Прекрасно, все сработало. Спасибо. И насчет линкера -
в точку, спасибо за цитату.
Да, тоже только сейчас нашел эти строки в Википедии, до этого как-то пропустил это место. Если кто-то забредет в эту тему, то вот что я сделал (код из Википедии):
Код
nasm -f win64 hello.asm golink hello.o kernel32.dll user32.dll hello.exe для компоновки для win64 согласно Вике нужен GoLink, взял с оф сайта http://www.godevtool.com/#linker
0
|
22.04.2017, 23:02 | |
22.04.2017, 23:02 | |
Помогаю со студенческими работами здесь
5
Структура: Найти багаж, средний вес одной вещи, в котором отличается не более чем на 0.3 кг от общего среднего веса одной вещи Тип данных запись: Найти багаж, средний вес одной вещи в котором отличается не более, чем на 0,3 кг от общего среднего веса одной вещи как создать exe Как создать *.exe? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |