פניה ל – es

עמוד
מוצגות 7 תגובות – 1 עד 7 (מתוך 7 סה״כ)
  • מאת
    תגובות
  • #77120
    QVB
    משתתף

    שלום,  נשמח לראות דוגמה לפניה למקטע הזכרון המשותף לשני שורדים.

    כל הניסיונות לפנות אליו גרמו למוות מיידי של השורד (כאילו הפניה היא פעולה לא חוקית)

    למה השורה הבאה למשל לא עובדת:

    mov dx, es:[0000]

    ואם אפשר דוגמה לשימוש תקין במקטע הזכרון הזה.

    תודה.

    #78616
    DL!
    משתתף

    The reason is that the engine doesn't implement "segment prefixes", and treats the "es:[0000]" part as invalid opcode.

    You have to access ES using other means, e.g. using stosw, or by copying ES to DS/SS and reading/writing through them.

    #78615
    LB_
    משתתף

    אם אני כותב עם STOSW, עם איזה פקודה אני קורא אחר כך ?

    #78614
    LB_
    משתתף

    I wrote to ES through STOSW.

    in the second program I wrote:

    push es

    pop ss

    mov ax,ss:[0000]

    it throws a CPU exeption when it executes the third command..

    #78612
    DL!
    משתתף

    Just like before, the reason is that the engine doesn't support "segment prefixes", only this time the problem is in ss:[0000].

    You have to use other means for doing it, e.g. (building on your code)-

    push es
    pop ss
    mov bp, 0
    mov ax, [bp]

    This works because indirect memory access using [bp] is done using the "ss" segment register.

    And obviously, this is not the only way to read from es:[0000] without using hard-coded segment prefixes.

    #78608
    Tnid
    משתתף

    אפשר לדעת למה המנוע לא תומך בזה?
    יש סיבה מסויימת או שלא הספקתם/ זה יצר בעיות וכו'?

    #78606
    DL!
    משתתף

    צריך להבין את ההיסטוריה של המנוע בשביל זה [8-|]

    המנוע נכתב במקור עבור קודגורו אקסטרים 2005 (ממש מאפס).
    מי שהשתתף בשנה שעברה בטח זוכר שלקראת התחרות הוצאנו גירסה חדשה של המנוע כמעט כל שבוע, כשבכל גירסה מתווספת תמיכה בעוד כמה אופקודים איזוטריים שאנשים ביקשו.

    בסופו של דבר היינו צריכים לתעדף, ותמיכה ב-
    segment prefixes
    תועדפה יחסית נמוך.

    סיפור דומה חזר על עצמו השנה: הפעם העדפנו להשקיע את זמן הפיתוח בפונקציונליות חדשה (מספר שורדים, ניהול הטורניר, האצת זמן וכו'), ולא במימוש אופקודים נוספים.

    בשורה התחתונה, יש סיכוי סביר שזה יכנס לשנה הבאה.

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