八喜电子书 > 经管其他电子书 > windows环境下32位汇编语言程序设计 >

第68部分

windows环境下32位汇编语言程序设计-第68部分

小说: windows环境下32位汇编语言程序设计 字数: 每页4000字

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




_WalkTree           proc        _hFile;_lpWC;_lpsz

                        local   @dwTemp

                        local   @szWord'52':byte

 

                        pushad

                        mov     esi;_lpWC

                        assume  esi:ptr WORD_COUNT

                        。if     'esi'。dwDepth && 'esi'。dwCount

;********************************************************************

; 计算百分比并写入log文件

;********************************************************************

                        mov     eax;'esi'。dwCount

                        mov     ecx;1000

                        mul     ecx

                        mov     ecx;dwCount

                        。if     ecx

                                div     ecx

                        。else

                                mov     eax;0

                        。endif

                        invoke  wsprintf;addr szBuffer;

                                addr szFmtWord;'esi'。dwCount;eax;_lpsz

                        invoke  lstrlen;addr szBuffer

                        mov     ecx;eax

                        invoke  WriteFile;_hFile;addr szBuffer;

                                ecx;addr @dwTemp;NULL

                。endif

;********************************************************************

; 如果有下层结点则递归调用

;********************************************************************

                mov     @dwTemp;0

                。while  @dwTemp 《 26

                        mov     ebx;@dwTemp

                    mov     ebx;dword ptr 'esi+ebx*4'

                    。if     ebx

                            invoke  lstrcpy;addr @szWord;_lpsz

                            invoke  lstrlen;addr @szWord

                            lea     ecx;@szWord

                            add     ecx;eax

                            mov     eax;@dwTemp

                            add     al;'a'

                            mov     word ptr 'ecx';ax

                            invoke  _WalkTree;_hFile;ebx;addr @szWord

                    。endif

                    inc     @dwTemp

                    。endw

;********************************************************************

; 释放结点

;********************************************************************

                    。if     'esi'。dwDepth

                            invoke  GlobalFree;esi

                    。endif

                    popad

                    assume  esi:ptr WORD_COUNT

                    ret

 

_WalkTree       endp

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

; 如果输入的是字母则建立或移动到下一结点,输入0则增加结点计数

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

_CountLetter    proc        _dwLetter

                    local   @dwIndex

 

                    assume  edi:ptr WORD_COUNT

                    or      al;20h                      ;转换成小写字母

                    。if     (al 》= 'a') && (al 

返回目录 上一页 回到顶部 0 0

你可能喜欢的