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

📄 main.asm

📁 用汇编的类编程实现快速排序的例子
💻 ASM
字号:
.386
.model flat, stdcall
option casemap :none   ; case sensitive
      
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 数据
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include      \masm32\include\windows.inc
include      \masm32\include\kernel32.inc
include      \masm32\include\user32.inc

includelib   \masm32\lib\kernel32.lib
includelib   \masm32\lib\user32.lib

include <..\..\..\Control\Class\Objects.inc>

   CTEXT MACRO y:VARARG 
       LOCAL sym
       
       CONST segment
           IFIDNI <y>,<>
               sym db 0
           ELSE
               sym db y,0
           ENDIF
       CONST ends
       EXITM <OFFSET sym>
   ENDM
   
   ;将M2值赋给M1
   m2m MACRO M1, M2
      push M2
      pop  M1
   ENDM

.data
    dwResult    dd     0
    hClass      dd     0
.code

_ShowConnect PROC _lpFormat:DWORD,_lpValue1:DWORD,_lpValue2:DWORD
   LOCAL @szBuffer[1024]:BYTE
   
   invoke RtlZeroMemory,addr @szBuffer,sizeof @szBuffer
   invoke wsprintf,addr @szBuffer,_lpFormat,_lpValue1,_lpValue2
   invoke OutputDebugString,addr @szBuffer
   invoke MessageBox,NULL,addr @szBuffer,CTEXT("提示"),MB_OK

   ret
_ShowConnect ENDP

include <CIoSort.asm>

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 程序开始
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
   invoke GetModuleHandle,NULL
   NEWOBJECT CLS_QUEUE,addr dwResult
   mov    hClass,eax
   method hClass,CLS_QUEUE,InsertClient,CTEXT("123456"),01h
   method hClass,CLS_QUEUE,InsertClient,CTEXT("123457"),02h
   method hClass,CLS_QUEUE,InsertClient,CTEXT("123455"),03h
   method hClass,CLS_QUEUE,InsertClient,CTEXT("123459"),04h
   method hClass,CLS_QUEUE,InsertClient,CTEXT("12345A"),05h
   method hClass,CLS_QUEUE,OutputFile,CTEXT("TSort0.txt")

   method hClass,CLS_QUEUE,DeleteClient,05h
   method hClass,CLS_QUEUE,OutputFile,CTEXT("TSort1.txt")

   method hClass,CLS_QUEUE,InsertClient,CTEXT("123459"),06h
   method hClass,CLS_QUEUE,InsertClient,CTEXT("123459"),07h
   method hClass,CLS_QUEUE,OutputFile,CTEXT("TSort2.txt")
   method hClass,CLS_QUEUE,InsertClient,CTEXT("12345A"),08h
   method hClass,CLS_QUEUE,OutputFile,CTEXT("TSort3.txt")
   method hClass,CLS_QUEUE,InsertClient,CTEXT("123458"),09h

   method hClass,CLS_QUEUE,DeleteClient,05h
   method hClass,CLS_QUEUE,DeleteClient,04h
   method hClass,CLS_QUEUE,DeleteClient,03h
   method hClass,CLS_QUEUE,DeleteClient,02h
   method hClass,CLS_QUEUE,DeleteClient,01h
   method hClass,CLS_QUEUE,DeleteClient,08h
   method hClass,CLS_QUEUE,DeleteClient,09h
   method hClass,CLS_QUEUE,OutputFile,CTEXT("TSort.txt")
   
   DESTROY hClass
   invoke ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   end   start

⌨️ 快捷键说明

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