עזרה עם ES

עמוד
מוצגות 5 תגובות – 1 עד 5 (מתוך 5 סה״כ)
  • מאת
    תגובות
  • #76866
    non847
    משתתף

    יש לי בעיה עם שימוש במקטע זיכרון המשותף
    ניסיתי שתוכנית אחת עושה
    mov es,dx
    ותוכנית אחרת עושה
    mov dx,es
    או
    mov dx,es:[0000]
    מה אני עושה לא בסדר?

    #78156
    ybungalobill
    משתתף

    בתוכנית הראשונה אתה מעתיק את תוכן האוגר
    DX
    לתוכן האוגר
    ES
    שזה ממש לא מה שאתה רוצה לעשות.
    אתה מתכוון ל:
    mov es:[0000], dx
    mov dx, es:[0000]

    חוץ מזה, וודא שבזמן שהתוכנית שנייה קוראת משם, היא לא קוראת זבל, כלומר שהתוכנית הראשונה כבר הספיקה לכתוב לשמה משהו.

    #78155
    GalDor
    משתתף

    That is correct, but please pay attention to the fact that the engine doesn't support segment prefixes, such as:
    ES:
    so what you need to do is first move es into ds (which is where [0000] will access) and then do whatever you want. For example:
    push es
    pop ds
    mov [0000], dx

    #78154
    non847
    משתתף

    השורה mov es:[0000], dx
    מתקמפלת בסדר אבל אחרי זה במשחק
    אני מקבל שגיאת פעולה לא חוקית. זה משנה הערך של DX?
    כי ניסיתי גם 8ביט וגם 16ביט זה לא משנה

    #78153
    GalDor
    משתתף

    Read my post please. The "es:" part is not supported by the game engine. As I said, you should do something like (because [0000] accesses ds by default):
    push es
    pop ds
    mov [0000], dx

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