Я пытаюсь создать новый файл с использованием языка ассемблера в MASM 6.11 и DOSBox в Windows 7. У меня есть установочный диск C, D, E как папки BIN, BINR и palce, где находятся мои программы. Когда я пытаюсь запустить свою программу на консоли, она застревает, но когда я ее дебютирую, использование команды команды CV прекращается нормально. Вот мой код:Создание и сохранение текстового файла в сборке
.model small
.stack 100h
.data
NazwaPliku db "dane.txt", 0
UchwytPliku dw ?
Napis db "ASSEMBLER"
.code
ASSUME cs: @code, ds: @data
mov ax, @data
mov ds, ax
main PROC
MOV AH,3CH
MOV CX,0
MOV DX,OFFSET NazwaPliku
INT 21H
MOV AH, 3DH
MOV AL, 0
MOV DX, OFFSET NazwaPliku
INT 21H
mov UchwytPliku, ax
MOV AH,40H
MOV BX, UchwytPliku
MOV DX,OFFSET Napis
MOV CX, 5
INT 21H
mov ah, 4Ch
mov al, 0
int 21h
main ENDP
END main
Я знаю, что это очень простая программа, но я не могу заставить его работать ...
Вы открываете файл дважды, с AH = 3Ch и AH = 3Dh. – ElderBug
Инициализация 'DS' не будет выполнена. Надавите строку 'main PROC' на две строки вверх. – rkhb
Кроме того, вы не создаете код доступа при открытии файла с помощью 'int 21h/ah = 3Dh'. Если вы хотите открыть файл для записи, вы должны использовать 'al = 1' или' al = 2'. И когда вы создаете файл с помощью 'int 21h/ah = 3Ch', вы должны сначала очистить' cl', если не хотите каких-либо специальных атрибутов в файле. – Michael