Menu
CoddyTech

כיצד פקודות פועלות

חלק מהיחידה יסודות במסלול ה-Assembly של Coddy. שיעור 4 מתוך 45.

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

הוראות הן מספרים.

זוהי אמת יסודית על מחשבים. הכול הוא מספר. הנתונים שאתה עובד איתם (כמו המספר 42) הם מספר. הכתובת שבה הנתונים מאוחסנים (כמו 1000) היא מספר. וגם ההוראות עצמן (כמו mov, add, cmp) הן מספרים.

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

היכן נשמרות ההוראות?

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

  • נתונים (מספרים, תווים, מערכים)
  • הוראות (התוכנית עצמה)

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

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

מחזור שליפה-ביצוע:

המעבד חוזר על שלושת השלבים האלה ללא הפסקה:

שלבמה קורה
1. FETCHקריאת ההוראה בכתובת שב-PC
2. EXECUTEביצוע ההוראה הזאת
3. ADVANCEהעברת PC להוראה הבאה

דוגמה פשוטה:

אם PC = 1000, ה-CPU:

  • מביא את ההוראה שבכתובת 1000
  • מבצע אותה
  • מעביר את PC לכתובת הבאה (1000 + גודל ההוראה)

לאחר מכן זה חוזר על עצמו עם ערך ה-PC החדש.

כך נראית הוראה:

לכל הוראה יש שני חלקים:

חלקמה הוא עושהדוגמה
קוד פעולהמה לבצעmov, add, cmp
אופרנדיםעל מה לבצע את הפעולהrax, 5, [result]

להוראות מסוימות יש אופרנד אחד (כמו inc rax כדי להוסיף 1). לאחרות יש שניים (כמו mov rax, 5). ויש כאלה שיש להן שלושה (כמו add rax, rbx, rcx בארכיטקטורות מסוימות).

נסו בעצמכם

השיעור הזה לא כולל אתגר קוד.

quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: Assembly אונליין