שאלות על lodsw ו stosw והמקטע המשותף

עמוד

ברוכים הבאים לאתר תחרויות קודגורו! פורומים אקסטרים שאלות על lodsw ו stosw והמקטע המשותף

מוצגות 3 תגובות – 1 עד 3 (מתוך 3 סה״כ)
  • מאת
    תגובות
  • #80331
    ddt
    משתתף

    ) האם הכתיבה והקריאה למקטע המשותף נעשות רק באמצעות stosw (כתיבה) ו lodsw (קריאה)? למה דווקא נבחרו stosw ו lodsw לקריאה וכתיבה במקטע המשותף?
    האם אלו הפקודות היחידות שקיימות לטובת קריאה וכתיבה מהזכרון המשותף?
    כמה מידע קוראים וכותבים stosw ו lodsw?
    2) באילו אוגרים משתמשים stosw ו lodsw? האם ב SI ו DI? שניהם ביחד? או ששניהם קוראים וכותבים רק מ AX?
    3) האם lodsw ו stosw יכולות להיות מתורגמות למספר פקודות אחרות כדי להבהיר מה הן בדיוק עושות?
    4) מה יש בזכרון המשותף אם אף שורד לא כתב לשם עדיין? מה יקרה אם אחד מהשורדים ינסה לקרוא משם והשורד האחר עדיין לא כתב לשם כלום?
    איך אפשר לפתור את הבעיה הזאת אם יש באמת אחת כזו?
    5) איך ניתן ליישם מנגנון של טיימר בין שני שורדים מאותה הקבוצה? האם בכלל צריך מנגנון כזה כדי שהם יעבדו ביחד באיזשהו סינכרון?
    6) כיצד ניתן לזהות האם השורד היריב שאותו מנתחים מעביר מידע דרך המקטע המשותף?

    #80343
    CodeGuru
    מנהל בפורום
    1. כל פקודה שנגשת לזכרון יכולה לגשת גם למקטע המשותף. כל שצריך הוא לכוון את אוגרי המקטע אליו
    2. LODSW
      שקול ל
      mov ax,ds:[si]
      add si,2 או sub si.2
    3. STOSW
      שקול ל
      mov es:[di],ax
      add si,2 או sub si.2
    4. הזירה מאותחלת ל
      CCלא מצאתי בקוד איתחול למקטע המשותף – אבל זה לא נורא – קוראים ערך מקרי (אולי אפסים?) צריך לבדוק. בכל מקרה קריאת ערך לא מאותחל לא תגרום שום נזק.
    5. אפשר לסנכרן, וזה חשוב אם אתה רוצה לוודא שאתה קורא משהו רק אחרי שהצד השני סיים לכתוב.
    6. קוראים אותו ורואים מה הוא עושה
    #80352
    CodeGuru
    מנהל בפורום

    כל מה שהוא לא הזירה,מאותחל ל0x00 בכל הבתים שבו.

מוצגות 3 תגובות – 1 עד 3 (מתוך 3 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.