|
16 / 16 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
|
|
Как создать объектный файл02.03.2014, 16:22. Показов 24134. Ответов 27
Метки нет (Все метки)
0
|
|
| 02.03.2014, 16:22 | |
|
Ответы с готовыми решениями:
27
Как создать объектный файл? Объектный файл не создается объектный файл в TASM |
|
Ушел с форума
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
|
|
| 02.03.2014, 16:57 | |
|
obj-файл под DOS или под Windows?
0
|
|
|
16 / 16 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
|
|
| 02.03.2014, 18:11 [ТС] | |
|
Что-то произошло, как бы малозаметное милькание. Под виндовс.
Добавлено через 2 минуты Где его искать, объектный файл? Добавлено через 1 час 7 минут Не разобрался. D:\masm32 это папка с подпапками ассемблера D:\MYPROG\atest.asm это моя программа Как создать обьектны файл в D:\MYPROG ?
0
|
|
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
|
| 02.03.2014, 18:42 | |
|
Объектный файл будет создан в текущем каталоге (папке).
Перемещайся в каталог (папку) с твоей программой cd D:\MYPROG И будучи там запускай ассемблер, указав операционке где его брать : D:\MASM32\BIN\ml ключи atest.asm , это если у тебя MASM32 инсталлирован в папку D:\MASM32
1
|
|
|
16 / 16 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
|
|
| 02.03.2014, 19:10 [ТС] | |
|
Спасибо! Попробую
Добавлено через 1 минуту Ну да, инсталлирован в папку D:\MASM32 Добавлено через 16 минут То есть так? cd D:\MYPROG D:\MASM32\BIN\ml Так выходит ошибка, а так D:\MYPROG D:\MASM32\BIN\ml попадаю в папку D:\MYPROG И так D:\MYPROG D:\masm32\topgun.exe попадаю в папку D:\MYPROG
0
|
|
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
|
| 02.03.2014, 19:31 | |
|
>То есть так? cd D:\MYPROG D:\MASM32\BIN\ml
Да не в одну строчку. Это две отдельные команды.
2
|
|
|
16 / 16 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
|
|
| 03.03.2014, 16:02 [ТС] | |
|
М-да... Позвольте начать с командной строки. как в ней двигаца назад?? Часто бывает ошибка , да и вообще.. Уже кучу разных клавиш наугад перепробовал.
0
|
|
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
|
| 03.03.2014, 16:45 | |
|
В чистой командной строке мало средств редактирования. Ошибся, нажимаешь Backspace несколько раз, забивая набранное неправильно, потом вписываешь правильно. Ну и нажатие F3 вспоминает последнюю исполненную команду.
Очень удобно работать с командной строкой из под FAR. Ctrl-стрелка тогда перемещает курсор по кускам команды а строке. Ctrl-E вспоминает последнюю набранную команду. Alt-F8 выдает список уже набранных команд из которого можно выбрать. Можно вставлять в командную строку из буфера обмена по Shift-Ins. Другой удобный способ - создать BAT-файл с командами командной строки и уже его запускать. BAT-файл можно редактировать как текстовый файл, например в блокноте. Добавлено через 1 минуту Наиболее удобный способ - работать с BAT-файлом сидя в FAR Manager-е Добавлено через 5 минут Те кто начинали в MS-DOS под Norton Commander-ом или Волков-коммандером или DOS-Navigator-ом типично сидят в FAR-е, поскольку для них интерфейс Виндоуз - это только время терять. Почти что угодно в FAR-е делается в несколько раз быстрее. У интерфейса Виндоуз только одно преимущество - он интуитивно понятен людям, которые компьютер видят первый раз. Добавлено через 2 минуты А чистой командной строкой, получаемой по cmd.exe, пользуются только мазохисты или на чужом компе, на котором FAR-а нет.
2
|
|
|
Ушел с форума
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
|
|||||||||||||||||||||||||||||||||||||||||
| 03.03.2014, 17:17 | |||||||||||||||||||||||||||||||||||||||||
Сообщение было отмечено Taatshi как решение
Решение
Dimka-novitsek,
я расскажу как использую один единственный бат-файл для работы с разными ассемблерами (tasm, masm, fasm, nasm, goasm) и при этом создаю разные типы файлов COM, EXE for DOS, EXE for Windows, SYS, DLL при желании можете продлить этот список самостоятельно... Как создать универсальный bat-файл Действительно, приходится писать и под DOS, и под Windows, используя TASM, MASM, WASM (Watcom Assembler), FASM, NASM ― наш исходный файл имеет стандартное расширение asm, а в качестве результата требуется com, exe, dll, lib... А если мы пишем exe-файл для Windows ― тогда по разному нужно собирать exe под console или gui... Можно ли предельно упростить сборку из ASM-файлов и при этом не писать каждый раз новый bat-файл? Для начала напишем bat-файл, который по щелчку мыши или по нажатию на Enter создает gui-шный файл под Windows, причем, если в той же папке будет rc-файл с тем же именем, тогда к нашему obj-файлу будет добавлен res-файл. Полетели! Пишем asm.bat следующего содержания
Far Menager, так же как до этого Norton commander, можно «приучить» к определенным действиям с файлами, имеющими одинаковое расширение. Far Menager поддерживает ассоциации файлов, которые позволяют задавать разнообразные действия на запуск, редактирование и просмотр файлов, заданных маской (в данном случае маска «*.asm»). Можно добавлять новые ассоциации с помощью команды «Ассоциация файлов» в «Меню команд». Можно задать несколько ассоциаций для одного типа файлов и выбрать желаемую ассоциацию из меню. В списке ассоциаций доступны следующие действия: Ins ― добавить новую ассоциацию; F4 ― изменить настройки текущей ассоциации; Del ― удалить текущую ассоциацию. При запуске из командной строки, мы пишем примерно следующее:
Теперь нужно подправить наш asm.bat ― на первой строке пишем
Разделим наш asm-bat на несколько частей, допустим, в первой части asm.bat строки, которые собирают COM-файлы, во второй части ― строки, которые собирают из asm-файла EXE-файлы для DOS, в третьей ― EXE-файлы для Windows (причем, когда нам нужен GUI подставляется параметр /SUBSYSTEM:WINDOWS а когда нужна консоль ― параметр /SUBSYSTEM:CONSOLE), в четвертой ― DLL-файлы, в пятой ― SYS-файлы и т.д., а часть строк asm-bat будет общей для удаления «мусора» в виде obj-файлов и т.п. Пусть первая строка нашего asm-файла скажет нашему универсальному bat-файлу какой тип файла у нас должен получиться в результате компиляции и линковки, для какой операционной системы (Windows, DOS) этот файл будет предназначен и каким ассемблером его нужно компилировать и линковать. Если первую строку в asm-файле закомменировать, то она будет игнорироваться компилятором, но будет восприниматься командным процессором, который, в свою очередь, игнорирует символ «точка с запятой». Итак первая строка asm-файла ― мы пишем на masm-диалекте и хотим получить com-файл под dos:
Небольшие пояснения : :read_settings ― это имя нашей процедуры Процедура читает первую строку asm-файла и работает с первыми пятью лексемами, разделенными пробелами или табуляцией и сопоставляет их с переменными начиная с %%A. Первое поле ― знак ";" экранирует всю строку, второе поле ― %%A, третье ― %%B, четвертое ― %%C, если пятое поле равно "#" ― выходим из процедуры. for Запуск некоторой команды для каждого файла из заданного множества. for {%переменная|%%переменная} in (множество) do команда {%переменная|%%переменная} Используйте %переменная для выполнения команды for из командной строки. Используйте %%переменная для выполнения команды for в пакетном файле. Переменные учитывают регистр и могут быть представлены со значением альфа, например, %A, %B или %C. (множество) Задает один или несколько файлов, каталогов, диапазон значений или текстовых строк, подлежащих обработке заданной командой. Скобки являются обязательными. команда Задает команду, которая будет выполнена для каждого файла, каталога диапазона значений или текстовой строки, включенной в указанный параметр (множество). /f передает первый отделенный пробелом элемент из каждой строки каждого файла. eol=# Задает символ конца строки (end of line). tokens=x,y,m-n Задает элементы, передаваемые из каждой строки в тело цикла for при каждой итерации. В результате размещаются дополнительные имена переменных. Форма m-n задает диапазон, указывающий элементы с m-го по n-ый. set переменная= Указывает имя переменной, значение которой требуется задать или изменить exit /b Выход из текущего пакетного сценария goto метка В пакетной программе передает управление Windows XP в строку, определенную меткой. Когда метка найдена, выполнение продолжается со следующей за ней строки. call :метка [аргументы] :метка Указывает метку, на которую должно быть передано управление программы пакетной обработки. При использовании команды call с этим параметром создается новый контекст пакетного файла, а управление передается инструкции, следующей за указанной меткой. Когда первый раз встречается конец пакетного файла (после перехода на метку), управление возвращается на инструкцию, следующую за инструкцией call. При втором достижении конца файла выполнение пакетной программы прекращается. Команда goto :eof позволяет возвращать управление из пакетной программы. аргументы Задает данные командной строки, которые передаются в новый экземпляр программы пакетной обработки, начинающейся с :метки, включая параметры командной строки, имена файлов, пакетные параметры (в диапазоне от %1 до %9) или переменные (например %filename%).
ниже полное содержание asm.bat, который я использую на своем компьютере
5
|
|||||||||||||||||||||||||||||||||||||||||
|
16 / 16 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
|
|
| 03.03.2014, 22:50 [ТС] | |
|
Получившийся bat-файл производит какое-то мелькание, при его работе неясно промелькивает черный квадрат- и все.
Огромное спасибо конечно за столь развернутый ответ!
0
|
|
|
Эксперт быдлокодинга
2094 / 528 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
|
|
| 03.03.2014, 23:25 | |
|
1
|
|
|
16 / 16 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
|
|
| 04.03.2014, 00:18 [ТС] | |
|
Вот
0
|
|
|
16 / 16 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
|
|
| 04.03.2014, 00:21 [ТС] | |
|
Но ведь должен быть .obj файл?
0
|
|
|
Эксперт быдлокодинга
2094 / 528 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
|
||
| 04.03.2014, 00:31 | ||
|
1
|
||
|
Ушел с форума
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
|
||||||||
| 04.03.2014, 02:59 | ||||||||
Сообщение было отмечено Taatshi как решение
Решение
1
|
||||||||
|
16 / 16 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
|
|
| 04.03.2014, 23:57 [ТС] | |
|
Атеперь позвольте разобрать более пошагово. Я в нотепаде дополняю строки батника комментариями.
Первый аргумент после имени программы обозначают как %1. Можно подробнее? Добавлено через 6 часов 45 минут А может кто-нибудь закомментировать строки бат-файла, что они делают?
0
|
|
|
Ушел с форума
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
|
||
| 05.03.2014, 04:27 | ||
|
а может быть ты сам попробуешь комментировать и при этом внимательно будешь читать и в некоторых случаях перечитывать топик #9 и если комментарии будут неправильными, то я поправлю
1
|
||
|
16 / 16 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
|
||||||
| 06.03.2014, 01:09 [ТС] | ||||||
Подитожу В общем, не понятны все команды, пиредающиеся через обратную дробь!! Причом я час гуглил на все лады. А так же неепонятно это || exit что это с чем соединяется и куда выходит. В общем мне 100% непонятны все нижние строки. Ну а моя справка говорит, что ,, эта команда не поддерживается,, .
0
|
||||||
|
131 / 67 / 10
Регистрация: 13.05.2013
Сообщений: 437
|
|||||
| 06.03.2014, 03:43 | |||||
Сообщение было отмечено как решение
Решение
3
|
|||||
|
16 / 16 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
|
|
| 07.03.2014, 00:14 [ТС] | |
|
/v Команда для mc.exe, отображает сообщения о ходе компиляции.
Куда отображает? Это важно для дальнейшего выполнения программы? Добавлено через 18 минут %masm_path%\bin\rc /v %filename%.rc rem /v Команда для mc.exe, отображает сообщения о ходе компиляции. Я нашол rc.exe Это Microsoft Resource Compiler А почему в этой строке дана /v Команда для mc.exe, тогда как вроде бы вызывается rc.exe?
0
|
|
| 07.03.2014, 00:14 | |
|
Помогаю со студенческими работами здесь
20
Как создать COM-файл? Как создать *.lib файл Как подключить объектный файл из другого проекта? Объектный файл Не создаётся объектный файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|