format_int.asm

来自「一个十六进制编辑器源代码,cool!」· 汇编 代码 · 共 43 行

ASM
43
字号
FM_FLOAT=0
FM_DOUBLE=1
FM_UCHAR=2
FM_CHAR=3
FM_USHORT=4
FM_SHORT=5
FM_LONG=6
FM_DWORD=7
FM_UINT64=8
FM_INT64=9
format_int proto:DWORD ,:DWORD ,:DWORD 

.code
;format_int
;将DWORD转换为另一种类型的数值,以字符串的形式返回转换结果
;参数
;lpBuf[out]:接受转换后的结果
;uType[in]:转换为何种类型,可取上面的FM_xxx
;nNumAddr[in]:要转换的数的地址
;返回值
;成功返回字符串的地址
;失败返回0
format_int proc lpBuf,uType,nNumAddr
	.if hInstDll
		invoke GetProcAddress,hInstDll,ctext("format_int")
		.if eax
			push nNumAddr
			push uType
			push lpBuf
			call eax
			test eax,eax
			jz @f
			mov eax,lpBuf;ok!!!
			ret
		.endif
	.endif
	;失败.....
@@:
	mov BYTE ptr [lpBuf],0
	xor eax,eax
	ret
format_int endp

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?