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

 WASM Phorum —› WASM.ASSEMBLER —› Туториалы из тайги

<< . 1 . 2 .

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


Дата: Июн 22, 2004 15:40:31

S_T_A_S_
> возможно Aquila захочет его положить в другое место.

Спасибо!
Я вот точно захочу, и даже уже переложил, в хорошее место, к себе на винт :-)


Дата: Июн 22, 2004 16:52:55

S_T_A_S_
Вот только я не понял про структуры.
В fasm'е структуры описываются так:
struc PROCESSINFO
 {
   .hProcess      dd ?
   .hThread       dd ?
   .dwProcessId   dd ?
   .dwThreadId    dd ?
 }
struct PROCESSINFO


Вот эта последняя строчка struct PROCESSINFO она обязательна или нет?


Дата: Июн 22, 2004 18:18:46 · Поправил: S_T_A_S_

Макрос struct определён так:
    macro	struct	name			
     {	virtual	at 0			
    		name	name		
    		sizeof.#name = $	
    	end virtual			
    	name	equ sizeof.#name }	
Он создаёт 2 идентификатора: sizeof.PROCESSINFO и PROCESSINFO равные размеру структуры.

Самое главное - struc только задаёт формат структуры.
Перед тем, как ваполнять что-то вроде mov eax, [ebx+PROCESSINFO.dwProcessId], необходимо этот формат к чему-то применить.
Вот struct и создаёт "виртуальный" объект с именем PROCESSINFO.
virtual at 0 задаёт его находящимся (как-бы) по адресу 0.
Сответственно, все элементы (члены) структуры примут свои "адреса"
И получится: mov eax, [ebx+8].
Смысл struc в твоём примере - определить локальные метки, которые потом прикрепятся к какой-то глобальной.

В общем-то это самое простое применение struc, иммитирующее аналоги из MASM/TASM.
А можно ведь внутри и макросы создавать.


Дата: Июн 22, 2004 20:07:39 · Поправил: Asterix

S_T_A_S_
Что это для макроса struct я понял, но почему это макрос не может определить размер структуры по символу }

Зы: лучше в chm'е использовать обычный фон, а то от жёлтого квадрата в глазах рябит ;-) Например такой..


[ATTACH]


Дата: Июн 22, 2004 20:41:24

[ Asterix : почему это макрос не может определить размер структуры по символу } ]

Тогда нужно было бы добавить в FASM специальную команду, вроде SizeOf.
Но struc можно написать таким образом, что размер будет зависеть от какого-то условия, тогда как быть.. а так всё Ok.


> лучше в chm'е использовать обычный фон, а то от жёлтого квадрата в глазах рябит ;-)

Дык у меня уже при любом фоне от него рябит, даже когда с закрытыми глазами смотрю :-)

<< . 1 . 2 .


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