· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Fasm: секция неинициализированых данных

Посл.отвђт Сообщенiе


Дата: Июн 15, 2004 10:20:02

Как сделать сабж?
Т.е. секцию, которая не лежит в файле, а только в памяти. Т.е. File Size ее равен 0. :)
А то много нулей в файле слишком.
ЗЫ: пожать файл не предлагать.
ЗЗЫ: править руками тоже не предлагать.


Дата: Июн 15, 2004 10:28:37

Смотри исходники FASMW, т.е. гуевой версии, там секция .udata как раз такая как тебе нужно ;-)))


Дата: Июн 15, 2004 13:34:41

Если в конце любой секции написать, скажем, rd 2000h, то эти байты не будут включены в файл, но при загрузке место будет выделено.
Можно так сделать и пустую секцию. Причём, нормально работает и 80Мб :). Это же не MASM ;-)


Дата: Июн 15, 2004 17:31:46

Как мне представляется нет необходимости в создании отдельно секции, можно подставить вместо db, dw, dd и т.д. rb,rw,rd.


Дата: Июн 15, 2004 18:29:47

Проблему удалось решить вынесением данных в отдельную секцию. Только записал я их не так:
dwVar dd 0
а так:
dwVar dd ?
:)
Вот, в принципе, и все.

ЗЫ: предлагаю переместить тему в хельхейм.


Дата: Июн 16, 2004 10:23:44

n0p
не обязательно было делать новую секцию, помоему проще было сделать так:
format PE GUI 4.0

section 'all' data code readable writeable executable

entry $
	lea	edx, [b3]
	lea	eax, [w3]
	sub	eax, edx

; инициализированные данные
b1	db 11h
w1	dw 2222h
d1	dd 33333333h

; неинициализированные данные
b2	db ?
w2	dw ?
d2	dd ?

; неинициализированные массивы данных
b3	rb 100h
w3	rw 100h
d3	rw 100h

; ради интереса раскоментируй строчку ниже, и скомпили:)
;        db 0


Дата: Июн 16, 2004 18:59:36

JaDS
Базара нет, проще. %) Особенно в проекте, у которого сорцы ядра уже за 50к перевалили. А ориентировочный вес сорцов ядра - около 200к. Знаешь как удобно будет искать нужную переменную при такой записи?

ЗЫ: извините, не смог сдержаться.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.077