
08.06.2007, 18:49
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
Сообщение от slesh
ml.exe [имя_файла].asm /AT
чуть попозже выложу текст ошибки, которую масм выдает при таком способе=\
Сообщение от slesh
Эх.. Fasm Rulit - нету мозгоебки с компилом
возможно, но я уже купил книжку Калашникова, а она про masm. хотел в электронной версии прочитать, но решил купить.
еще вопрос: в каком случае надо компилить в com, а в каком в exe?
+еще один: зачем нужны файлы в расширении *.obj?
Спасибо!=)
Последний раз редактировалось Piflit; 08.06.2007 в 18:51..
|
|
|

08.06.2007, 14:33
|
|
Постоянный
Регистрация: 20.08.2006
Сообщений: 327
Провел на форуме: 2472378
Репутация:
1077
|
|
как компилировать *.asm сорцы в masm'e?
мой любимый способ:
создаешь example.bat туды пишешь
Код:
;@echo off
;goto make
.386
.model flat,stdcall
option casemap:none
include D:\masm32\include\windows.inc
include D:\masm32\include\user32.inc
include D:\masm32\include\kernel32.inc
includelib D:\masm32\lib\kernel32.lib
includelib D:\masm32\lib\user32.lib
.data
s_title db "Хэкк",0
s_zzz db "хэккерский хэккк",0
.code
start:
invoke MessageBox,0,addr s_zzz,addr s_title,0
invoke ExitProcess,0
end start
:make
set asmname=D:\example
title %asmname%.bat
D:\masm32\bin\ml /c /coff %asmname%.bat
D:\masm32\bin\link /SUBSYSTEM:WINDOWS /LIBPATH:D:\masm32\lib %asmname%.obj
del %asmname%.obj
echo
pause
запускаешь батник >>> .exe готов!!
и во что они должны скомпилиться, в exe или в com?
что компилятору и линкеру скажешь, то он и сделает.. (.exe .com .dll .sys .....)
на wasm.ru кажется были опции
|
|
|

08.06.2007, 15:07
|
|
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
Провел на форуме: 1089794
Репутация:
134
|
|
А не проще ли юзать какую-нибудь IDE? RadASM или WinASM, например?
|
|
|

08.06.2007, 15:17
|
|
Познавший АНТИЧАТ
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме: 7134052
Репутация:
1204
|
|
как компилировать *.asm сорцы в masm'e?
Командами:
ml /c /coff /Cp *.asm
link /SUBSYSTEM:CONSOLE *.obj
Флаги различны в зависимости от того, что на выходе хочешь. Навскидку что обозначают к сожалению уже не помню - смотри на wasm.ru
мой любимый способ:
создаешь example.bat туды пишешь
...
Оу, что-то не понял прикола, прошу пояснений. Твой способ у меня не сработал к сожалению. =)
А не проще ли юзать какую-нибудь IDE? RadASM или WinASM, например?
Да ну, имхо фигня эти все ide для асма. Максимум нужны только в крупных проектах, чтоб не запутаться.
|
|
|

08.06.2007, 17:54
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Эх.. Fasm Rulit - нету мозгоебки с компилом
|
|
|

08.06.2007, 19:08
|
|
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
Провел на форуме: 1089794
Репутация:
134
|
|
После ассемблирования (с помощью ml) исходник превращается в промежуточную форму - объектный модуль (.obj). Для генерации exe'шника необходимо запустить компоновщик (link), указав ему объектный модуль.
|
|
|

08.06.2007, 23:20
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Ну COM - это уже отжившее своё.
Такчто в любом случае лучше компилить EXE
Хотя у комов размер меньше.
Вообще у ассемблеров не очень большое различие.
Вот я с легкостью перешел с TASM на FASM и при этом я понял, что с FASM'a надо было начинать с самого начала. Потому что на нем можно тварить чудеса.
// Анекдот в тему: Решил хакер блины печь, первый блин как всегда вышел Комом, а второй уже EXE'шником
|
|
|

08.06.2007, 23:23
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
Сообщение от slesh
// Анекдот в тему: Решил хакер блины печь, первый блин как всегда вышел Комом, а второй уже EXE'шником
в тему))
я тоже хотел начать с fasm'a, но не нашел подходящей литературы, поэтому пришлось поучить masm.
2 slesh, в чем основные различия tasm/masm и fasm? (наиболее интересен синтаксис)
|
|
|

09.06.2007, 00:18
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
FASM рулит в том что не надо мучаться с компилом.
Все параметры компила пишутся в исходнике проги.
Вот к примеру некоторые из них:
1) format PE GUI at 5000000h - компилит в PE EXE под графическую оболочку и базовый адрес кода - 5000000h
2) format PE - тоже PE EXE но под консоль
3) format PE64 - под 64 битные системы
4) use16 - 16-ти битный bin файла
5) use32 - 32-х битный bin файла
6) format ELF - вообще под линух.
Ну и в томже духе. И вообще в FASM можно ресурсы прописывать внутри кода программы.
|
|
|

09.06.2007, 20:21
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
2 slesh
1. если указать в исходнике format PE или format PE GUI at 5000000h, то строчкой ниже надо писать use16 или use32?
2. почему com весит 25 байт, а ехе 1 кб, причем при запуске ехе вылезает ошибка. вот сам код:
Код:
format PE ; com компилился с format binary
use16 ; закомментивание этой строчки не помогло
org 100h
mov ah,9
mov dx,msg
int 21h
mov ah,0
int 16h
int 20h
msg db 'Hello World$'
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Вопросы для новичков! (faq)
|
PEPSICOLA |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
92 |
14.05.2010 17:59 |
|
ОС с нуля
|
z01b |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
36 |
03.07.2008 15:30 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|