עבור לתוכן

registers

Featured Replies

פורסם

מישהו מכיר תוכנה שבעזרתה אני יוכל לראות את האוגרים של המעבד ומה מצבם? (ואולי אפילו לשנות אותם...)

פורסם

אני יודע שב-visual C++ אתה יכול לראות בנקודה מסויימת את כל הזיכרון והרגיסטרים

הבעיה עם זה זה שהערכים מתעדכנים כמה מליוני פעמים בשניה ככה שאתה לא יכול לעקוב אחרי זה אלה רק לראות תמונה ממצב מסויים שמיד ישתנה.

לשנות את זה סתם יגרום למחשב לקרוס.

פורסם
  • מחבר

גם בטורבו סי אתה יכול לראות את האוגרים....

אבל אני רוצה משהו ספיציפית לזה... שממש יהיה אפשר לעבוד עם זה...

חוץ מזה זה לא חייב לגרום לקריסה... זה גם יכול לעשות כל מיני דברים מעניינים...

פורסם

אתה לא יכול לשנות או לראות את המצב האמיתי של הרגיסטרים כי אין לך בכלל גישה אליהם.

וינדוס אחראי על כל מה שקורה שם.

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

גם אם תכתוב תוכנה שמשנה את הרגיסטרים שזה ענין פשוט מאוד באסמבלר, הם ישתנו רק בשביל אותה תוכנה.

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

אין שום בעיה להריץ שתי תוכנות במקביל שמכוונות את AX אחת ל 0 ואחת ל 1. אתה יכול בכל אחת מהן לבדוק את המצב של AX כפי שהיא רואה אותו ועדיין הראשונה תגיד שהוא 0 והשניה תגיד שהוא 1 כי כל פעם שאחת התוכנות פעילה וינדוס מחזיר את הרגיסטרים למצבם הקודם בפעם האחרונה שהפרוסס הוקפא.

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

פורסם
  • מחבר

הגיוני שזה דוחף אותו למחסנית...

בכל מקרה תודה על התשובה...

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים