האופרטור offset (וטבלת הסמלים)
תחביר: op.offset op הוא שם של משתנה או תוית (label).אופרטור זה
מחזיר את ההיסט (offset) של op ביחס לסגמנט שבו הוא מוגדר.
מחזיר את ההיסט (offset) של op ביחס לסגמנט שבו הוא מוגדר.
לדוגמא,נתון קטע תכנית
data segment
() db 15 dup
? v db
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov bx,offset v
mov cx,offset start
ההוראה mov bx,offset v תרשום 15 בתוך bx.
ההוראה mov cx,offset start תרשום 0 בתוך cx.
lea
תחביר:op1.lea op1,op2 חייב להיות אוגר בגודל 16 סיביות (למעט אוגר סגמנט) ו op2 הוא כתובת בזכרון.הוראה זו מאתחלת את op1 בהיסטו של op2.
הוראה זו אינה משפיעה על הדגלים.
הוראה זו אינה משפיעה על הדגלים.
דוגמאות:
א-lea dx,msg (שווה ערך ל mov dx,offset msg)
ב-[bx .lea bx,msg[si יאותחל בoffset(msg)+si ,למשל: אם 5=offset(msg)
ו 3=si אזי bx יאותחל ב 8. ג-lea ax,ds:20, axיאותחל ב 20.
ו 3=si אזי bx יאותחל ב 8. ג-lea ax,ds:20, axיאותחל ב 20.
האופרטור length
תחביר: op.length op הוא שם של משתנה
אופרטור זה מחזיר את כמות האלמנטים המוקצים בעזרת האופרטור dup.
דוגמאות
א-בהתיחס להגדרה זו :()tab dw 150 dup, ההוראה mov ax,length tab תרשום 150 ב ax.
ב-בהתיחס להגדרה זו :var db 9,2,4,7 ההוראה mov al,length var תרשום 1 ב al
ג-בהתיחס להגדרה זו :abcde'' str db ההוראה mov al,length str תרשום 1 ב al.
ד-בהתיחס להגדרה זו :() dup150?, t dw ההוראה mov ax,length t תרשום 1 ב ax.
הנחיית org
תחביר: exp .org exp הוא בטוי חשבוני שערכו חייב להיות ידוע בסריקה הראשונה של האסמבלר.
הנחייה זו מאפשרת לשנות את ערכו של מונה האסמבלר (location counter)
דוגמה א' org 5
דוגמה ב' 6=s1
8= s2
org s1*s2 אם המספר,(או תוצאת הביטוי) הרשום לימין org,יעלה על 65535,תוקרן שגיאה.
האופרטור seg
תחביר:seg op . op הוא שם של משתנה או של תוית (label)
אופרטור זה מחזיר את כתובתו של הסגמנט שבו מוקצה op
דוגמה:
mov ax,seg var
mov ds,ax
לאחר 2 פעולות אלה,האוגר ds מצביע לסגמנט שבו מוקצה המשתנה var דוגמה נוספת: mov dx,seg start. זו פניה אל מע' ההפעלה בדומה להוראה mov ax,data
הוראת mov
תחביר: op1.mov op1,op2 הוא שם של משתנה או אוגר (כל אחד מהם גודלו בית או מילה)
op2 הוא שם של משתנה או אוגר (כל אחד מהם גודלו בית או מילה),או מספר קבוע או
סמל.פעולה זו מעתיקה את op2 לop1 (op2 הוא המקור ו op1 הוא היעד) מבלי לשנות את
סמל.פעולה זו מעתיקה את op2 לop1 (op2 הוא המקור ו op1 הוא היעד) מבלי לשנות את
המקור.לאחר פעולה זו,ערכם של היעד והמקור זהים.כלומר: op2 -> op1
הוראה זו אינה משפיעה על הדגלים.
הערות:
א-אסור ל 2 האופרנדים להיות משתני זכרון.לדוגמה: ההוראה v1,v2 mov שגויה.
ב-מותר ל 2 האופרנדים להיות אוגרים,אולם שניהם חיבים להיות בית או מילה.
לדוגמה: ההוראה ax,bx mov תקינה אולם ההוראה ax,bh mov שגויה.
ג-לא ניתן לאתחל אוגר סגמנט בנתון מידי.לדוגמה ההוראהds,5 mov שגויה.
ד-לא ניתן לאתחל אוגר סגמנט,בערכו של אוגר סגמנט אחר,בפעולת mov.
דוגמה: mov ss,dsהיא הוראה שגויה.
ה-האוגר cs אינו יכול לשמש כיעד. דוגמה: cs,ax mov היא הוראה שגויה.
ו-האוגר ip אינו נגיש. דוגמה: mov ax,ip ו mov ip,ax הן הוראות שגויות
ג-לא ניתן לאתחל אוגר סגמנט בנתון מידי.לדוגמה ההוראהds,5 mov שגויה.
ד-לא ניתן לאתחל אוגר סגמנט,בערכו של אוגר סגמנט אחר,בפעולת mov.
דוגמה: mov ss,dsהיא הוראה שגויה.
ה-האוגר cs אינו יכול לשמש כיעד. דוגמה: cs,ax mov היא הוראה שגויה.
ו-האוגר ip אינו נגיש. דוגמה: mov ax,ip ו mov ip,ax הן הוראות שגויות
דוגמאות
א- ax,table mov
ב-table,cx mov
ג- es:[bx],dx mov (אפשר להחליף את bx ב si ב di או ב bp אך לא באוגרים אחרים)
ד- ds,ax mov
ה- bl,ah mov
ו- 30-,cl mov
ז- h55 mov byte ptr[bx],
ח- [20]:al,ds mov
ט- ds:30,10 ptr byte mov
י- tab) mov ah,tab[si]מוקצה כ db)
י"א- bx],bl] mov
י"ב- [bx],ax mov
י"ג- [5+al,[bx mov
י"ד- si]][ v) mov ax,[vמקצה כ dw)
ט"ו- [4]mov al,[bx][si]
ט"ז- 4+mov al,[bx][si]
י"ז- mov al,4[bx][si]
הוראת xchg
תחביר: op1,xchg op1,op2 ו op2 הם שמות של משתנים או אוגרים (כל אחד מהם גודלו בית או מילה).אסור לאף אחד מהם להיות מספר קבוע.
פעולה זו מחליפה את op2 ו op1 ביניהם.כלומר,המספר שהיה רשום ב op1 יעתק ל op2 ולהפך.
הוראה זו אינה משפיעה על הדגלים.
הערות:
א-אסור ל 2 האופרנדים להיות משתני זכרון.לדוגמה: ההוראה xchg v1,v2 שגויה.
ב-מותר ל 2 האופרנדים להיות אוגרים,אולם שניהם חיבים להיות בית או מילה.
ג-מותר לאחד האופרנדים להיות משתנה זכרון ולשני אוגר אולם שניהם חיבים להיות בית או מילה.
דוגמאות
א- xchg a_word,dx
ב- xchg ah,cl
הוראת nop
תחביר: nop
הוראה זו היא פעולת סרק (הוראת מכונה h90)
אין תגובות:
הוסף רשומת תגובה