Проверьте, существует ли файл, прежде чем создавать его на языке ассемблера

Я новичок в программировании на ассемблере, и мне было интересно, как я могу проверить, существует ли файл, когда я пытаюсь его создать. В этой программе я ожидал, что она выдаст ошибку, если файл с таким же именем существует в той же папке. Однако он просто игнорирует его и создает файл независимо от того, существует он или нет. Может ли кто-нибудь объяснить мне, почему это так? Ох, и я использую 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. Ошибка возвращается в флаге переноса.

Другие вопросы по тегам