נושא: אסמבלר - ה PDF השני של 8086
|
|
כותב |
|
avichaid משתמש מתחיל
הצטרף / הצטרפה: 16 June 2009 מדינה: Israel
משתמש: מנותק/ת הודעות: 1
|
נשלח בתאריך: 16 June 2009 בשעה 15:07 | | IP רשוּם
|
|
|
|
שלום אנשים יקרים וחכמים אני לומד עכשיו אסמבלר , ונעזר ב PDF היעילים שניר נתן לנו פה ב pdf השני של 8086 (לינק: http://www.underwar.co.il/document-details.asp?id=129 ) מסוף עמ' 21 ישנה דוגמה לשימוש בפונקציה הנקראת PUTS אשר מקבלת מצביע אל מחרוזת דרך מחסנית, ומדפיסה את המחרוזת על המסך.
מה שלא הבנתי , בשורה האחרונה של עמ' 21, ישנה פקודה POP BX שלא מובן איך היא בדיוק קשורה. אני יכול להבין ששלחנו את ה offset של המחרוזת עבור ה DX עמ' שתתבצע פסיקה להדפסה (DX מקבל את ה offset רק בתוך הפונקציה, בסדר). אך מאיפה צץ לו עוד word במחסנית שצריך לשלוף אותו לתוך BX?
אודה מאוד לעזרה בהקדם... בהערכה רבה, אביחי
|
חזרה לתחילת העמוד |
|
|
ירון אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 20 June 2009 בשעה 22:18 | | IP רשוּם
|
|
|
|
אם אני לא טועה, נתונים שאתה שולף מהמחסנית לתוך אוגרים לא באמת נמחקים מהמחסנית. זאת הסיבה שאפשר לחזור על POP מספר פעמים
|
חזרה לתחילת העמוד |
|
|
inHaze משתמש פעיל
הצטרף / הצטרפה: 23 November 2006 מדינה: Israel
משתמש: מנותק/ת הודעות: 119
|
נשלח בתאריך: 30 June 2009 בשעה 18:00 | | IP רשוּם
|
|
|
|
ירון, אתה כן טועה, כאשר מפעילים את POP, שולפים את הערך מהמחסנית והוא כבר לא יהיה שם לאחר מכן. הסיבה שיש שם POP BX היא לצורך שמירת כתובת החזרה מהפונקצייה. כאשר מפעילים את CALL, כתובת החזרה למקום שממנו הפסקנו שקראנו לפונקציה גם נשמר במחסנית.
__________________ הבלוג שלי
|
חזרה לתחילת העמוד |
|
|
|
|
אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם
|
אינך יכול/ה לשלוח נושאים חדשים בפורום זה אינך יכול/ה להגיב לנושאים בפורום זה אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה אינך יכול/ה לצור סקרים בפורום זה אינך יכול/ה להצביע בסקרים בפורום זה
|