אסמבלי x86/אופרטורים/אופרטורי מילה: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
ינון א (שיחה | תרומות)
אין תקציר עריכה
ינון א (שיחה | תרומות)
אין תקציר עריכה
שורה 1:
{{אסמבלי}}
==OFFSET==
מחזיר את היסט המשתנה יחסית למקטע בו הוא מוגדר. לדוגמא:
<div style="text-align:left; direction:ltr;"><pre>
A DW ?
B DW ?
MOV BX, OFFSET B
</pre></div>
לתוך BX יכנס 2 (ההיסט של B מתחילת מקטע הנתונים).
 
==PTR==
מכיוון שבכל הפקודות באסמבלי אופרנד המקור חייב להיות שווה בגדולו לאופרנד היעד. ניתן לאלץ שימוש באופרנדים שלא באותו הגודל ע"י שימוש באופרטור PTR.
===WORD PTR===
מאלץ את האופרנד שאחרי אופרטור זה להתנהג כאילו הו בגודל מילה. לדוגמא:
<div style="text-align:left; direction:ltr;"><pre>
A DW ?
MOV AL, 0FCH
MOV A, WORD PTR AL
</pre></div>
לתוך A יכנס 0FCH.
 
===BYTE PTR===
מאלץ את האופרנד שאחרי אופרטור זה להתנהג כאילו הו בגודל בית. לדוגמא:
<div style="text-align:left; direction:ltr;"><pre>
==TYPE==
A DW 89ABH
MOV AL, BYTE PTR A
</pre></div>
לתוך AL יכנס 0ABH.
 
==TYPE==
מחזיר את גודל הבתים שסוג המשתנה שמופעיע אחרי מילה זו תופס. לדוגמא:
<div style="text-align:left; direction:ltr;"><pre>
A DW 200
MOV AX, TYPE A
</pre></div>
ל AX יכנס 2
==LENGTH==
מחזיר את מס' '''יחידות''' הזכרון (בית/מילה) שהוקצו עבור מערך באמצעות DUP. לדוגמא:
 
<div style="text-align:left; direction:ltr;"><pre>
A DW 100H DUP (1924)
MOV AX, LENGHT A
</pre></div>
לתוך A יכנס 100H.
<br />למשתנים שלא הוגדר DUP יוחזר הערך 1.
==SIZE==
מחזיר את תוצאת הכפל של LENGHT ו TYPE. לדגומא:
<div style="text-align:left; direction:ltr;"><pre>
A DW 100H DUP (?)
MOV BX, SIZE A
</pre></div>
לתוך BX יכנס 200H.
{{קצרמר}}