שאלות על הפצצה כבדה.

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

    שלום,

    יש לי כמה שאלות על הפצצה כבדה.. תודה לעונים..

    1) מה קשורה הכתובת ב ES להפצצה הכבדה?
    בדקתי בדיבאגר ולמשל הכתובת שיש לי ב ES לפני ההפצצה היא 1000
    לכן אם יש לי ב DI את הערך 0000
    אז זה מתחיל להפציץ מ 1000:0000
    איזו כתובת זה בזירה?
    לא ברור לי מה הכוונה שמתייחיסם לכתובת בתור ES:DI כי כל אחד מהם הערך שלו זה כתובת אז מה זה אומר כתובת שלהם ביחד?
    אני יכול לראות שזה מתחיל להפציץ מתחילת הזירה (0000) – לכן איזה התייחסות או השפעה יש לערך שנמצא באוגר ES?
    נקודה נוספת – לאיזה ערך ערכו של ES ישתנה לאחר ההפצצה הכבדה?
    את DI ראיתי שהוא מעדכן ל 00FF שזה 256 כלומר כתב 255 בתים בזירה אבל שוב אין בכלל קשר ל ES.
    אני מדבר על ES מבחינת ההשפעה שלו על הכתובות בהפצצה.

    2) לגבי ES ונקודה שקשורה לנקודה הקודמת אבל בהיבט אחר.
    הבנתי שצריך לעדכן את האוגר es לאותו ערך הנמצא באוגר cs כי אחרת יש exception אחרי שמפציצים.
    למה יהיה excpetion כזה?
    כתובת בזירה זאת כתובת – האם זה באג או תכנון לא נכון של המנוע?
    למה יכול לקרות אם אין סנכרון בין אוגר ES לאוגר CS?

    3) אם זה לא מוזכר לאיזה כיוון כותבים? ימינה? עולים בכתובות? איזה כיוון הוא ברירית המחדל?

    4) מה אני יכול להפציץ בהפצצה כבדה? האם סתם קוד לא טוב כדי שימותו או שאפשר לשים לאורך כל הטווח הכתובת משהו יותר מתוחכם שנדחוף ל AX ו DX?

    5) באופן תיאורטי – כמה הפצצות כבדות נדרשות כדי לכסות את כל הזירה?

    #80829
    cgx
    מנחה

    1) פצצה חכמה פועלת על אוגר המקטע

    ES

    והוא צריך להצביע לזירה: 1000, כמו

    CS

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

    3) אתה יכול לשנות את הכיוון על ידי

    STD

    CLD

    5) זו שאלה נחמדה. לכאורה 256, כי הזירה היא בגודל 65536 וכל פצצה חכמה פוגעת ב-256 מתוכם. בפועל אתה יכול לחסוך כי יש את הכתובת שלך, יש את הרווחים שמובטח שאף אחד לא יטען לתוכם, ואתה יכול גם להשאיר קצת רווחים קטנים בין הפצצות.

    השאלה, כמו שאמרת, היא תיאורטית כי אין לך כל כך הרבה פצצות.

    #81128
    ddt
    משתתף

    לגבי 1 – אז DI זה ה OFFSET של הכתובת שמצוינת ב ES שאותה מפציצים? לא מסתדר לי.
    אם אני רוצה להפציץ מתחילת הזירה אני צריך שיהיה ב ES את הערך 0000?
    אז למה צריך גם את DI אם הכתובת מצוינת ב ES ויש מספר ידוע של תאים שמהכתובת הזו מפציצים?
    אני אשמח אם מישהו יכול להשלים ולענות על 3 ו 4.
    ואם
    לגבי 5 – זה יכול להיות אם כל האחרים גם לא מעתיקים את עצמם בזמן הזה.

    #81169
    Idan Dor
    משתתף

    <p style="text-align: right;">כפי שרשמתי בעבר על מיקום אבסולוטי, מחשבים אותו כך:</p>
    <p style="text-align: right;">segment * 0x10 + address</p>
    <p style="text-align: right;">והזירה היא במיקום:</p>
    <p style="text-align: right;">0x10000 – 0x1ffff</p>
    <p style="text-align: right;">ולכן אם es = 1000</p>
    <p style="text-align: right;">ו di = 0</p>
    <p style="text-align: right;">אתה תפגע בשורה הראשונה בזירה במיקום:</p>
    <p style="text-align: right;">0x10000 – 0x100ff</p>

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