|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Апр 3, 2004 20:30:40 1) Как в фасме (и возможно ли такое) определить свой stub. 2) Как в фасме (и возможно ли такое:) определить расширение генерируемого файла. 3) Как консольной версии фасма указать %include%. - Не конкретный файл, а как указать деректорию в которой лежат инклуды (в GUI версии это пишется в ini-файле). 4) Где можно на русском языке почитать о макросах фасма (была попытка на wasm.ru написать статью о макросах, но на мой взгляд она провалилась, от разбора макросов ушли к банальному "hello word"). Причем интересует не просто упоминание о макросах, а их конкретное использование: спасибо S_T_A_S_'у - показал как можно рекурсивно вызывать макросы и показал работу fix. |
|
|
Дата: Апр 3, 2004 20:59:12 · Поправил: S_T_A_S_ 1. format PE GUI 4.0 at 400000h on "mystub.exe" 2. fasm source.asm output.anything (вообще его даже как конвертер CP866->КОИ8 можно юзать, создать макрос и файл для табличной конверсии) 3. Если мастдай, то в autoexec.bat написать SET (как и PATH) Если в NT - мой комп.->свойства системы->дополнительно->пременные среды->системные переменные-> создать Fasminc начиная с версии 1.52 поддреживает перечень перечень путей разделенных двоеточием (релиз будет на днях) 4. На английском очень подробного описания нет. Есть только доки и форум. Так что остается только ждать.. пока кто-нибудь не напишит ;-) |
|
|
Дата: Апр 3, 2004 21:12:55 2S_T_A_S_: 1. format PE GUI 4.0 at 400000h on "mystub.exe" mystub.exe или mystub.com? 2. fasm source.asm output.anything это для консольной версии, а вот для GUI как? я имел ввиду может деректива какая есть, ведь format - может изменять рассширение, думал тут надо копать. начиная с версии 1.52 поддреживает перечень перечень путей разделенных двоеточием поясни (релиз будет на днях) ждемссс 4. Где бы на английском найти ? :) |
|
|
Дата: Апр 3, 2004 21:49:21 1. stub - это MZ format exe файл (как его делать см. архив assembker.ru на этом сайте) 2. Для GUI нельзя afaik, Да и смысл? format меняет формат, а расширение уже от него зависит начиная с версии 1.52 поддреживает перечень перечень путей разделенных двоеточием т.е. можно писать путь не к одному каталогу как раньше, а к нескольким, разделять точкой с запятой (четот я напутал). ФАСМ будет поочереди их просматривать |
|
|
Дата: Апр 4, 2004 15:31:30 ждемссс Уже есть |
|
|
Дата: Апр 7, 2004 17:01:49 Правка S_T_A_S_ Ага, если бы всё было так замечательно… 1. Раньше можно было написать ... on '%fasminc%\..\bin\mystub.exe' сейчас — нет! 2. Было объявлено, что можно не писать '%fasminc% - но это только для директивы include? 3. создать Fasminc Сейчас зачем-то смотрит не %FASMINC%, а %INCLUDE% 4. Почему не сделать в FASM'e встроенные макроконстанты? Типа FASM_VERSION, а то разные версии несовместимы теперь! |
|
|
Дата: Апр 7, 2004 22:22:26 IceStudent Сейчас зачем-то смотрит не %FASMINC%, а %INCLUDE% Хм пропустил.. Я все равно не юзаю никаких переменных - все пути относительные. Типа FASM_VERSION Можно проверять PE заголовок использую "load" - FASM заполняет LINKER VERSION. Только надо ли это ? |
|
|
Дата: Сен 27, 2004 12:25:47 Туплю наверное , фасм так не может посчитать ? Пишет "invalid use of symbol" . ("@@: mov eax" - просто для примера) @@: mov eax,80000h-$ |
|
|
Дата: Сен 27, 2004 15:44:23 Если так: mov eax, 80000h sub eax, $ |
|
|
Дата: Сен 27, 2004 15:54:07 Кстати, почему именно 80000h-$ ?? Вот так будет вполне нормально: mov eax, $-80000h А в первом случае у тебя скорее всего получается отрицательное число |
|
|
Дата: Сен 27, 2004 16:02:44 Так я лучше ручками посчитаю :) $ - это же известно на момент компиляции , почему $-1 компилит , а 1-$ нет ? |
|
|
Дата: Сен 27, 2004 16:39:30 Тут всё немного сложнее, чем может показаться. Адрес загрузки PE файла (теоретически) не известен, поэтому сложно вычислить абсолютное значение метки ( не обязательно $). В случае с mov eax,80000h + $ компиляция проходит, в надежде, что будет создана секция с релоками директивой data fixups. Возможно, я недопонимаю что-то про релокацию, но IMHO корректировку "отрицательного ареса" метки просто невозможно произвести при загрузке PE. С EXE'щниками всё просто - адрес загрузки можно сделать фиксированный, и вычислить значение метки во время компиляции: IMAGE_BASE = 400000h format pe at IMAGE_BASE @@: mov eax,80000h-(IMAGE_BASE+RVA $) ЗЫ В MASM "минус" работает на EXE'щниках - это вероятно заслуга линкера. |
|
|
Дата: Сен 27, 2004 18:49:44 А у меня масм не компилит на exe , говорит "operand must be relocatable" . |
|
|
Дата: Сен 28, 2004 11:12:04 Да, у меня он тоже так "компилит" (v7). Дело в том, что я вроде бы видел (на board.flatassembler.net ?) кто-то задавал подобный вопрос и утверждал, что именно масм такое выражение переваривает. Возможно я что-то и спутал, или может быть речь шла про старый masm (v6), а теперь этот "глюк испраили". К сожалению щас найти не могу (инет совсем плохой стал :(), попозже постараюсь. А старого масма у меня уже почему-то (?) нет. |
|
|
Дата: Сен 28, 2004 11:38:18 Не надо искать , это не суть важно и старый (6.12) тоже не компилит . Я просто догнать не мог причём база образа , ведь при простом использовании метки компилер её знает и компилит (push $ получиться push 401000) , а в случае push 1-$ (push FFBFF001) почему-то нужны релоки . |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.069 |