;------------------------------------------------;
; nome del modulo Assembly                       ;
; descrizione del programma                      ;
;------------------------------------------------;

; ################# direttive per l'assembler #################

.386                                ; set di istruzioni a 32 bit
.MODEL      FLAT, STDCALL           ; memory model & calling conventions
OPTION      CASEMAP: NONE           ; case sensitive on symbols

INCLUDE     ..\include\windows.inc  ; include file principale di Win32
INCLUDE     ..\include\user32.inc   ; interfaccia per USER32.LIB
INCLUDE     ..\include\kernel32.inc ; interfaccia per KERNEL32.LIB

INCLUDELIB  ..\lib\user32.lib       ; libreria servizi GUI
INCLUDELIB  ..\lib\kernel32.lib     ; libreria servizi kernel

; ################ segmento dati inizializzati #################

_DATA       SEGMENT  DWORD PUBLIC USE32 'DATA'

_DATA       ENDS

; ############## segmento dati non inizializzati ###############

_BSS        SEGMENT  DWORD PUBLIC USE32 'BSS'

_BSS        ENDS

; ################## segmento dati costanti ####################

_CONST      SEGMENT  DWORD PUBLIC USE32 'CONST'

_CONST      ENDS

; ####################### gruppo DGROUP ########################

DGROUP      GROUP    _DATA, _BSS, _CONST

; ##################### segmento di codice #####################

_TEXT       SEGMENT DWORD PUBLIC USE32 'CODE'

   ASSUME   cs: _TEXT, ds: _DGROUP, ss: _DGROUP

start:                              ; entry point del programma

   push     0                       ; exit code = 0
   call     ExitProcess             ; termina il programma

_TEXT       ENDS

; ##############################################################

   END      start                   ; fine del modulo