⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 get_int.asm

📁 一个十六进制编辑器源代码,cool!
💻 ASM
字号:
_GetInt proto:DWORD ,:DWORD 
.code
;++++++++++取得一个EDIT控件的值,并自动判断是10进制,还是16进制+++++++++++++
_GetInt proc uses esi edx ecx @hDlg,nID
Local @szBuf[100]:BYTE
	lea esi,@szBuf
	invoke SendDlgItemMessage,@hDlg,nID,WM_GETTEXT ,100,esi
	mov dl,[esi]
	mov dh,[esi+1]
	mov cl,[esi+eax-1]
	mov ch,dl
	.if dx=='x0' || dx=='X0' || dx=="H&" || dx=="h&" ;是否为16进制
		lea eax,[esi+2]
		invoke h2dw,eax
	.elseif cl=='h' || cl=='H' ;是否为16进制
		mov BYTE ptr [esi+eax-1],0;去掉最后的h或H
		invoke H2DW,esi
	.else ;没有0x开头,也没有h结尾,则看是否包含a-f(A-F),如果包含,则是16进制,否则是十进制数值
		mov edx,esi
		lodsb
		.while al
			.if (al>='a' && al<='f') || (al>='A' && al<='F')
				invoke H2DW,edx
				ret
			.endif
			lodsb
		.endw			
		invoke GetDlgItemInt,@hDlg,nID,0,0
	.endif
	ret		
_GetInt endp
;---------------------------

⌨️ 快捷键说明

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