adi

עמוד

התגובות שלי בפורום

מוצגות 8 תגובות – 1 עד 8 (מתוך 8 סה״כ)
  • מאת
    תגובות
  • בתגובה ל: קריאה מהאקטרה סגמנט #83317
    adi
    משתתף

    ניתן לחסר מSP על מנת להפציץ במרווחים גדולים

    בתגובה ל: FASM #83316
    adi
    משתתף

    אתה יכול פשוט לפתוח את FASM ולהתחיל לכתוב, אם תנסה לעשות compile (נראה לי זה f9) אז הוא יגיד לך על בעיות.
    מה שאני עשיתי- יש לי תיקייה בשם AutoCheck-שם מופיעים השורדים (לפני assemble)
    יש לי תיקייה בשם survivors (לשם הכל מתקמפל) ותיקייה בשם Assemblers (שבתוכה נמצא FASM)
    אני כתבתי בnotepad++ את הקוד ואז כשקמפלתי השתמשתי בסקריפט הזה:
    https://www.sendspace.com/file/rrc6aj – פשוט סקריפט בפייטון שמקמפל עם FASM ומעביר את זה. במידה ולא מתקמפל קובץ אז אני פשוט בודק את הקוד בFASM ובודק מה התלונות שלו 😉

    בתגובה ל: קריאה מהאקטרה סגמנט #83312
    adi
    משתתף

    המלצה קטנה- במקום להשתמש בmov [di],dx אתה יכול להשתמש בpush dx (כאשר ss על הזירה)
    ככה תחסוך לך את החלפת הסגמנטים בכל פעם וגם push פקודה משמעותית יותר קטנה מבחינת בתים ולכן יש פחות סיכוי שתיפגע 🙂

    בתגובה ל: קריאה מהאקטרה סגמנט #83307
    adi
    משתתף

    הוא קורס בסוף הפקודות האלה לאחר שימוש בmovsw?
    אם כן תבדוק שהsi שלך לא גדול יותר מES
    אם קורס לאחר השימוש בpush הראשון, אז כנראה שהsp שלך היה גדול יותר מSS

    בתגובה ל: קריאה מהאקטרה סגמנט #83305
    adi
    משתתף

    di צריך להיות המיקום שלך +1, יש לך את המיקום ההתחלתי בax ואתה יכול לעבוד עם לייבלים כי זה חוסך עבודה
    נגיד
    mov di,ax
    add di,@here
    movsw
    @here:

    ———————
    si אתה באופן אישי צריך לקבוע איפה אתה רוצה להתחיל לקרוא מES, אין לי איך להגיד לך..
    בעיקרון si צריך להיות איפה שאתה רוצה שיתחילו לקרוא מES- כי ככה movsw עובד

    בתגובה ל: קריאה מהאקטרה סגמנט #83303
    adi
    משתתף

    בנוסף, מומלץ לציין שאחרי כמות movsw מסויימת יהיה לך מומלץ להשתמש במקום בrep movsw (בקטעי אתחול למיניהם)
    לדוגמה בקוד שמצורף למטה (לא בדקתי אבל אני מעריך שכן) להשתמש בmovsw בין הפקודות יהיה איטי יותר וידרוש ממך יותר בתים- דבר שלא טוב מבחינתך ולכן יהיה עדיף להשתמש בrep movsw
    mov cl,(@junkEnd-@junkStart+1)/2
    rep movsw
    @junkStart:
    nop
    nop
    db 0xc0
    nop
    nop
    nop
    nop
    nop
    @junkEnd:

    בתגובה ל: להעלות שורדים לאתר #83292
    adi
    משתתף

    תודה רבה

    בתגובה ל: בדיקה האם עליתי על עצמי #83291
    adi
    משתתף

    כמו שנאמר, על מנת שלא תדרוס את עצמך באף כתובת ניתן לעשות משהו כמו זה:
    mov dx,0xcccc
    @bomb:
    inc bx
    cmp bx,ax
    jnz @skip
    add bx,@codeEnd
    @skip:
    mov [bx],dx
    jmp @bomb
    @codeEnd:
    ——————————————————————
    לגבי לא להרוג גם את השורד שאיתך, האופציות האפשריות הן לשמור את המיקום שלו ברגיסטר נוסף ולבדוק גם את הערך שלו. אופציה נוספת זה שתריץ את שניהם מאותו המיקום אך תקח בחשבון שזה לא בהכרח הדבר שאתה רוצה משיקולים אסטרטגיים..
    מקווה שעזרתי 🙂

מוצגות 8 תגובות – 1 עד 8 (מתוך 8 סה״כ)