התגובות שלי בפורום
-
מאתתגובות
-
adiמשתתף
ניתן לחסר מSP על מנת להפציץ במרווחים גדולים
adiמשתתףאתה יכול פשוט לפתוח את FASM ולהתחיל לכתוב, אם תנסה לעשות compile (נראה לי זה f9) אז הוא יגיד לך על בעיות.
מה שאני עשיתי- יש לי תיקייה בשם AutoCheck-שם מופיעים השורדים (לפני assemble)
יש לי תיקייה בשם survivors (לשם הכל מתקמפל) ותיקייה בשם Assemblers (שבתוכה נמצא FASM)
אני כתבתי בnotepad++ את הקוד ואז כשקמפלתי השתמשתי בסקריפט הזה:
https://www.sendspace.com/file/rrc6aj – פשוט סקריפט בפייטון שמקמפל עם FASM ומעביר את זה. במידה ולא מתקמפל קובץ אז אני פשוט בודק את הקוד בFASM ובודק מה התלונות שלו 😉adiמשתתףהמלצה קטנה- במקום להשתמש בmov [di],dx אתה יכול להשתמש בpush dx (כאשר ss על הזירה)
ככה תחסוך לך את החלפת הסגמנטים בכל פעם וגם push פקודה משמעותית יותר קטנה מבחינת בתים ולכן יש פחות סיכוי שתיפגע 🙂adiמשתתףהוא קורס בסוף הפקודות האלה לאחר שימוש בmovsw?
אם כן תבדוק שהsi שלך לא גדול יותר מES
אם קורס לאחר השימוש בpush הראשון, אז כנראה שהsp שלך היה גדול יותר מSSadiמשתתףdi צריך להיות המיקום שלך +1, יש לך את המיקום ההתחלתי בax ואתה יכול לעבוד עם לייבלים כי זה חוסך עבודה
נגיד
mov di,ax
add di,@here
movsw
@here:———————
si אתה באופן אישי צריך לקבוע איפה אתה רוצה להתחיל לקרוא מES, אין לי איך להגיד לך..
בעיקרון si צריך להיות איפה שאתה רוצה שיתחילו לקרוא מES- כי ככה movsw עובד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:adiמשתתףתודה רבה
adiמשתתףכמו שנאמר, על מנת שלא תדרוס את עצמך באף כתובת ניתן לעשות משהו כמו זה:
mov dx,0xcccc
@bomb:
inc bx
cmp bx,ax
jnz @skip
add bx,@codeEnd
@skip:
mov [bx],dx
jmp @bomb
@codeEnd:
——————————————————————
לגבי לא להרוג גם את השורד שאיתך, האופציות האפשריות הן לשמור את המיקום שלו ברגיסטר נוסף ולבדוק גם את הערך שלו. אופציה נוספת זה שתריץ את שניהם מאותו המיקום אך תקח בחשבון שזה לא בהכרח הדבר שאתה רוצה משיקולים אסטרטגיים..
מקווה שעזרתי 🙂 -
מאתתגובות