שְׁאֵלָה:
כיצד פועלת הוראות EB F2 x86?
the_endian
2018-02-15 10:16:26 UTC
view on stackexchange narkive permalink

בקטע הקוד הבא, הוראת EB F2 גורמת לביצוע לקפוץ חזרה למעלה לקו המצוין על ידי החץ. איך זה המקרה בהתחשב בכך שאין כתובת שמסופקת ל- EB ו- jmp נמצא פחות מ- F2 מבחינת מרחק הכתובת? enter image description here שני המיקומים הללו נמצאים 0xC זה מזה.

אחד תשובה:
blabb
2018-02-15 11:30:13 UTC
view on stackexchange narkive permalink

מ- google starmans ממלכה

ציטוט מידע רלוונטי

  אלה נקראים גם קפיצות יחסית קצרות. תוכניות המשתמשות רק בהוראות קפיצה יחסית ניתן להעביר בכל מקום בזיכרון מבלי לשנות את קוד המכונה עבור הקפיצות. הבית הראשון של קפיצה קצרה הוא תמיד EB והשני הוא קיזוז יחסי בין 00h ל 7Fh עבור קפיצות קדימה, ומ 80h ל- FFh עבור קפיצות לאחור (או אחורה). [הערה: ספירת הקיזוז מתחילה תמיד בבייט מיד לאחר הוראת JMP לכל סוג של קפיצה יחסית!] 

אז eb 01 עד eb 7f קופץ קדימה
eb fe to eb 80 jumpf אחורה

אז ההוראה הנוכחית היא 0x172b066 והוספת אורך ה- opcode 2 ההוראה הנוכחית מסתיימת ב- xxxx68 או ההוראה הבאה מתחילה ב 0xxxxx68 0xf2 = = -0xe (קרא על סימון משלים לשניים)

0xxxxx68 - 0xe = 0xxxxx5A



שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...