עזרה קטנה באסמבלי---------------->

zontar

New member
עזרה קטנה באסמבלי---------------->

אני זקוק בבקשה להסבר קטן על פקודת 56H (לבדיקה אם קובץ קיים בספריה מסויימת). איך מיישמים את הפקודה (האם CF מורם כאשר הקובץ לא נמצא?) תודה.
 

voguemaster

New member
הממ

אני מסתכל לי בספר ורואה ש-56h נועדה כדי לשנות שמות של קבצים (או להזיז אותם כמובן..). AX מכיל את קוד השגיאה אם יש. וכן, ה-CF נקבע ל-1 כשיש שגיאה כלשהי.. עד כמה שהבנתי אפשר לבדוק בעזרת 59h מה היא השגיאה.. אלי
 

zontar

New member
נכון,העניין שמשום מה CF לא נותן לי

תוצאה נכונה,ראה :
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_2:puts msg2 ex: mov ah,4CH int 21h code ends end start​
 

voguemaster

New member
מה שנראה לי

זה שאתה משתמש ב-59H שהיא בעצם פונקציה שבעזרתה משנים שמות קבצים. אתה לא מספק ארגומנט לשם קובץ חדש לכן לדעתי ההתנהגות של הפונקציה לא ברורה. תשתמש ב-3Dh, שתפקידה בכח הוא לפתוח קובץ (נניח לקריאה בלבד..) אלי
 
למעלה