אסמבלי 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.