תוכן עניינים:

קוד ובדוק מחשב בשפת מכונה: 6 שלבים
קוד ובדוק מחשב בשפת מכונה: 6 שלבים

וִידֵאוֹ: קוד ובדוק מחשב בשפת מכונה: 6 שלבים

וִידֵאוֹ: קוד ובדוק מחשב בשפת מכונה: 6 שלבים
וִידֵאוֹ: תפסתי אותה על חםםםם!!!!!! 2024, נוֹבֶמבֶּר
Anonim
Image
Image

במדריך זה, אראה לך כיצד לקודד ולבדוק תוכנת מחשב בשפת מכונה. שפת מכונה היא שפת האם של מחשבים. מכיוון שהוא מורכב ממחרוזות של 1s ו- 0s, לא ניתן להבין אותו בקלות על ידי בני אדם. כדי לעקוף זאת, אנו מקודדים תוכניות תחילה בשפה ברמה גבוהה כמו C ++ או Java ולאחר מכן משתמשים בתוכנות מחשב מיוחדות כדי לתרגם אותן למחשבי 1s ו- 0s המחשבים אכן מבינים. לימוד קוד בשפה ברמה גבוהה בהחלט אינו דבר מובן מאליו אך היכרות קצרה עם שפת מכונות יכולה לספק תובנה חשובה לגבי אופן הפעולה של מחשבים ולהגביר את הערכת הטכנולוגיה החשובה הזו.

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

לעיצוב המחשב, התאמתי אחד מהספר האלקטרוני שלי קינדל בנה מחשב משלך - מגרסה. התחלתי במחשב BYOC המתואר שם וקיצצתי אותו לפי ה- BYOC-I הבסיסי (I for Instructable) בו נשתמש במדריך זה.

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

לקריאה נוספת

אתה עשוי לתהות מדוע אנו משתמשים ב"מכונה "לתיאור מחשב כאשר אינו מכשיר מכני. הסיבה היא היסטורית; מכשירי המחשוב הראשונים היו מכניים המורכבים מהילוכים וגלגלים. שיריו של אלן שרמן, "הכל הלך הילוכים בקליק …" היה רק מאה או שניים. קרא עוד על מחשוב מוקדם כאן.

שלב 1: רשימת חלקים

היררכיה וקודים של שפות מכונות
היררכיה וקודים של שפות מכונות

רשימת החלקים קצרה. רק שני פריטים אלה נדרשים, שניהם ניתנים להורדה בחינם:

  1. "Logisim-win-2.7.1.exe"-Logisim הוא סימולטור לוגי פופולרי וקל לשימוש. הורד מכאן את קובץ ההפעלה של Logisim ואז צור קיצור דרך במקום נוח כמו שולחן העבודה שלך. לחץ פעמיים על סמל Logisim כדי להפעיל אותו. הערה: Logisim משתמש בחבילת Java Runtime הממוקמת כאן. ייתכן שתתבקש להוריד אותו.
  2. BYOC-I-Full.cir "-הורד את קובץ מעגל Logisim להלן.

הפעל את Logisim ולאחר מכן לחץ על "פתח קובץ" וטען את הקובץ BYOC-I-Full.cir. התמונה למעלה מציגה את סביבת העבודה של Logisim. ה- BYOC-I מיוצג על ידי בלוק מעגל המשנה. חיבור חיצוני הן שתי כניסות, איפוס והפעלה, ותצוגות הקסדצימליות לרשמי BYOC-I ולזיכרון התוכנה.

זיכרון התוכנית של BYOC-I נטען מראש בתוכנית פשוטה הסופרת מ -1 עד 5 במרשם A. כדי לבצע (הפעל) את התוכנית, בצע את השלבים הבאים.

שלב 1 - לחץ על הכלי Poke. הסמן צריך לעבור ל"אצבע "המחטטת. שלב 2 - תקע את קלט האיפוס פעמיים, פעם אחת תשנה אותו ל- "1" ושוב תשנה אותו בחזרה ל- "0". זה מאפס את BYOC -I להפעלת התוכנית בכתובת 0. שלב 3 - תקע את קלט ההפעלה פעם אחת כדי לשנות אותה ל- "1". רשום A צריך להציג את הספירה שמשתנה מ -1 ל -5 ואז לחזור על עצמה. שלב 4 - אם התוכנית לא מופעלת, הקש על control -K והיא צריכה להתחיל.

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

שלב 2: היררכיית שפות מכונות וקודים

היררכיה וקודים של שפות מכונות
היררכיה וקודים של שפות מכונות

מחשב BYOC-I מבצע משימות המבוססות על תוכניות הכתובות בשפת מכונה. תוכניות BYOC-I, בתורן, מורכבות מהוראות המבוצעות ברצף מוגדר היטב. כל הוראה בנויה מקודי אורך קבוע המייצגים רכיבים תפעוליים שונים של ה- BYOC-I. לבסוף, קודים אלה מורכבים ממחרוזות של 1s ו- 0s המהווים את שפת המכונה ש- BYOC-I מבצעת בפועל.

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

קודים מורכבים ממספר קבוע של ספרות או סיביות בינאריות (1 ו- 0), בקיצור. לדוגמה, הטבלה שלהלן מציגה את כל הקודים האפשריים (16 בסך הכל) לקוד ברוחב 4 סיביות. הקוד המוצג לאורך הצד הוא ההקסדצימלי (בסיס 16) והמקביל העשרוני. הקסדצימל משמש בהתייחסות לערכים בינאריים מכיוון שהוא קומפקטי יותר מבינארי וקל יותר להמיר אותו בינארי מאשר עשרוני. הקידומת "0x" מאפשרת לך לדעת שהמספר הבא הוא הקסדצימלי או בקיצור "hex".

בינארי - הקסדצימלי - עשרוני0000 0x0000 00001 0x0001 10010 0x0002 20011 0x0003 30100 0x0004 40101 0x0005 50111 0x0007 71000 0x0008 81001 0x0009 91010 0x000A 101011 0x000B 111100 0x000C 121101 0x000D 131110

רוחב הקוד קובע כמה פריטים ניתן לייצג. כפי שצוין, הקוד הרחב של 4 סיביות לעיל יכול לייצג עד 16 פריטים (0 עד 15); כלומר, 2 פעמים 2 שצולמו ארבע פעמים או 2 עד 4 כוח שווה 16. באופן כללי, מספר הפריטים שניתן לייצג עולה 2 לכוח ה- n. להלן רשימה קצרה של יכולות קוד n-bit.

n - מספר הפריטים 1 22 43 84 165 326 647 1288 256

רוחבי קוד המחשב של BYOC-I נבחרים כך שיתאימו למספר הפריטים שיוצגו על ידי הקוד. לדוגמה, ישנם ארבעה סוגי הדרכה, כך שקוד רחב של 2 סיביות מתאים. להלן הקודים של BYOC-I עם הסבר קצר על כל אחד מהם.

קוד סוג הדרכה (tt) ישנם ארבעה סוגי הוראות: (1) MVI - העבר ערך קבוע מיידי של 8 סיביות לרשום זיכרון. רשום הזיכרון הוא מכשיר המכיל נתונים לשימוש לחישוב, (2) MOV - העברת נתונים מרשם אחד למשנהו, (3) RRC - בצע חישוב בין רישום לרישום ו- (4) JMP - קפיצה להוראה אחרת במקום להמשיך בהוראה הבאה. קודי סוג ההוראה של BYOC-I שאומצו הם כדלקמן:

00 MVI01 MOV10 RRC11 JMP

קוד רישום (dd ו- ss) ל- BYOC-I יש ארבעה רשמים של 8 סיביות המסוגלים לאחסן ערכים מ -0 עד 255. קוד של 2 סיביות מספיק כדי לייעד את ארבעת הרשמים:

00 F register01 E register10 D register11 A register

קוד חישוב (ccc) ה- BYOC-I תומך בארבע פעולות אריתמטיות/לוגיות. כדי לאפשר הרחבה עתידית לשמונה חישובים, נעשה שימוש בקוד 3 סיביות:

000 ADD, הוסף שני ערכי 8 סיביות ברשמים ייעודיים ושמור את התוצאה באחד מהרשמים 001 SUB, הפחת שני ערכי 8 סיביות ברשמים ייעודיים ושמור את התוצאה באחד מהרשמים 010-011 שמורים לשימוש עתידי 100 AND, מבחינה לוגית ושני ערכי 8 סיביות ברשמים ייעודיים ושמרו את התוצאה באחד מהרשמים 101 OR, מבחינה לוגית או שני ערכי 8 סיביות ברשמים ייעודיים ושמרו את התוצאה באחד מהרשמים 110 עד 111, שמורים לשימוש עתידי

קוד קפיצה (j) קוד של 1 סיביות המציין אם הקפיצה אינה מותנית (j = 1) או מותנית בתוצאת חישוב לא אפס (j = 0).

קוד נתונים/כתובת (v… v)/(א… א) ניתן לכלול נתונים של 8 סיביות בהוראות מסוימות המייצגות ערכים מ- 00000000 עד 11111111 או 0 עד 255 עשרוני. נתונים אלה רחבים 8 סיביות לאחסון ברשמי 8 סיביות של BYOC-I. בחשבון עשרוני איננו מציגים אפסים מובילים. בעזרת חשבון המחשב אנו מציגים אפסים מובילים אך הם אינם משפיעים על הערך. 00000101 הוא זהה מספרית 101 או 5 עשרוני.

הצעות הפניות

סימון בינארי - https://learn.sparkfun.com/tutorials/binaryHexadecimal Notation -

לקריאה נוספת

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

שלב 3: אנטומיה של הוראות BYOC-I

אנטומיה של הוראות BYOC-I
אנטומיה של הוראות BYOC-I

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

סוג ההוראה MVI דורש הכי הרבה סיביות, 12 בסך הכל. על ידי הפיכת מילת ההוראה באורך 12 סיביות, אנו מתאימים לכל ההנחיות. סיביות שאינן בשימוש (מה שנקרא "לא אכפת") ניתנות בערך 0. להלן ערכת ההוראות של BYOC-I.

  1. העברת מיידי (MVI) - 00 dd vvvvvvvv פונקציה: העבר ערך נתונים של 8 סיביות V = vvvvvvv לרשם היעד dd. לאחר ביצוע הרישום dd יהיה בעל הערך vvvvvvvv. קיצור: MVI R, V כאשר R הוא A, D, E או F. דוגמא: 00 10 00000101 - MVI D, 5 - העבר את הערך 5 לרשומת D.
  2. העבר רישום לרישום (MOV) - 01 dd ss 000000 פונקציה: העבר נתונים מרשם ss לרשם desination dd. לאחר הביצוע, לשני הרשמים יש ערך זהה לרשם המקור. קיצור: MOV Rd, Rs כאשר Rd הוא רשם היעד A, D, E או F ו- Rs הוא רשום המקור A, D, E או F. דוגמה: 01 11 01 000000 - MOV A, E - הזז את הערך ברישום E לרשום א.
  3. הרשמה לרישום חישוב (RRC) - 10 dd ss ccc 000 פונקציה: בצע ccc חישוב ייעודי באמצעות רשם מקורות ss ורשם יעד dd ולאחר מכן אחסן את התוצאה ברשם היעד. הסכמות: ADD Rd, Rs (ccc = 000 Rd + Rs המאוחסנים ב- מחקר ופיתוח); SUB Rd, Rs (ccc = 001 Rd - Rs המאוחסנים ב- Rd); AND Rd, Rs (ccc = 100 Rd AND Rs המאוחסנים ב- Rd); OR Rd, Rs (ccc = 101 Rd OR Rs המאוחסנים ב- Rd).דוגמא: 10 00 11 001 000 - SUB F, A - הפחת את הערך ברשם A מרשם F עם התוצאה במרשם F.
  4. קפוץ להוראה שונה (JMP) - 11 j 0 aaaaaaaa פונקציה: שנה ביצוע להוראה אחרת הממוקמת בכתובת aaaa aaaa (a) ללא תנאי (j = 1) -11 1 0 aaaaaaaa התמצאות: JMP L כאשר L היא כתובת aaaa aaaa דוגמה: 11 1 0 00001000 - JMP 8 - שינוי ביצוע לכתובת 8. (ב) מותנה (j = 0) כאשר החישוב הקודם הביא לתוצאה לא אפסית - 11 0 0 aaaaaaaa התמצאות: JNZ L כאשר L היא כתובת aaaa aaaa דוגמה: 11 0 0 00000100 JNZ 4 אם החישוב האחרון הניב ערך שאינו אפס, שנה את הביצוע לכתובת 4.

סיביות מילת ההוראות ממוספרות משמאל (הסיביות המשמעותיות ביותר של סיביות) לימין (סיביות סיביות משמעותיות לפחות) מ -11 ל -0. הסדר והמיקומים הקודים של הקודים הם כדלקמן:

ביטים-קוד 11-10 סוג הוראה9-8 מרשם היעד7-6 מרשם המקורות5-3 חישוב: 000-הוסף; 001 - להפחית; 100 - לוגי AND; 101 - לוגי OR7-0 ערך קבוע v… v ו- a (0 עד 255)

ערכת ההוראות מסוכמת באיור לעיל. שימו לב למראה המובנה והמסודר של הקודים בכל הוראה. התוצאה היא עיצוב פשוט יותר עבור BYOC-I והיא מקלה על ההוראות לבני אדם.

שלב 4: קידוד הוראת מחשב

קידוד הוראת מחשב
קידוד הוראת מחשב

לפני המעבר לרמת התוכנית, בואו לבנות כמה הוראות לדוגמה באמצעות ערכת ההוראות BYOC-I לעיל.

1. העבר את הערך 1 לרשום א.רגיסי BYOC-I יכולים לאחסן ערכים מ -0 עד 255. במקרה זה, לרשם A יהיה הערך 1 (00000001 בינארי) לאחר ביצוע ההוראה.

קיצור: MVI A, 1 קודים נדרשים: סוג MVI - 00; רישום יעד A - 11; ערך - 00000001 מילה בהוראה: 00 11 00000001

2. העבר את תוכן הרשמה A לרשומה D. לאחר הביצוע, לשני הרשמים יהיה הערך המקורי ברשום A.

קיצור: MOV D, A (זכור, היעד הוא הראשון והמקור השני ברשימה) קודים נדרשים: הקלד MOV - 01; מרשם היעד ד - 10; מקור רישום א - 11 מילת ההוראות: 01 10 11 000000

3. הוסף את תוכן הרשם D לרשום A ושמור אותו בטאסטר A. לאחר הביצוע, ערך המרשם A יהיה סכום הערך המקורי של רשם A ורשום D.

קיצור: ADD A, D (התוצאה מאוחסנת במרשם היעדים) קודים נדרשים: סוג RRC - 10; מרשם היעד א - 11; מרשם המקורות D - 10; חישוב הוספה - 000 הוראת הוראה: 10 11 10 000 000 (ccc הוא 000 הראשון - הוסף)

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

קיצור: JNZ 3 קודים נדרשים: סוג JMP - 11; סוג קפיצה - 0; כתובת - 00000003 מילה הדרכה: 11 0 0 00000003 (סוג הקפיצה הוא הראשון 0)

5. קפיצה ללא תנאי לכתובת 0. לאחר הביצוע, הביצוע משתנה בהוראה בכתובת הנתונה.

קיצור: JMP 0 קוד נדרש: סוג JMP - 11; סוג קפיצה - 1; כתובת - 00000000Instruction Word; 11 1 0 00000000

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

שלב 5: אנטומיה של תוכנית מחשבים

אנטומיה של תוכנית מחשבים
אנטומיה של תוכנית מחשבים

תוכנית מחשב היא רשימת הוראות שהמחשב מבצע החל מתחילת הרשימה וממשיכה למטה ברשימה עד הסוף. הוראות כמו JNZ ו- JMP יכולות לשנות את ההוראות שיבוצעו לאחר מכן. כל הוראה ברשימה תופסת כתובת אחת בזיכרון המחשב החל מ -0. זיכרון BYOC-I יכול להכיל רשימה של 256 הוראות, די והותר למטרותינו.

תוכנות מחשב נועדו לבצע משימה נתונה. עבור התוכנית שלנו, אנו בוחרים משימה פשוטה, הסופרת מ -1 עד 5. ברור שאין הוראת "ספירה", ולכן השלב הראשון הוא פירוק המשימה לשלבים שניתן לטפל בידי ה- BYOC-I של סט הדרכה מוגבל.

שלב 1 העבר 1 לרישום AStep 2 העבר רשום A לרישום DS שלב 3 הוסף רשום D לרישום A ושמור את התוצאה ברישום AStep 4 העבר 5 לרישום EStep 5 הפחת את רשם A מרשום E ושמור את התוצאה ברישום EStep 6 אם תוצאת החיסור לא הייתה אפס, חזור לשלב 4 והמשך הספירה שלב 7 אם תוצאת החיסור הייתה אפס, חזור והתחל מחדש

השלב הבא הוא תרגום שלבים אלה להוראות BYOC-I. תוכניות BYOC-I מתחילות בכתובת 0 ומספרן ברציפות. כתובות יעד לקפיצה מתווספות אחרונות לאחר שכל ההוראות קיימות.

כתובת: הוראה - קיצור; תיאור 0: 00 11 00000001 - MVI A, 1; העבר 1 לרישום A1: 01 10 11 000000 - MOV D, A; העבר את רשום A לרישום D2: 10 11 10 000 000 - ADD A, D; הוסף את רשם D לרשום A ושמור את התוצאה ברשום A3: 00 01 00 00000101 - MVI E, 5; העבר 5 רשום E4: 10 01 11 001 000 - SUB E, A; הפחת את רשם A מרשם E ושמור את התוצאה ברשם E5: 11 0 0 00000010 - JNZ 2; אם תוצאת החיסור לא הייתה אפס, חזור לכתובת 3 והמשך ספירה 6: 11 1 0 00000000 - JMP 0; אם תוצאת החיסור הייתה אפס, חזור והתחל מחדש

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

כתובת - הוראה בינארית - הוראת פיצול בינארי - הוראה (Hex) 0 001100000001 0011 0000 0001 - 0x03011 011011000000 0110 1100 0000 - 0x06C02 101110000000 1011 1000 0000 - 0x0B803 000100000101 0001 0000 0101 - 0x01054 100111001000 10000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000 111000000010 1110 0000 0000 - 0x0E00

הגיע הזמן להעביר את התוכנית לזיכרון ה- BYOC-I לבדיקה.

שלב 6: העברת התוכנית לזיכרון ובדיקה

העברת התוכנית לזיכרון ובדיקה
העברת התוכנית לזיכרון ובדיקה
העברת התוכנית לזיכרון ובדיקה
העברת התוכנית לזיכרון ובדיקה

כאשר מסתכלים על מעגל ה "ראשי" של Logisim, בלוק BYOC-I המוצג הוא הסמל של מעגל המחשב בפועל שכותרתו "BYOC-I" בחלונית האקספלורר. כדי להזין תוכנית לזיכרון BYOC-I:

  1. לחץ באמצעות לחצן העכבר הימני על בלוק BYOC-I (המכונה "מעגל משנה") ובחר (הרחף מעל ולחץ לחיצה שמאלית) "הצג BYOC-I".
  2. מעגל BYOC-I יופיע באזור העבודה. לחץ לחיצה ימנית על הסמל "זיכרון תוכניות" ובחר "ערוך תוכן..".
  3. בעזרת עורך הקסים Logisim, הזן את הקוד ההקסדצימלי (מודגש בלבד) כפי שמוצג למעלה.

כעת אתה מוכן לבצע את התוכנית. חזור למעגל הראשי על ידי לחיצה כפולה על "BYOC-I" בחלונית סייר. קלט ההפעלה והאיפוס צריך להיות "0" כדי להתחיל. באמצעות הכלי Poke, שנה תחילה את האיפוס ל- "1" ולאחר מכן חזור ל- "0". זה הופך את כתובת ההתחלה 0x0000 ומכין את מעגל BYOC-I לביצוע. כעת תקע את קלט ההפעלה ל- "1" והתוכנית תבוצע. (הערה: עליך להקיש פעם אחת על Control-K כדי להפעיל את שעון Logisim. זוהי תכונה המאפשרת לך לעצור את שעון Logisim ולעבור בתוכנית על ידי הקשה על Control-T שוב ושוב. נסה זאת מתישהו!)

ניתן להגדיר את שעון Logisim למגוון רחב של תדרים. כפי שהורדתו הוא 8 הרץ (8 מחזורים בשנייה). באופן שבו מתוכנן מחשב BYOC-I, כל הוראה לוקחת ארבעה מחזורי שעון. אז, כדי לחשב את מהירות BYOC-I, חלק את תדר השעון ב- 4. ב 8 הרץ, מהירותו היא 2 הוראות לשנייה. אתה יכול לשנות את השעון על ידי לחיצה על "הדמה" בסרגל הכלים ובחירה באפשרות "תדירות סימון". הטווח האפשרי הוא 0.25 הרץ עד 4100 הרץ. המהירות האיטית ב 8 הרץ נבחרה כך שתוכל לצפות בספירה ברשם A.

המהירות המרבית של סימולציית BYOC-I (~ 1000 הוראות לשנייה) איטית מאוד בהשוואה למחשבים מודרניים. גרסת החומרה של מחשב BYOC המתואר בספר שלי מבצעת יותר מ -12 מיליון הוראות בשנייה!

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

  1. כתוב תוכנית שמתחילה ב- 5 וסופרת עד 0. (ANS. Count5to0.txt להלן)
  2. החל מ -2, ספור ב -3 עד שהמספר יעלה על 7. תוכל לעשות קצת חשבון נפש, בדוק אם 8 בידיעה שזה ינחת שם ואז הפעל מחדש. כתוב את התוכנית שלך באופן כללי יותר שבאמת בודק אם המספר "חורג" ממספר ספציפי. רמז: חקור מה קורה כאשר חיסור מניב ערך שלילי, למשל 8 - 9 = -1 למשל. לאחר מכן נסה את הלוגי AND כדי לבדוק אם ה- MSB במספר 8 סיביות הוא "1". (ANS. ExceedsCount.txt)

האם אתה יכול לחשוב על בעיות מאתגרות אחרות עבור מחשב BYOC-I? בהתחשב במגבלותיו, מה עוד הוא יכול לעשות? שתף אותי בחוויות שלך בכתובת [email protected]. אם אתה מעוניין לקודד מעבדים, בקר באתר שלי www.whippleway.com.שם אני נושא קידוד מכונות למעבדים מודרניים כמו סדרת ATMEL Mega המשמשת בארדואינוס.

מוּמלָץ: