אני מסתכל לי בספר ורואה ש-56h נועדה כדי לשנות שמות של קבצים (או להזיז אותם כמובן..). AX מכיל את קוד השגיאה אם יש. וכן, ה-CF נקבע ל-1 כשיש שגיאה כלשהי.. עד כמה שהבנתי אפשר לבדוק בעזרת 59h מה היא השגיאה.. אלי
include macros.asm data segment msg db ´exist´,10,13,´$´ msg2 db ´not exist´,10,13,´$´ one db ´one.asm´ data ends sseg segment db 100h dup() sseg ends code segment assume cs:code,ds:data start:mov ax,data mov ds,ax mov ah,56H ; mov cx,0 lea dx,one int 21H jc err_make jmp cont_2 err_make: puts msg jmp ex cont_2uts msg2 ex: mov ah,4CH int 21h code ends end start
זה שאתה משתמש ב-59H שהיא בעצם פונקציה שבעזרתה משנים שמות קבצים. אתה לא מספק ארגומנט לשם קובץ חדש לכן לדעתי ההתנהגות של הפונקציה לא ברורה. תשתמש ב-3Dh, שתפקידה בכח הוא לפתוח קובץ (נניח לקריאה בלבד..) אלי