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

 WASM Phorum —› WASM.ASSEMBLER —› unicode в FASM

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


Дата: Апр 7, 2004 00:00:24

Привет всем!
Сразу скажу, что с unicode мне работать не приходилось, так что если дальше где будет есресь, пинайте смело :)

Тем не менее написал макрос, позволяющий создавать unicode строки, возможно кому-то будет полезно.
Используется файл-табличка для конверсии, так что можно конвертить не только русские символы наверное (с китайским, конечно, не пойдет)


format	PE GUI	4.0 at 400000h

data	import
	dd	RVA ExitProcess, 0, 0, RVA k32, RVA ExitProcess
	dd	RVA MessageBox, 0, 0, RVA u32, RVA MessageBox
	dd	0, 0, 0, 0, 0		;;  end of directory
k32	db	'kernel32.dll',0
u32	db	'user32.dll',0
EP	db	0,0, 'ExitProcess',0
MB	db	0,0, 'MessageBoxW',0
align 4
ExitProcess 	dd	RVA EP, 0
MessageBox 	dd	RVA MB, 0
end data


macro	du	[arg]
 {	local	..char, ..uchar, ..i
	..i = $
	du	arg
	repeat ($-..i)/2
		load	..char from ..i+(%-1)*2
		virtual
			file	'russian.a2u' :..char*2,2
			load	..uchar word from $-2
		end virtual
		store	word ..uchar at ..i+(%-1)*2
	end repeat }



entry	$
	
	push	64
	push	text
	push	caption
	push	0	
	call	[MessageBox]

	push	0
	call	[ExitProcess]

caption:	du 'Заголовок',0
text:		du 'Текст',0


_1000432035__russian.a2u


Дата: Апр 7, 2004 02:37:17

Privalov такой макрос уже не делал?


Дата: Апр 7, 2004 08:56:55

Я видел для преобразования регистра, а такой - нет :-?
Это только для версии 1.52+ подойдет, т.к. store используется


Дата: Апр 16, 2004 21:15:13


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