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

📄 include.inc

📁 一个演示了用汇编语言编写的数据排序算法,源代码非常详细
💻 INC
📖 第 1 页 / 共 2 页
字号:
;-----------------------------------------------------------------------------------------
; The needed include files.
;-----------------------------------------------------------------------------------------

  include windows.inc
  include user32.inc
  include kernel32.inc
  include gdi32.inc
  include comctl32.inc
  include comdlg32.inc
  include oleaut32.inc
  include shell32.inc

  include masm32.inc

 include debug.inc
 DBGWIN_EXT_INFO = 0
 DBGWIN_DEBUG_ON = 1


;-----------------------------------------------------------------------------------------
; The needed libraries.
;-----------------------------------------------------------------------------------------

  includelib user32.lib
  includelib kernel32.lib
  includelib gdi32.lib
  includelib comctl32.lib
  includelib comdlg32.lib
  includelib oleaut32.lib
  includelib shell32.lib

  includelib masm32.lib

 includelib debug.lib


;-----------------------------------------------------------------------------------------
; Prototypes.
;-----------------------------------------------------------------------------------------

  FrameDialogProc      PROTO :HWND, :UINT, :WPARAM, :LPARAM
  GraphicDialogProc    PROTO :HWND, :UINT, :WPARAM, :LPARAM
  InfoDialogProc       PROTO :HWND, :UINT, :WPARAM, :LPARAM
  TableDialogProc      PROTO :HWND, :UINT, :WPARAM, :LPARAM


  QW2ASCII             PROTO :DWORD, :DWORD

  GetInitializationValue   PROTO :HWND, :HWND, :DWORD
  GetIntegerFromWindowText PROTO :HWND, :HWND, :DWORD, :DWORD

  ustr2dw              PROTO :DWORD


;-----------------------------------------------------------------------------------------
; Include the resource-ID constants.
;-----------------------------------------------------------------------------------------

  include resources.inc


;-----------------------------------------------------------------------------------------
; The SortInfo-structure.
;-----------------------------------------------------------------------------------------

SORT_INFO STRUCT
  fGraphic       BYTE  ?
  fSorting       BYTE  ?
  direction      BYTE  ?
  fDelayPosition BYTE  ?
  delay          DWORD ?
  numElements    DWORD ?
  lpElements     DWORD ?
  minValue       DWORD ?
  maxValue       DWORD ?
  randInitValue  DWORD ?

  hThread        DWORD ?
  lastTickCount  DWORD ?
  elapsedTime    DWORD ?
  cmpCounter     QWORD ?
  movCounter     QWORD ?
  usedMemory     DWORD ?
  hMemory        DWORD ?
  errorId        DWORD ?
SORT_INFO ENDS

STRUCURED_EXCEPTION_HANDLING STRUCT
  OrgEsp         DWORD ?
  OrgEbp         DWORD ?
  SaveEip        DWORD ?
STRUCURED_EXCEPTION_HANDLING ENDS



;-----------------------------------------------------------------------------------------
; The uninitialized data segment.
;-----------------------------------------------------------------------------------------

.data?

  ;---------------------------------------------------------------------------------------
  ;-- Dialog: Frame

    hDialogFrame  DWORD ?
    hTabControl   DWORD ?
    hMENU_Program DWORD ?

    TCI       TCITEM <>


  ;---------------------------------------------------------------------------------------
  ;-- Dialog: Table

    ;-------------------------------------------------------------------------------------
    ;-- Structures for working with list views.
    LVcol  LVCOLUMN <>
    LVitem LVITEM <>
    LVHTI  LVHITTESTINFO <>


    ;-------------------------------------------------------------------------------------
    ;-- Other structures.
    PT  POINT <>


    ;-------------------------------------------------------------------------------------
    ;-- Handles of the dialog items.
    hDialogTable DWORD ?

    hTableDialog_LV_Algorithms DWORD ?
    hTableDialog_SB DWORD ?
    hTableDialog_B_SelectAll DWORD ?
    hTableDialog_B_SelectNone DWORD ?
    hTableDialog_B_Start DWORD ?
    hTableDialog_CB_Data DWORD ?
    hTableDialog_CB_Elements DWORD ?
    hTableDialog_LV_Result DWORD ?
    hTableDialog_B_Options DWORD ?
    hTableDialog_CB_InitValue DWORD ?


    ;-------------------------------------------------------------------------------------
    ;-- Handles of the menues.
    hMENU_Options DWORD ?
    hMENU_ItemOptions DWORD ?


    ;-------------------------------------------------------------------------------------
    ;-- Addres of the old window procedure of the algorithm list view.
    lpWndProc_ListviewOld DWORD ?


  ;---------------------------------------------------------------------------------------
  ;-- Dialog: Graphic

    ;-------------------------------------------------------------------------------------
    ;-- Handles of the dialog items.
    hDialogGraphic DWORD ?

    hGraphicDialog_CB_Algorithm DWORD ?
    hGraphicDialog_CB_Data DWORD ?
    hGraphicDialog_CB_Elements DWORD ?
    hGraphicDialog_CB_Delay DWORD ?
    hGraphicDialog_S_Display DWORD ?
    hGraphicDialog_B_Start DWORD ?
    hGraphicDialog_B_Generate DWORD ?
    hGraphicDialog_CB_DelayPos DWORD ?
    hGraphicDialog_B_Options2 DWORD ?
    hGraphicDialog_CB_InitValue2 DWORD ?
    hGraphicDialog_SB DWORD ?


    ;-------------------------------------------------------------------------------------
    ;-- Handles of the menue.
    hMENU_Options2 DWORD ?


    ;-------------------------------------------------------------------------------------
    ;-- Handles of brushes and pens for painting the elements.
    hBrush_Background    DWORD ?
    hPen_BackgroundFrame DWORD ?
    hPen_Background      DWORD ?
    hPen_ComparedElement DWORD ?

    hPens_Array DWORD 128 DUP (?)


    ;-------------------------------------------------------------------------------------
    ;-- These variables contains the dimensions of the display window.
    Display_Right  DWORD ?
    Display_Bottom DWORD ?


    ;-------------------------------------------------------------------------------------
    ;-- Address of the old window procedure of the display window.
    lpDisplayProcOld DWORD ?


    ;-------------------------------------------------------------------------------------
    ;-- An array that contains the elements.
    ElementsArr     DWORD 128 DUP (?)


  ;---------------------------------------------------------------------------------------
  ;-- Dialog: Info

    ;-------------------------------------------------------------------------------------
    ;-- Handles of the dialog items.
    hDialogInfo DWORD ?

    hInfoDialog_S_Email         DWORD ?
    hInfoDialog_S_CodingCrew_de DWORD ?
    hInfoDialog_S_MASM32_com    DWORD ?


    ;-------------------------------------------------------------------------------------
    ;-- Address of the old window procedure of the 'links' (static controls).
    lpWndProcOld DWORD ?


    ;-------------------------------------------------------------------------------------
    ;-- The handle of the cursor.
    hCursor DWORD ?


    ;-------------------------------------------------------------------------------------
    ;-- Hover flag, signs whether the mouse is on a link or not.
    fHover BYTE ?


    ;-------------------------------------------------------------------------------------
    ;-- The LOGFONT-structure.
      LF LOGFONT <>


  ;---------------------------------------------------------------------------------------
  ;-- General:

    ;-------------------------------------------------------------------------------------
    ;-- Structure for working with the menues.
    MII MENUITEMINFO <>


    ;-------------------------------------------------------------------------------------
    ;-- The module handle of this program.
    hInstance DWORD ?


    ;-------------------------------------------------------------------------------------
    ;-- The handle of the active dialog.
    hCurrentDialog DWORD ?


    ;-------------------------------------------------------------------------------------
    ;-- The RECT-structure.
    Rect RECT <>


    ;-------------------------------------------------------------------------------------
    ;-- Structure that contains informations about the current sorting settings.
    SortInfo SORT_INFO <>


    ;-------------------------------------------------------------------------------------
    ;-- Structured exception handling structure.
    SEH STRUCURED_EXCEPTION_HANDLING <>
    
    
    ;-------------------------------------------------------------------------------------
    ;-- Other structures.
    OFN OPENFILENAME <>


    ;-------------------------------------------------------------------------------------
    ;-- The timer interval and the timer ID.
    TimerInterval EQU 100
    IDEvent_TIMER EQU 1000


    ;-------------------------------------------------------------------------------------
    ;-- A small buffer for working with strings.
    Buffer BYTE 256 DUP (?)


    ;-------------------------------------------------------------------------------------
    ;-- The buffers for filenames. The first one is used when entries shall be saved to
    ;-- file. The second one is used to save bitmaps. Four bytes are added to prevent a
    ;-- buffer overflow when appending the file extension to a string that is already
    ;-- MAX_PATH chars long.
    filename    BYTE (MAX_PATH + 4) DUP (?)
    filenameBMP BYTE (MAX_PATH + 4) DUP (?)



;-----------------------------------------------------------------------------------------
; The initialized data segment.
;-----------------------------------------------------------------------------------------

.data

  ;---------------------------------------------------------------------------------------
  ;-- Dialog: Frame


  ;---------------------------------------------------------------------------------------
  ;-- Dialog: Table

⌨️ 快捷键说明

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