|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 18, 2004 11:04:39 Добрые люди! Подскажите, как нужно объявлять секцию неинициализированных данный в фасме? Спасибо. |
|
|
Дата: Авг 18, 2004 13:03:47 Смотри исходники fasmw.asm |
|
|
Дата: Авг 18, 2004 17:02:03 Посмотрел... Во, как надо: section '.udata' readable writeable Но только перед кодом, иначе не работает. |
|
|
Дата: Авг 18, 2004 17:16:43 На самом деле можно даже не объявлять, а располагать неинициализированные данные после инициализированных в .data, причем строго после. |
|
|
Дата: Авг 18, 2004 17:42:11 a111 > Но только перед кодом, иначе не работает. Неверное утверждение ;-) format PE GUI 4.0 entry start include '%fasminc%\win32a.inc' section '.code' code readable writeable executable align 4 start: mov eax, buffer mov ecx, szCaption invoke ExitProcess, 0 section '.data' data readable writeable szCaption db "bla bla bla",0 ; можно раскомментарить и тоже будет работать ;section '.udata' readable writeable buffer rb 1000h section '.idata' import data readable writeable library kernel32,'KERNEL32.DLL' include '%fasminc%\APIA\KERNEL32.INC' |
|
|
Дата: Авг 18, 2004 19:56:20 Asterix Если так делать, то размер файла будет зависеть от размера резервируемых данных. section '.data' data readable writeable szCaption db "bla bla bla",0 ; если не расскоментировать, файлик будет очень большой ;section '.udata' readable writeable buffer rd 10000h |
|
|
Дата: Авг 18, 2004 20:16:42 sensy Я не понял что ты мне хотел возразить, естественно я проверил прежде чем постить. Так section '.data' data readable writeable szCaption db "bla bla bla",0 ;section '.udata' readable writeable buffer rd 10000h размер файла получается 2048 байт Если так section '.data' data readable writeable szCaption db "bla bla bla",0 section '.udata' readable writeable buffer rd 10000h размер файла получается 2560 байт ps: fasm 1.54 |
|
|
Дата: Авг 19, 2004 03:43:52 sensy Размер изменился потому, что во втором случае была создана дополнительная секция. |
|
|
Дата: Авг 19, 2004 04:55:20 sensy > Если так делать, то размер файла будет зависеть от размера резервируемых данных. FASM умный :). Если в конце секции нули (или неинициализированные данные), то он их к Raw Size не добавляет, поэтому размер файла на винте не увеличивается. Если добавить строчку dd 1 в самый конец исходника, тогда файл будет большой. |
|
|
Дата: Авг 19, 2004 13:15:52 S_T_A_S_ Вот! Я это и имел ввиду. Хотя не помню, зачем я в конце секции ставил инициализированные данные, но, однажды напоровшись на такое поведение, стал выносить неинициализированные данные в отдельную секцию. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.048 |