ASCII והקסדצימלי
חלק מהיחידה יסודות במסלול ה-Assembly של Coddy. שיעור 13 מתוך 45.
מחשבים מבינים רק מספרים. אז איך הם שומרים אותיות כמו 'A', 'b' או '?'?
התשובה היא ASCII (התקן האמריקאי לקידוד מידע להחלפה). ASCII היא טבלה שמקצה מספר לכל תו.
איך ASCII עובד:
| תו | מספר ASCII (עשרוני) | מספר ASCII (הקסדצימלי) |
|---|---|---|
| 'A' | 65 | 0x41 |
| 'B' | 66 | 0x42 |
| 'C' | 67 | 0x43 |
| 'a' | 97 | 0x61 |
| 'b' | 98 | 0x62 |
| '0' | 48 | 0x30 |
| '1' | 49 | 0x31 |
| ' ' (רווח) | 32 | 0x20 |
| '\n' (שורה חדשה) | 10 | 0x0A |
| '\0' (null) | 0 | 0x00 |
ערכי ASCII חשובים שכדאי לשנן עבור שפת אסמבלי:
| תו | הקסדצימלי | למה זה נחוץ |
|---|---|---|
| 'A' | 0x41 | האותיות הגדולות מתחילות כאן |
| 'a' | 0x61 | האותיות הקטנות מתחילות כאן |
| '0' | 0x30 | הספרות מתחילות כאן |
| רווח | 0x20 | מפריד בין מילים |
שורה חדשה (\n) | 0x0A | מעבר לשורה הבאה |
תו null (\0) | 0x00 | סמן סוף מחרוזת |
שימו לב לדפוס:
| דפוס | דוגמה |
|---|---|
| האותיות הגדולות A-Z מופיעות ברצף | 'A'=65, 'B'=66, 'C'=67... |
| האותיות הקטנות a-z מופיעות ברצף | 'a'=97, 'b'=98, 'c'=99... |
| הספרות 0-9 מופיעות ברצף | '0'=48, '1'=49, '2'=50... |
| אות קטנה = אות גדולה + 32 | 'a' (97) = 'A' (65) + 32 |
איך מחרוזת נשמרת בזיכרון:
המילה "Hi" עם שורה חדשה נשמרת כך:
| תו | הקסדצימלי | בינארי |
|---|---|---|
| 'H' | 0x48 | 01001000 |
| 'i' | 0x69 | 01101001 |
| '\n' | 0x0A | 00001010 |
באסמבלי, כותבים זאת כך: db 'Hi', 0x0A
למה צריך את זה בשביל אסמבלי:
כשמגדירים מחרוזת בקובץ data.asm, מאחסנים בזיכרון קודי ASCII. כשמדפיסים מחרוזת, מערכת ההפעלה קוראת את קודי ה-ASCII האלה ומציגה את התווים המתאימים.
נסו בעצמכם
השיעור הזה לא כולל אתגר קוד.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
2שיטות ספירה
למה בינארי?מספרים בינארייםמעשרוני לבינארילמה הקסדצימלי?מהקסדצימלי לעשרונימעשרוני להקסדצימליASCII והקסדצימליתרגלו בעצמכם: Assembly אונליין
מצאו את הקוד של כל תו: ממיר ASCII