לדלג לתוכן

אסמבלי 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 שבה הסדר שהבתים נכנסים לזיכרון הפוך.

ייצוג בינארי של הערכים מ-0 עד 255
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)