כללי שימוש במשתנים

לצורך פירוט הכללים, נניח שקיימת תוכנית במבנה הבא, ואנו כותבים הוראות בתור איזור ה-CODE שלה:


STA SEGMENT STACK
     DB 100H DUP (0)
STA ENDS

DATA SEGMENT
     VAR1 DB ?
     VAR2 DB ?
DATA ENDS

CODE SEGMENT
     ASSUME CS:CODE, DS:DATA, SS:STA
START:
     MOV AX, DATA
     MOV DS, AX

     ; Code goes here...

     ; End the program
     MOV AX, 4C00H
     INT 21H

CODE ENDS
END START

הכללים

  1. ניתן להציב ערך במשתנה ללא שימוש באוגר, למשל:

     MOV VAR1, 4

  1. לא ניתן להעתיק משתנה אחד אל משתנה אחר.

    הפקודה הבאה איננה חוקית:

MOV VAR1, VAR2

פתרון:

     MOV DL, VAR1
     MOV VAR2, DL



  1. יש לשים לב שכמות הנתונים שאנו רוצים להכניס למשתנה מתאימה לגודל המשתנה שהגדרנו.

  1. אין לבצע העברת נתונים באופן ישיר בין משתנה לתא זיכרון. אם ברצוננו להעביר מידע בין משתנה לתא זיכרון צריך אוגר מתאים שיתווך באמצע.

  1. אפשר לבצע פעולות לוגיות ומתמטיות על משתנים, כגון SHR, CMP, INC, SUB ועוד.

  1. ניתן לרשום את שם המשתנה בסוגריים מרובעים. המשמעות זהה לאותו שם משתנה ללא הסוגריים המרובעים.

    לדוגמא:

    הקוד הבא ידפיס את המספר 3 (קוד ASCII 33H) פעמיים:


     MOV VAR1, 33H
     MOV [VAR2], 33H

     MOV DL, VAR1
     MOV AH, 2
     INT 21H

     MOV DL, [VAR2]
     MOV AH, 2
     INT 21H

מאת: שמעון הטבח

העלמות הזין של יוסי הקוסם

יוסי יקירי
אם הזין שלך נעלם בתוך מחסנית קסמים אני מקווה לפחות שאתה לא מתכוון לחבר את המחסנית לרובה דרוך

בשמחה שמעון הטבח
מאת: הילה

si

היי, איך הכנסתם ערך כלשהו למערך? כשעשיתם MOV ARR2[SI], AL. למה si נמצא בסוגריים? מה הוא אומר?
מאת: יוסי הקוסם

העלמות זין

נעלם לי הזין מקסם שהשתבש (דחפתי את הזין למחסנית קסם וניראה לי שלא העברתי את הזין לטיפוס מילה הזיו שלי ללא ברית מילה אז זה השתבש)
תעזרו בבקשה!!!
שיתוף:
| עוד