Salve a tutti
Oggi ho ripreso dopo un po' di tempo il linguaggio Assembly 8086 e vorrei imparare le basi per riuscire a creare un file di testo,scriverci sopra e leggerlo.
Sono riuscito a creare un piccolo programmino che crea un file
Ora invece ho provato a creare un programma che crea un file e sopra dovrebbe scriverci la frase
"Hello World!" ma non viene scritto sul file.
Ecco il sorgente del codice:
DATA SEGMENT PUBLIC
FRASE DB "APERTURA E SCRITTURA SU FILE",10,13,'$'
NOME DB "prova.txt",0
CIAO DB "HELLO WORLD!",10,13,'$'
RIS DB "SCRITTURA COMPLETATA SU FILE",10,13,'$'
DATA ENDS ;CHIUSURA DEL SEGMENTO DEI DATI
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
INIZIO:
;CARICAMENTO DEI DATI
MOV AX,DATA
MOV DS,AX
MOV AH,09H
LEA DX,FRASE
INT 21H
MOV DX,OFFSET NOME ;CARICAMENTO DEL NOME DEL FILE
MOV CX,0 ;ATTRIBUTO DEL FILE --> 0=FILE NORMALE, 1 = SOLA LETTURA
MOV AH,3CH ;RICHIESTA CREAZIONE DEL FILE
INT 21H ;INTERRUPT CHE PERMETTE LA CREAZIONE DEL FILE
;APERTURA DEL FILE(CREATO PRIMA)
LEA DX,NOME ;CARICO IL NOME DEL FILE
MOV AL,1 ;ATTRIBUTI DI ACCESSO AL FILE --> 0 = LETTURA, 1 = SCRITTURA, 2 = LETTURA/SCRITTURA
MOV AH,3DH ;RICHIESTA DELLA APERTURA DEL FILE
INT 21H ;INTERRUPT CHE PERMETTE APERTURA DEL FILE
;SCRITTURA DELLA FRASE SU FILE
MOV AH,40H ;RICHIESTA SCRITTURA SU FILE
MOV CX, LENGTH CIAO ;LUNGHEZZA DEL MESSAGGIO(NUMERO DI BYTE DA SCRIVERE SUL FILE)
LEA DX,CIAO
INT 21H
;CHIUSURA DEL FILE
MOV AH,3Eh
LEA BX,NOME
INT 21H
MOV AH,09H
LEA DX,RIS
INT 21H
;RESTITUISCO CONTROLLO AL DOS
MOV AH,4CH
INT 21H
CODE ENDS ;CHIUSURA DEL SEGMENTO DEL CODICE
END INIZIO
Cosa ho sbagliato? Grazie