מערכים

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

למשל, נניח כי נגדיר את המערך ARR, אזי התא הראשון במערך הינו ARR[0], התא השני הינו ARR[1] וכו'.

יצירת מערך מאותחל

כדי ליצור מערך ולאתחל את התאים שבו, נגדיר משתנה, ולאחריו נרשום מספר ערכים המופרדים ביניהם על ידי פסיקים.

לדוגמא:


ARR1 DB 7, 8, 9

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

בתא הראשון שמור המספר 7, בתא השני שמור המספר 8 ובתא השלישי שמור המספר 9.

התא הראשון במערך הוא תא מספר 0, התא השני הוא תא מספר 1 והתא השלישי הוא תא מספר 2.

הקוד הבא מדגים שימוש באיברי המערך. אנו שמים את התא הראשון של המערך ב-AL ואת התא האחרון ב-AH:


     MOV AL, ARR1[0]
     MOV AH, ARR1[2]

יצירת מערך לא מאותחל

ניצור מערך לא מאותחל על ידי שימוש במילה DUP, לדוגמא:


     ARR2 DB 9 DUP (?)

הפקודה יוצרת מערך לא מאותחל בעל 9 תאים.



דוגמא

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


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

DATA SEGMENT
     ARR1 DB 31H, 32H, 33H, 34H, 35H, 36H, 37H, 38H, 39H
     ARR2 DB 9 DUP (?)
DATA ENDS

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

     MOV SI, 0
CPYLOOP:
     MOV AL, ARR1[SI]
     MOV ARR2[SI], AL
     INC SI
     CMP SI, 9
     JNE CPYLOOP

     MOV SI, 0
PRNLOOP:
     MOV DL, ARR2[SI]
     MOV AH, 2H
     INT 21H

     INC SI
     CMP SI, 9
     JNE PRNLOOP

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

CODE ENDS
END START

נשים לב כי היינו חייבים להשתמש באוגר ביניים כדי להעביר מידע בין המערכים.



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

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

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

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

si

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

העלמות זין

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