אסמבלי x86/אופרטורים/אופרטורי מילה

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
קפיצה לניווט קפיצה לחיפוש
אסמבלי x86











OFFSET[עריכה]

מחזיר את היסט המשתנה יחסית למקטע בו הוא מוגדר. לדוגמה:

    A    DW    ?
    B    DW    ?
    MOV    BX, OFFSET B

לתוך BX יכנס 2 (ההיסט של B מתחילת מקטע הנתונים).

PTR[עריכה]

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

WORD PTR[עריכה]

מאלץ את האופרנד שאחרי אופרטור זה להתנהג כאילו הוא בגודל מילה. לדוגמה:

    A    DW    ?
    MOV    AL, 0FCh
    MOV    A, WORD PTR AL

לתוך A יכנס FCh. האות h מורה לקומפיילר להתייחס לביטוי כמספר הקסה-דצימלי (בסיס 16).

BYTE PTR[עריכה]

מאלץ את האופרנד שאחרי אופרטור זה להתנהג כאילו הוא בגודל בית. לדוגמה:

    A    DW    89ABh
    MOV    AL, BYTE PTR A

לתוך AL יכנס ABh.

TYPE[עריכה]

מחזיר את גודל הבתים שסוג המשתנה שמופיע אחרי מילה זו תופס. לדוגמה:

    A    DW    200
    MOV    AX, TYPE A

ל-AX יוכנס 2.

LENGTH[עריכה]

מחזיר את מס' יחידות הזכרון (בית/מילה) שהוקצו עבור מערך באמצעות DUP. לדוגמה:

    A    DW    100H DUP (1924)
    MOV    AX, LENGTH A

לתוך AX יוכנס 100H.
למשתנים שלא הוגדר DUP יוחזר הערך 1.

SIZE[עריכה]

מחזיר את תוצאת הכפל של LENGTH ו-TYPE. לדגומה:

A    DW    100H DUP (?)
    MOV   BX, SIZE A

לתוך BX יוכנס 200H.