Here is a dialog box example coded with GAS V2.16.91 :

.intel_syntax noprefix
.global _start

.include "invoke.gi"
.include "Dlgbox.gi"

.data
DlgName:
    .asciz "MyDialog"

.bss
hInstance:
    .long 0
hCursor:
    .long 0

.text

_start:

invoke    GetModuleHandle,1,0
mov        hInstance,eax
invoke    DialogBoxParam,5,hInstance,OFFSET(DlgName),0,OFFSET(DlgProc),0
invoke    ExitProcess,1,eax


// DlgProc PROC hWnd:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD

DlgProc:

    push    ebp
    mov    ebp,esp

    cmp    dword ptr , WM_CLOSE
            jne    initdlg
            invoke  EndDialog,2,,0
            jmp    true

initdlg:

    cmp    dword ptr , WM_INITDIALOG
            jne    setcursor
            invoke  LoadCursor,2,0,IDC_CROSS
            mov    hCursor,eax
            jmp    true

setcursor:

    cmp    dword ptr , WM_SETCURSOR

jne      false
invoke    SetCursor,1,hCursor
jmp      true

false:

    xor    eax,eax
    pop    ebp
    ret    16

true:

    mov    eax,1
    pop    ebp
    ret    16
Attachments:
Posted on 2006-10-14 05:18:37 by Vortex