שמירת מידע במחסנית באסבלי

אווריסט

New member
שמירת מידע במחסנית באסבלי

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

skies

New member
אתה פשוט דוחף אותו

נגיד ואתה רוצה לשמור את eax אז אתה עושה push eax אח"כ שאתה רוצה לשחזר אותו אתה עושה pop eax ואם רוצים לקרוא בלי לשחזר (בהנחה שלא נעשו עוד דחיפות למחסנית) אתה פשוט עושה mov eax,dword ptr [esp] רק אתה צריך לזכור מה דחפת למחסנית ומתי,גם חשוב לזכור שאחרי שדחפת משהו למחסנית אתה תוציא אותו משמה (אחרת תהיה לך בעיה בלצאת מפונקציות וכו כי ret משתמש בערך האחרון במחסנית) דרך אחרת לשמור נתונים היא פשוט לאחסן אותם במשתנים לדוגמא עבור eax תעשה mov dword ptr [val],eax וכו...
 

generala

New member
בגדול

תשתמש לרוב ב- PUSHA וב- POPA ה- A מציינת = ALL. בהצלחה.
 
למעלה