HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 08.06.2007, 18:49
Piflit
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..
 
Ответить с цитированием

  #2  
Старый 08.06.2007, 14:33
taha
Постоянный
Регистрация: 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 кажется были опции
 
Ответить с цитированием

  #3  
Старый 08.06.2007, 15:07
NetMan
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
Провел на форуме:
1089794

Репутация: 134
По умолчанию

А не проще ли юзать какую-нибудь IDE? RadASM или WinASM, например?
 
Ответить с цитированием

  #4  
Старый 08.06.2007, 15:17
iv.
Познавший АНТИЧАТ
Регистрация: 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 для асма. Максимум нужны только в крупных проектах, чтоб не запутаться.
 
Ответить с цитированием

  #5  
Старый 08.06.2007, 17:54
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


По умолчанию

Эх.. Fasm Rulit - нету мозгоебки с компилом
 
Ответить с цитированием

  #6  
Старый 08.06.2007, 19:08
NetMan
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
Провел на форуме:
1089794

Репутация: 134
По умолчанию

После ассемблирования (с помощью ml) исходник превращается в промежуточную форму - объектный модуль (.obj). Для генерации exe'шника необходимо запустить компоновщик (link), указав ему объектный модуль.
 
Ответить с цитированием

  #7  
Старый 08.06.2007, 23:20
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


По умолчанию

Ну COM - это уже отжившее своё.
Такчто в любом случае лучше компилить EXE
Хотя у комов размер меньше.

Вообще у ассемблеров не очень большое различие.
Вот я с легкостью перешел с TASM на FASM и при этом я понял, что с FASM'a надо было начинать с самого начала. Потому что на нем можно тварить чудеса.
// Анекдот в тему: Решил хакер блины печь, первый блин как всегда вышел Комом, а второй уже EXE'шником
 
Ответить с цитированием

  #8  
Старый 08.06.2007, 23:23
Piflit
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме:
5128756

Репутация: 2032


По умолчанию

Цитата:
Сообщение от slesh  
// Анекдот в тему: Решил хакер блины печь, первый блин как всегда вышел Комом, а второй уже EXE'шником
в тему))

я тоже хотел начать с fasm'a, но не нашел подходящей литературы, поэтому пришлось поучить masm.
2 slesh, в чем основные различия tasm/masm и fasm? (наиболее интересен синтаксис)
 
Ответить с цитированием

  #9  
Старый 09.06.2007, 00:18
slesh
Познавший АНТИЧАТ
Регистрация: 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 можно ресурсы прописывать внутри кода программы.
 
Ответить с цитированием

  #10  
Старый 09.06.2007, 20:21
Piflit
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)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.