אסמבלי (מחשבון קרב) - תתי אוגרים

מדריך לאוגרים ב-Assembly x86: AX, BX, CX, DX, AL, BL, CL, DL, AH, BH, CH, DH
בארכיטקטורת x86, אוגרים הם יחידות אחסון מהירות מאוד בתוך המעבד שמאפשרות לבצע פעולות אריתמטיות, לוגיות, ושליטה בזיכרון בצורה מהירה ויעילה.
לכל אוגר יש תפקידים שונים ותתי-אוגרים שונים שמאפשרים גישה לחלקים ספציפיים של האוגר.



האוגרים הכלליים

המעבדים של ארכיטקטורת x86 מכילים ארבעה אוגרים כלליים, שכל אחד מהם מחולק לשני תת-אוגרים Lower 8-bit ו-Upper 8-bit

  1. AX – Accumulator Register
    משמש בעיקר לביצוע פעולות אריתמטיות והעברת נתונים
    • AL: תת-אוגר נמוך Lower 8-bit של AX
    • AH: תת-אוגר גבוה Upper 8-bit של AX

       

  2. BX – Base Register
    משמש לעיתים קרובות לאחסון כתובות בזיכרון או נתונים כלליים
    • BL: תת-אוגר נמוך של BX
    • BH: תת-אוגר גבוה של BX

       

  3. CX – Count Register
    משמש כלולאה עבור פעולות חזרה וביצוע הוראות מסוימות כמו LOOP
    • CL: תת-אוגר נמוך של CX
    • CH: תת-אוגר גבוה של CX

       

  4. DX – Data Register
    משמש להחזקת נתונים ולהשתתפות בפעולות מיוחדות כמו חלוקה והכפלה של מספרים גדולים
    • DL: תת-אוגר נמוך של DX
    • DH: תת-אוגר גבוה של DX


פירוט של האוגרים ותת-האוגרים

AX – Accumulator Register

  • AX: האוגר המלא 16-bit משמש לרוב לביצוע פעולות אריתמטיות והעברת נתונים
  • AL – Accumulator Low: תת-האוגר הנמוך של AX 8-bit משמש לפעולות על 8 ביטים נמוכים
  • AH – Accumulator High: תת-האוגר הגבוה של AX 8-bit משמש לפעולות על 8 ביטים גבוהים

     

דוגמאות:

MOV AX, 0x1234 – מאחסן את הערך 0x1234 ב-AX

MOV AL, 0x12 – מאחסן את הערך 0x12 בתת-האוגר AL

MOV AH, 0x34 – מאחסן את הערך 0x34 בתת-האוגר AH

BX – Base Register

  • BX: האוגר המלא 16-bit משמש לרוב כאוגר בסיס לגישה לזיכרון
  • BL – Base Low: תת-האוגר הנמוך של BX 8-bit
  • BH – Base High: תת-האוגר הגבוה של BX 8-bit

     

דוגמאות:

MOV BX, 0x5678 – מאחסן את הערך 0x5678 ב-BX

MOV BL, 0x56 – מאחסן את הערך 0x56 בתת-האוגר BL

MOV BH, 0x78 – מאחסן את הערך 0x78 בתת-האוגר BH

CX – Count Register

  • CX: האוגר המלא 16-bit משמש כלולאת מונה Counter עבור פעולות חוזרות
  • CL – Count Low: תת-האוגר הנמוך של CX 8-bit
  • CH – Count High: תת-האוגר הגבוה של CX 8-bit

     

דוגמאות:

MOV CX, 0x9ABC – מאחסן את הערך 0x9ABC ב-CX

MOV CL, 0x9A – מאחסן את הערך 0x9A בתת-האוגר CL

MOV CH, 0xBC – מאחסן את הערך 0xBC בתת-האוגר CH

DX – Data Register

  • DX: האוגר המלא 16-bit משמש להעברת נתונים, במיוחד בפעולות חלוקה והכפלה
  • DL – Data Low: תת-האוגר הנמוך של DX 8-bit
  • DH – Data High: תת-האוגר הגבוה של DX 8-bit

     

דוגמאות:

MOV DX, 0xDEF0 – מאחסן את הערך 0xDEF0 ב-DX

MOV DL, 0xDE – מאחסן את הערך 0xDE בתת-האוגר DL

MOV DH, 0xF0 – מאחסן את הערך 0xF0 בתת-האוגר DH

סיכום

אוגרים ב-Assembly x86 הם כלים חיוניים לביצוע פעולות מהירות ויעילות במעבד. האוגרים AX, BX, CX, ו-DX, יחד עם תת-האוגרים שלהם AL, AH, BL, BH, CL, CH, DL, DH משמשים לשליטה מדויקת על זרימת הנתונים והפעולות הלוגיות במערכת. היכולת להשתמש נכון באוגרים אלה היא קריטית לכתיבת קוד Assembly יעיל ואפקטיבי.

תודה! בזכותכם נוכל להשתפר