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

📄 conv.asm

📁 一个十六进制编辑器源代码,cool!
💻 ASM
字号:
include dw2bin.asm
include str2ascii.asm
_DlgConvProc proto :DWORD,:DWORD,:DWORD,:DWORD
_CopyDataTo	proto:DWORD ,:DWORD ,:DWORD 
.data
	szConvType db 'Hex->DWORD',0
				db	'Hex->Bin',0
				db 'DWORD->Hex',0
				db 'DWORD->Bin',0
				db 'Str->Ascii',0
				db	0

.CODE
_DlgConvProc proc uses edi @hDlg,uMsg,wParam,lParam
local @szBuf[50]:BYTE ,@szBufAsc[200]:BYTE 
	mov eax,uMsg
	.if eax==WM_INITDIALOG 
		lea edi,szConvType
		.while BYTE ptr [edi]
			__senddlgmessage 1006,CB_ADDSTRING ,0,edi
			invoke lstrlen,edi
			add edi,eax
			inc edi
		.endw
		__senddlgmessage 1006,CB_SETCURSEL 
	.elseif eax==WM_COMMAND 
		mov eax,wParam
		mov edi,eax
		shr eax,16
		.if ax==CBN_SELCHANGE || (ax==EN_CHANGE && di==1000)				
			lea edi,@szBuf
			__senddlgmessage 1006,CB_GETCURSEL 
			.if eax==0
				invoke GetDlgItemText,@hDlg,1000,edi,50
				invoke H2DW,edi
				invoke SetDlgItemInt,@hDlg,1001,eax,TRUE
			.elseif eax==1
				invoke GetDlgItemText,@hDlg,1000,edi,50
				invoke H2DW,edi
				invoke dw2bin,eax,edi
				invoke SetDlgItemText,@hDlg,1001,edi
			.elseif eax==2
				invoke GetDlgItemInt,@hDlg,1000,0,TRUE 
				invoke wsprintf,edi,addr szFmHexD,eax
				invoke SetDlgItemText,@hDlg,1001,edi
			.elseif eax==3
				invoke GetDlgItemInt,@hDlg,1000,0,TRUE 
				invoke dw2bin,eax,edi
				invoke SetDlgItemText,@hDlg,1001,edi
			.elseif eax==4
				invoke GetDlgItemText,@hDlg,1000,edi,50
				mov @szBufAsc,0
				invoke str2ascii,edi,addr @szBufAsc
				invoke SetDlgItemText,@hDlg,1001,addr @szBufAsc 
			.endif
		.endif		
	.elseif eax==WM_CLOSE 
		invoke ShowWindow,@hDlg,SW_HIDE 
	.else
		xor eax,eax
		ret
	.endif
	mov eax,TRUE
	ret
_DlgConvProc endp

⌨️ 快捷键说明

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