אסמבלי x86/ייצוג מספרים
אסמבלי x86 |
---|
|
עשרוני, בינארי והקסדצימלי
[עריכה]כדאי לדעת: עדיף ללמוד על הבסיסים השונים להרחבה נוספת |
השיטה שאנחנו מונים דברים היא על ידי ספירה בבסיס שבו 10 ספרות. הספרות מ-1 ל-9 והספרה 0. כל הוספת אחד מעלה את הספרה הימנית ביותר, ואחר כך מעלים את שאר הספרות בתורן בכל פעם שהספרה שמימין לה מגיעה לאפס.
אמנם אנחנו מורגלים בשיטה זו. אבל בתיכנות זה לא נוח, כי המחשב עובד על ידי מידע בוליאני (קיים/לא קיים) האם יש מתח גבוה או נמוך בנקודה מסויימת. לכן השיטה המתאימה לייצוג המספרים במקביל היא השיטה הבינארית. כאן המנין הוא הפיכת הספרה הימנית ביותר מ1 ל0 וחזור, וכך כל ספרה משמאל לה משתנה בתורה. לדוגמא: 1,10,11,100,101,110,111 כאן כתובים המספרים 1 עד 7. כמובן אפשר גם לכתוב בראש המספר אפסים כדי להשלים את המספר למספר ספרות שווה.
היצוג ההקסדצימלי (ייצוג בבסיס 16) הוא תרגום קל של היצוג הבינארי. כל 4 ספרות בינריות הם ספרה אחת. כדי להשלים את הספרות מעל 9 משתמשים באותיות הלטיניות A-F. כך Fh=1111b=15d.
ייצוג מספרים במחשב
[עריכה]כל ספרה בינרית נקראת סיבית. כל יחידה בזיכרון נקראת בית. היא מכילה 8 ספרות בינריות. אפשר לעשות טבלה של 16*16 ולהכניס לתוכה את כל הערכים שיכולים להתקבל. המחשב קורא תמיד בקבוצות שהם חזקות של 2. לכן יש אפשרות ל-8, 16, 32, 64 וכו'. קריאה של כמה בתים ביחד היא פעולה שמצריכה פחות זמן, אבל נדרש פס נתונים רחב יותר בשבילה. כשמורים להכניס כמה בתים ביחד לכתובת בזיכרון אז הבתים נכנסים לפי הסדר מהכתובת הנמוכה ביותר לכתובת הגבוהה יותר כלומר אם ההוראה היתה להכניס לתחילת מקטע כתובת בת 2 בתים אז הבית הראשון יהיה בכתובת 0 של אותו מקטע והשני בכתובת 1. קיימת שיטה הנקראת BIG ENDIAN שבה הסדר שהבתים נכנסים לזיכרון הפוך.
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
0001 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0010 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
0011 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
0100 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 |
0101 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 |
0110 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 |
0111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 |
1000 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 |
1001 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 |
1010 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 |
1011 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 |
1100 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 |
1101 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 |
1110 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 |
1111 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 |
בטבלה זו השורות הן 4 הסיביות השמאליות והעמודות הן 4 הסיביות הימניות. מספר הקסדצימלי A5 שהוא בינרי 0101 1010 , בעשרוני הוא 165
מספרים שליליים
[עריכה]המחשב לא מכיר את הסימנים +/-. כדי להגדיר מספר כשלילי, נקבעו מספר שיטות, כאשר ברובם העיקרון הוא שהסיבית השמאלית ביותר מסמנת את הסימן. אם היא דלוקה המספר שלילי, אם היא כבויה המספר חיובי. אחת השיטות החשובות היא, שיטת המשלים ל-2. בשיטה זו כדי לעבור ממספר למספר הנגדי, יש להפוך את כל הסיביות שלו ולהוסיף 1 לתוצאה. למשל המספר 01010101 הוא +85 כדי לעבור ל-85- יש להפוך את כל הסיביות ← 10101010 ולהוסיף 1 התוצאה:10101011
אם נתייחס למספר כחסר סימן הוא 171 שזה כמו 256-85.
יחידות נתונים
[עריכה]היחידות השימושיות הן:
- סיבית אחת (BIT)
- בית - 8 סיביות (BYTE)
- מילה - 16 סיביות שני בתים (WORD)
- מילה כפולה 32 סיביות 4 בתים (DUBBLE WORD)