לדלג לתוכן

1.5 מחרוזות ומערכים תרגול

תרגול 1 – סכימת ערכי מערך בגודל 8 ביט

הוראות:
הגדר מערך array db 10, 20, 30, 40, 50.
כתוב קוד שמסכם את כל הערכים ושומר את הסכום ב־sum8.


תרגול 2 – העתקת מערך של מספרים בגודל 16 ביט

הוראות:
צור שני מערכים:

src dw 1, 2, 3, 4, 5  
dst dw 0, 0, 0, 0, 0

העתק את הערכים מ־src ל־dst בעזרת לולאה.


תרגול 3 – גישה לאיבר לפי אינדקס

הוראות:
בהינתן המערך:

arr db 5, 10, 15, 20, 25

שלוף את הערך במיקום 3 (כלומר 20) ל־AL.


תרגול 4 – חישוב ממוצע של מערך

הוראות:
בהינתן מערך באורך 8 תווים:

arr db 1, 3, 5, 7, 9, 11, 13, 15

חשב את הממוצע שלהם (ללא שבר). שמור את התוצאה ב־AL.


תרגול 5 – חיפוש ערך במערך

הוראות:
כתוב קוד שמחפש את הערך 42 במערך הבא:

arr db 5, 8, 13, 42, 99, 17

אם נמצא, שמור את האינדקס ב־foundIndex, אחרת שמור -1.


תרגול 6 – העתקת מחרוזת בעזרת MOVSB ו־REP

הוראות:
צור מחרוזת מקור:

src db 'hello', 0
dst db 6 dup(?)

העתק אותה בעזרת movsb + rep.


תרגול 7 – ספירת תווים במחרוזת (עד 0)

הוראות:
בהינתן מחרוזת:

msg db 'abcdef', 0

כתוב לולאה שסופרת את כמות התווים עד שתגיע ל־0. שמור את האורך ב־CX.


תרגול 8 – השוואת שתי מחרוזות

הוראות:
השווה בין:

str1 db 'hello', 0
str2 db 'hello', 0

אם הן שוות, שים 1 ב־equalFlag, אחרת שים 0.


תרגול 9 – שימוש ב־LODSB + STOSB

הוראות:
כתוב קוד שמעביר תו-תו ממערך מקור ליעד ע"י שימוש ב־lodsb ו־stosb, עד 0.


תרגול 10 – העתקת מערך של 10 מספרים עם rep movsb

הוראות:
צור שני מערכים בגודל 10 בתים:

src db 1,2,3,4,5,6,7,8,9,10  
dst db 10 dup(?)

העתק אותם בעזרת rep movsb.