I 32bit mi servivano per una questione di velocità: utilizzando il registro eax posso per esempio caricare 4 byte in memoria video alla volta invece che 2 byte alla volta se utilizzo il registro ax, il che si traduce in una routine con velocità praticamente DOPPIA. Il sorgente che avevo allegato funzionava correttamente anche a me, il problema sorgeva quando aggiungevo all'inizio del listato la riga
codice:
.386
che da quello che ho capito serve per poter utilizzare i registri a 32bit tipo eax, che sono stati introdotti appunto a partire dalla serie di microprocessori 386(ed io ho proprio montato un 386 nel computer col quale faccio e avvio questo programmino). Il sorgente potrebbe essere riscritto così(ed è quello che appunto a me non funziona!)
codice:
.386
.MODEL small
.STACK 100h

.CODE
START:
     MOV AX,0A000h
     MOV ES,AX
     
     MOV AX,0013h
     INT 10h
     
     MOV EAX,03030303h
     XOR DI,DI
     MOV CX,16000
     REP STOSD
     
     XOR AX,AX
     INT 16h

     MOV AX,0003h
     INT 10h

     MOV AH,4CH
     INT 21h
END START
Come avevo detto all'inizio, quando avvio l'eseguibile il sistema non passa alla modalità grafica, non si colora lo schermo, ma si limita ad attendere la pressione del tasto ed esce. Mi chiedo cosa ci sia di sbagliato nel codice...