יונתן שאל
אשמח להבהרה לגבי שורה 2 בקוד של U1 :
0B04:0100 E8CA00 CALL 01CD
0B04:0103 E80000 CALL 0106
0B04:0106 58 POP AX
איך הוא קורא לאיזור "לא מוגדר" (01CD לא בסגמנט נוכחי, לפי ראות עיניי..)
ובשורה 2 – אי אפשר לוותר על הקריאה לשורה ה-3? הרי היא תתבצע בכל מקרה במקרה של חזרה, לא?
תודה..
התשובה: הקריאה היא יחסית, זאת אומרת שאם התוכנית תטען לכתובת מאה, הקפיצה תהיה אל
01CD
בקשר לקפיצה המיותרת לכאורה – היא לא רק מעבירה את הריצה לכתובת 106 היא גם מכניסה את כתובת החזרה למחסנית.
זו שיטה מקובלת לברר היכן אתה רץ. האוגר
AX
יכיל את הכתובת בה כתובה הפקודה
POP AX