Проверьте, существует ли файл, прежде чем создавать его на языке ассемблера
Я новичок в программировании на ассемблере, и мне было интересно, как я могу проверить, существует ли файл, когда я пытаюсь его создать. В этой программе я ожидал, что она выдаст ошибку, если файл с таким же именем существует в той же папке. Однако он просто игнорирует его и создает файл независимо от того, существует он или нет. Может ли кто-нибудь объяснить мне, почему это так? Ох, и я использую TASM для компиляции.
.model tiny
.stack 0100h
.data
org 01000h
file db 65,?,64 dup(?)
crstr1 db 'Enter file name to be created:$'
crstr2 db 'File successfuly created!'
db 'Press any key to continue . . .$'
crstr3 db 'File already exists or invalid name!$'
.code
main: jmp begin
begin:
mov ax, @data
mov ds, ax
CLEAR
GOTOXY 2,4
DISP crstr1
INP file
;file check
mov cx, 3fh
mov dx, offset file
mov ah, 4eh
int 21h
je error
mov ah, 3ch
mov dx, offset file
mov cx, 0
int 21h
;no error
CLEAR
GOTOXY 2,4
DISP crstr2
mov ah, 08
int 21h
jmp exit
error:
mov ah,02h
mov dh,6
mov dl,4
int 10h
mov ah, 09h
mov dx, offset crstr3
int 21h
exit:
int 20h
end main
end
1 ответ
Используйте JC, а не JE. Ошибка возвращается в флаге переноса.