0.2 - המחשב - תרגול
תרגול - כתיבת קוד למעבד הפשוט שלנו¶
כל קטע קוד שאתם כותבים חייב להיות בנוי מהוראות תקניות:
mov,add,sub,ldr,wrt,in,out
השתמשו באוגרים: אוגר 1, אוגר 2, אוגר 3, וכו'
אפשר גם להשתמש בכתובות בזיכרון כמו:RAM[10]
שאלה 1 - חיבור והצגה בפלט¶
כתוב קוד שמבצע את הפעולות הבאות:
-
שומר את המספר 8 באוגר מספר 1
-
שומר את המספר 6 באוגר מספר 2
-
מחבר את שני המספרים
-
שומר את התוצאה באוגר מספר 3
-
מציג את התוצאה בפלט
שאלה 2 - שמירה בזיכרון¶
כתוב קוד שמבצע:
-
קלט מהמשתמש לאוגר מספר 1
-
שומר את הערך בזיכרון בכתובת 20
-
קורא את הערך מהזיכרון ל-אוגר 2
-
מציג את הערך בפלט
שאלה 3 - חיסור ושמירה¶
כתוב תוכנית שמבצעת:
-
שומרת את המספר 25 באוגר 1
-
שומרת את המספר 10 באוגר 2
-
מבצעת חיסור בין שני האוגרים
-
שומרת את התוצאה בזיכרון בכתובת 5
-
מציגה את התוצאה מהזיכרון בפלט
שאלה 4 - העתקה בין אוגרים¶
כתוב קוד שמבצע:
-
שומר את המספר 4 באוגר 1
-
מעתיק את הערך מאוגר 1 לאוגר 3
-
מציג את הערך שבאוגר 3 בפלט
שאלה 5 - תוכנה שמשכפלת קלט¶
כתוב קוד שמקבל קלט מהמשתמש, ואז מציג אותו בחזרה על המסך.
שאלה 6 - הבנת מהלך ההרצה¶
הקוד הבא כתוב בזיכרון של המחשב. מה יוצג בפלט?
הסבר: כתוב מה יש בכל אוגר במהלך כל שלב, ומה תהיה התוצאה הסופית.
שאלה 7 - חיבור ושמירה בזיכרון + קריאה חוזרת¶
כתוב תוכנית שמבצעת:
-
קולטת מספר מהמשתמש לאוגר 1
-
קולטת מספר נוסף לאוגר 2
-
מחברת את המספרים ושומרת את התוצאה ב-RAM[15]
-
קוראת את הערך מ-RAM[15] לאוגר 3
-
מציגה את אוגר 3 בפלט
שאלה 8 - שאלה פתוחה¶
איך המעבד שלך ידע מתי לעצור?
הסבר מה קורה כאשר ה-IP מגיע לכתובת שבה מתחיל סגמנט הנתונים (DATA).
(רמז: קח בחשבון את אוגר סגמנט הקוד ואוגר סגמנט המשתנים)