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
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...