С Новым годом! Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
2 / 2 / 0
Регистрация: 03.04.2013
Сообщений: 42
1

MASM32 - не создаётся obj файл

06.02.2014, 21:53. Показов 3333. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Начал учить ассемблер, написал программу которая выводит месседжбокс. Запускаю bin\ml.exe /c C:\1.asm, компиляция проходит без ошибок, а объектный файл для линковщика тупо не создается, нигде его нет, везде искал. ОС Windows 7 64-bit SP1 Ultimate. Антивируса на компе нет, вирусов тоже.

На всякий случай вот код программы:
Кликните здесь для просмотра всего текста
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
.386
.model flat
 
extrn ExitProcess:PROC
extrn MessageBoxA:PROC
 
.data
 
Ttl db "First ASSEMBLER program",0h
Msg db 'Hello, World!!!!',0h
 
.code
 
start:
     push 0h
         push offset Msg
         push offset Ttl
         push 0h
         call MessageBoxA
         push 0h
         call ExitProcess
end    start
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.02.2014, 21:53
Ответы с готовыми решениями:

Не создается .obj, при этом в .lst ошибки нет, но часть кода выпадает
.model small .stack 100 .data s db ? mes1 db "Tsifra$" mes2 db "Zaglavnaia bukva$"...

Не создается .obj, при этом в .lst ошибки нет, но часть кода выпадает
.model small .stack 100 .data s db ? mes1 db "Tsifra$" mes2 db "Zaglavnaia bukva$"...

Не создается файл .obj
Компилируется но не появляется файл .obj Что не так?

Файл obj создается не в ту директорию [ml]
Всем привет . Ml при создание obj файла почему то пихает его не в туже директорию где .asm а в ...

5
Ушел с форума
Автор FAQ
16341 / 7660 / 1076
Регистрация: 11.11.2010
Сообщений: 13,706
07.02.2014, 04:30 2
Loalcat,
то что у тебя написано предназначено для tasm32 для masm32 это должно выглядеть вот так
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
.data
MsgBoxCaption  db "First ASSEMBLER program",0
MsgBoxText     db "Hello, World!!!!",0
.code
start: invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OK
invoke ExitProcess, NULL
end start
компилируется строкой
Код
ml /c /coff /Cp 1.asm
для последующей линковки нужна строка
Код
link /SUBSYSTEM:WINDOWS  /LIBPATH:c:\masm32\lib  1.obj
2
2 / 2 / 0
Регистрация: 03.04.2013
Сообщений: 42
07.02.2014, 09:38  [ТС] 3
С этим кодом и этой командой для ml.exe всё равно не появляется объектник

Добавлено через 17 минут
Разобрался, оказывается masm32 компилит объектник в папку, которая указана в cmd.exe перед мигающим курсором, в моём случае это было C:\Users\Администратор, странно, но винда через поиск этот файл там не находила когда я запускал поиск по всем диску C:\
0
Ушел с форума
Автор FAQ
16341 / 7660 / 1076
Регистрация: 11.11.2010
Сообщений: 13,706
07.02.2014, 09:39 4
Loalcat,
да, ну? может в консерватории что-то не так? положи в папку masm32\bin свой исходный файл и если чегой-то не так - ml.exe ошибки выдает, так ты, будь добр, эти ошибки покажи, если сам не в состоянии разобраться...
0
2 / 2 / 0
Регистрация: 03.04.2013
Сообщений: 42
07.02.2014, 10:08  [ТС] 5
Вобщем объектник нашел, но линковщик на программу из второго поста пишет вот такое:

hlw.obj : error LNK2001: unresolved external symbol _MessageBoxA@16
hlw.obj : error LNK2001: unresolved external symbol _ExitProcess@4
LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup
hlw.exe : fatal error LNK1120: 3 unresolved externals
0
Ушел с форума
Автор FAQ
16341 / 7660 / 1076
Регистрация: 11.11.2010
Сообщений: 13,706
07.02.2014, 10:54 6
Loalcat,
судя по ошибкам, unresolved external symbol _MessageBoxA@16 и unresolved external symbol _ExitProcess@4
ты текст из второго поста в свой hlw.asm скопировал не полностью и окончится всё радостным криком
Разобрался, оказывается masm32 линкует объектник...
Давай сам разбирайся, что-то где-то, но криво делаешь, это точно...
попробуй линковать так
Код
link /SUBSYSTEM:WINDOWS  1.obj
0
07.02.2014, 10:54
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2014, 10:54
Помогаю со студенческими работами здесь

Есть программа, но не создается файл .obj
Вот код программы: ;Определяем стек STACKSG SEGMENT PARA STACK 'Stack' DW ...

При нажатии на кнопку файл не создается на диске, а он создается только после сворачивания или закрытия окна...
Знакомлюсь с графическим интерфейсом Java Swing. Появилась такая проблема: при нажатии на кнопку...

Не создаётся exe файл. Создаётся папка netcoreapp2.0
На рабочем компе всё нормально, exe лежит в Debug. На домашнем может с настройками что намудрил,...

Что такое h -файл и obj-файл?Зачем они нужны?
1.Что такое h -файл и obj-файл?Зачем они нужны?

как файл ....obj в exe файл сделать?
в MASM32 Editor для уин хр

Несмотря на подключение masm32.inc и masm32.lib не подтягиваются функции stdin и stdout
Собственно скрин.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru