שאלה בתיכנות אסבמלר

עמוד
מוצגות 3 תגובות – 1 עד 3 (מתוך 3 סה״כ)
  • מאת
    תגובות
  • #76818
    Vendetta
    משתתף

    אז ככה הייתי רוצה לשנות את האוגר
    IP
    על מנת שהתוכנית שלי תרוץ ממקום אחר שאני קובע
    אבל לא משנה מה ניסיתי לעשות בדיבאג כלום לא עזר, גם לו push pop

    ועד שאלה מה האבדל בין האוגר
    ip לאוגר cs

    ודבר אחרון , הייתי ממליץ לכם לפרסם את הקישור הזה
    http://www.coval.net/teach/emu8086/helpfiles/asm_tutorial_01.html
    ממש מסביר טוב על השפה :)

    #78010
    GalDor
    משתתף

    First question: the jump opcode, jmp @label actually works by adding a certain amount to ip. Similarly, you can do jmp ax (which sets ip to ax), jmp [bx] (which sets ip to what's stored in [bx]) or jmp far [bx] (which, if I recall correctly, also sets cs to [bx+2]).

    Second qeustion: any address in 8086 is always represented by a pair segment:offset, which is than translated into an absolute address by segment*0x10+offset. This has the advantage of allowing you to access 2^20 possible addresses on a 16-bit machine (so you are not limited to 2^16, as you should have been). The current instruction is kept in a similar fashion – your address is cs:ip, where cs is the segment register and ip is the offset within that segment.

    Note that a lot of far-call based survivors use the fact that many segments overlap to operate from segments different from the initial arena segment, 0x1000. Instead, they use an offset in an almost completely overlapping segment such as 0x1010 and make sure that they never enp up out of the arena when the actual physical address is calculated. This is used in order to hide their actual address and make finding them musch more difficult for scanners.

    #78009
    shinigami
    משתתף

    ניסית להשתמש בcall?
    cs הוא סגמנט הקוד
    ip הוא מצביע הקוד
    אוגר מסוג סגמנט מצביע על תחילת הסגמנט המדובר ובדרך כלל קבוע
    בעוד שמצביע הוא ההיסט הנוכחי בתוך הסגמנט ומשתנה במקרים רבים
    ip הוא מיוחד בזה שהוא מצביע על הפקודה הבאה שתרוץ בתכנית שלך

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