|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Янв 11, 2004 18:52:07 Дело такое пишу свой бут в Fasm'e, при компиляции com получается размером меньше чем 512 байт и гадский WinImage 6.0 отказывается его использовать как бут. Нельзя ли заставить сам фасм дополнять конечный файло до 512, а то с аглицким у меня пока еще хреново в доках понимаю процентов 50. А руками уже задолбало нули вбивать до нужного размера |
|
|
Дата: Янв 11, 2004 19:05:17 поробуй в конце написать align 512 это стандартный макрос, часто в фасме юзается |
|
|
Дата: Янв 11, 2004 19:18:54 Увы как был 50 бутов так и осталси паразит. :-( |
|
|
Дата: Янв 11, 2004 19:24:20 ну, может поробуешь "дубовый" вариант? в начеле ставишь метку _start, в конце - _size = $ - _start. и потом rb 512 - _size. |
|
|
Дата: Янв 11, 2004 19:37:55 Наверное, fasm оптимизирует :) попробуйте: align 512 org $-1 db 2 |
|
|
Дата: Янв 11, 2004 19:40:25 жаль, фасма нет щас под рукой. неужто простой алигн действительно не пашет? |
|
|
Дата: Янв 11, 2004 19:40:47 rb 512 - _size invalid instruction Хмм Fasmw 1.50 |
|
|
Дата: Янв 11, 2004 19:49:28 S_T_A_S_ и твой вариант тоже в обломе. А вообче прога такая: org 0x7c00 use16 xor ax,ax mov ah, 13h mov al, 01b mov bh, 0 mov bl, 15 mov cx, 24 mov dh, 0 mov dl, 0 mov bp, Message int 10h ret Message db "System disk is infected!",0 Это шефу на дискету подарок, а то замучал уже, артефактными вирусами, да еще и дискеты в дисководе бросает. |
|
|
Дата: Янв 11, 2004 19:51:33 так-с, качнул фасм, написал. вот:
format PE GUI 5.0
entry Main
_start:
Main:
xor eax, eax
ret
_size = $ - _start
times 4096 - _size db 0
пашет. действительно, если в конце сырца стоит деректива резервирования байт (и видимо, не только их), то нолики в файл не добавляются. надо будет потестить :) |
|
|
Дата: Янв 11, 2004 20:01:13 · Поправил: dz 3BePIOra Grenader, S_T_A_S_ Ваши варианты не работают в фасме 1.50... зато работает такой: посмотреть сколько весит файл, а затем дописать rb... иначе не получилось... Если после org 100h написать align 512 создастся файл около 260б (две инструкции по 2б). Почему так получается, я не понял... Похоже, что смещение 100h тоже записывается в файл... |
|
|
Дата: Янв 11, 2004 20:08:54 Grevgeny Вот, работает Добавте times 0x7c00+512-$ db 1 |
|
|
Дата: Янв 11, 2004 20:09:58 · Поправил: S_T_A_S_ dz 3BePIOra Да, мой вариант дает 513 байтов, причем и при org $-10 :( |
|
|
Дата: Янв 11, 2004 20:16:36 · Поправил: Grenader dz 3BePIOra а ты проверял? вот, только что компилил, фасм 1.50:
org 100h
_start:
xor eax, eax
ret
_size = $ - _start
times 4096 - _size db 0
на выходе - com-файл, ровно 4096 байт. S_T_A_S_ похоже org в фасме работет только для строк вида "org 100h", а вот для игр со счетчиком он не пригоден |
|
|
Дата: Янв 11, 2004 20:27:28 Grenader Извиняюсь, не заметил последней строчки... Действительно, с ней работает! |
|
|
Дата: Янв 11, 2004 20:30:37 Grenader Мда.. действительно.. а я так на это расчитывал :(( Буду искать другие пути. Или возвращаться на masm |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.042 |