其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
自制的 win32asm 下的 DbgPrint

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

工作一直没有着落,手上的事情却都搁置不顾。心态每况愈下,无一丝慰籍。

无聊之余,想到以后写程序时或许会用到些代码。现在想出一点,打发时间。

YONSMDEBUGTRACE 时 甚感舒服,可惜ABOUT上只有C的调用代码,于是写段 WIN32ASM 的代码,以后改进。

code:

01          .386
02          .model flatstdcall
03          option casemap :none
04  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
05  ; Include 文件定义
06  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
07  include \masm32\include\windows.inc
08  include \masm32\include\kernel32.inc
09  include \masm32\include\user32.inc
10  include \masm32\include\masm32.inc
11  
12  includelib \masm32\lib\kernel32.lib
13  includelib \masm32\lib\user32.lib
14  includelib \masm32\lib\masm32.lib
15  include     \masm32\macros\macros.asm
16  include     \masm32\macros\strings.mac
17  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
18  ; Equ 等值定义
19  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
20  EbNetBuffer_s     struct
21  
22  next        dd    ?
23  char        dd    ?
24  buffer    dd    ?
25  alength    dd    ?
26  
27  EbNetBuffer_s     ends
28  
29      .data?
30  EbNetBuffer    EbNetBuffer_s         <?>
31  hInstance        dd    ?
32  szbuffer        db    1024 dup (?)
33  
34      .code
35  DbgPrint    proc uses ebx edi esi debugcommon:dword,debugvalue:dword
36          local @buffer[256]:BYTE
37          local @addr[64]:BYTE
38  
39  mov        eaxebp
40  add        eax, 4h
41  mov        eax, [eax]
42  sub        eax, 5h
43  invoke    wsprintf, addr @addr, $CTA0("addr:00%lXh  ||  "), eax
44  invoke    wsprintf, addr @buffer, debugcommon, debugvalue
45  invoke    lstrcat, addr @addraddr @buffer
46  invoke    OutputDebugString, addr @addr    
47  ret
48  DbgPrint    endp
49  
50  start:
51          invoke    GetModuleHandle,NULL
52          mov        hInstance,eax    
53          invoke    RtlZeroMemory, addr EbNetBuffer, sizeof EbNetBuffer    
54          mov        [EbNetBuffer.next],31323334h
55          mov        [EbNetBuffer.char], 'abcd'    
56          invoke    DbgPrint, $CTA0("values is :%s"), addr EbNetBuffer
57          invoke    ExitProcess,NULL
58  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
59          end    start
60  

DbgPrint ,为了和 DebugPrint 有所区分,起了这个名字。相信以后会有用的,呵呵……




相关文章

相关软件