מה יש בתוך מחשב לפני שהוא עושה משהו: תאי זיכרון ממוספרים, בית של שמונה סיביות, כתובות שאפיק של ארבעה חוטים יכול לתת, ותוכנית שהיא בסך הכול מספרים בזיכרון.
שלב 1 מתוך 5 · שישה־עשר תאים
שלב 1 מתוך 5
שישה־עשר תאים
לפני שמחשב מחשב משהו, הוא צריך מקום לשמור בו מספרים. המקום הזה הוא הזיכרון: שורה של תאים, וכל תא מחזיק מספר אחד. כדי למצוא תא, נותנים לכל אחד מספר משלו, הכתובת שלו, כמו מספרים של בתים ברחוב.
בסצנה יש מעבד צעצוע על לוח. מבט פנימה פתוח על רכיבים: המכסה הורם, ומימין לשבב רואים את הזיכרון, שישה־עשר תאים עם הכתובות שלהם. המעבד בוחר תא בכך שהוא שולח את הכתובת שלו על אפיק הכתובות, סרט של חוטים מקבילים. נתיב מואר הוא חוט במתח גבוה, 1; נתיב כהה הוא 0. כל חוט נושא סיבית אחת.
שלב 2 מתוך 5
בית אחד
כל תא בזיכרון הוא בית: שמונה סיביות. כשקוראים את שמונה הסיביות כמספר בבסיס שתיים, לכל סיבית יש ערך מקום, מימין לשמאל: . מחברים את ערכי המקומות של הסיביות הדולקות, ומקבלים את המספר. 0001 1100, למשל, הוא , המספר שבתא 14.
גם האוגרים בתוך המעבד, A ו־B, רחבים שמונה סיביות, ולכן גם הם מחזיקים בית אחד.
שלב 3 מתוך 5
בית הוא מספר
הזיכרון לא מחזיק רק נתונים. גם התוכנית יושבת בו: חמשת התאים הראשונים, כתובות 0 עד 4, הם ההוראות שהמעבד יריץ, ושני התאים האחרונים הם המספרים שהתוכנית מחברת. שום דבר בבית לא מסמן אם הוא הוראה או מספר. התוויות על הזיכרון הן בשבילנו; השבב רואה תמיד רק סיביות.
עכשיו המכסה סגור. הבית בכתובת 0 הוא 0001 1110. קראו אותו כמספר.
שלב 4 מתוך 5
קוד פעולה וכתובת
כשאותו בית נקרא כהוראה, הוא מתחלק לשניים. ארבע הסיביות השמאליות הן קוד הפעולה: מה לעשות. ארבע הימניות הן כתובת: על איזה תא לעשות את זה. ארבע סיביות מספיקות בדיוק לשישה־עשר תאים.
לשבב הזה יש שמונה קודי פעולה:
| קוד | הוראה | מה היא עושה |
|---|---|---|
0001 |
LDA |
טוענת לאוגר A את מה שבתא |
0010 |
LDB |
טוענת לאוגר B את מה שבתא |
0011 |
ADD |
מחברת את A ו־B, והתשובה נכנסת ל־A |
0100 |
SUB |
מחסרת את B מ־A, והתשובה נכנסת ל־A |
0101 |
STA |
כותבת את A לתא |
0110 |
JMP |
קופצת לכתובת |
0111 |
JZ |
קופצת לכתובת, אם התשובה האחרונה הייתה אפס |
1111 |
HLT |
עוצרת את המעבד |
כך 0001 1110 הוא LDA 14: קוד הפעולה 0001, טען ל־A, והכתובת 1110, כלומר 14. התוכנית שבסצנה היא LDA 14, LDB 15, ADD, STA 13, JMP 4: טען את שני המספרים, חבר אותם, שמור את הסכום בתא 13, ואז קפוץ למקום לנצח.
שלב 5 מתוך 5
מעתיקים, לא מזיזים
פעימת שעון עומדת על 1. ההוראה LDA 14 כבר באוגר ההוראה, ובפעימה הבאה היא תתבצע: הכתובת 14 תצא לזיכרון, והמספר שבתא יגיע לאוגר A. נבאו מה יישאר בתא 14 אחרי זה.
הגרסה האינטראקטיבית נטענת…
הגרסה האינטראקטיבית נטענת…
כל שלב מכין לכם את הסצנה, ובקר שמסומן „קבוע” נשאר במקומו בשלב הזה.
תרגול · בחרו
אפיק הכתובות של השבב הוא ארבעה נתיבים, וכל נתיב נושא סיבית אחת. לכמה תאי זיכרון שונים אפשר לתת כתובת?
תרגול · בחרו
אפיק הכתובות של השבב הוא ארבעה נתיבים, וכל נתיב נושא סיבית אחת. לכמה תאי זיכרון שונים אפשר לתת כתובת?
תרגול · חשבו
תא בזיכרון, כמו כל אוגר בשבב, הוא בית אחד: שמונה סיביות. מה המספר הגדול ביותר שבית אחד יכול להחזיק?
תרגול · חשבו
תא בזיכרון, כמו כל אוגר בשבב, הוא בית אחד: שמונה סיביות. מה המספר הגדול ביותר שבית אחד יכול להחזיק?
תרגול · חשבו
הבית בכתובת 0 הוא 0001 1110. המכסה סגור. אם קוראים את הבית הזה כמספר ולא כהוראה, מהו?
תרגול · חשבו
הבית בכתובת 0 הוא 0001 1110. המכסה סגור. אם קוראים את הבית הזה כמספר ולא כהוראה, מהו?
תרגול · בחרו
בכתובת 3 שמור הבית 0101 1101. קוד הפעולה 0101 הוא STA, “שמור את A”. מה ההוראה עושה?
תרגול · בחרו
בכתובת 3 שמור הבית 0101 1101. קוד הפעולה 0101 הוא STA, “שמור את A”. מה ההוראה עושה?
תרגול · נבאו, ואז הסתכלו
בתא 14 שמור 28. בפעימה 2 מתבצעת LDA 14. מה יישאר בתא 14 אחרי הפעימה?
תרגול · נבאו, ואז הסתכלו
בתא 14 שמור 28. בפעימה 2 מתבצעת LDA 14. מה יישאר בתא 14 אחרי הפעימה?
השיעור הושלם. עניתם על כל שאלות התרגול בו.