לדלג לתוכן

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

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











OFFSET

[עריכה]

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

    A    DW    ?
    B    DW    ?
    MOV    BX, OFFSET B

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

מכיוון שבכל הפקודות באסמבלי אופרנד המקור חייב להיות שווה בגדולו לאופרנד היעד, ניתן לאלץ שימוש באופרנדים שלא באותו הגודל ע"י שימוש באופרטור 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.

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

    A    DW    200
    MOV    AX, TYPE A

ל-AX יוכנס 2.

LENGTH

[עריכה]

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

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

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

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

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

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