לדלג לתוכן

1.8 אקסטרה תרגול

תרגיל 1 – קפיצה Far

  1. הגדר שתי פונקציות: אחת בסגמנט קוד ראשי, והשנייה בסגמנט קוד נוסף.
  2. קרא לפונקציה הרחוקה עם call far ptr label או call myFunc far.
  3. בפונקציה הדפיס את 'Hello from FAR' וחזור.

למדו כיצד לחלק את הקוד שלכם לסגמנטים שהם מעבר לCODESEG עם TASM באמצעות האינטרנט והchatgpt.


תרגיל 2 – שימוש ב־SHL ו־SHR

  1. טען את הערך 3 לרגיסטר al.
  2. בצע SHL al, 1 ואז הדפס את התוצאה.
  3. בצע SHR al, 1 והדפס שוב.

הדפסות באמצעות int 10h, שירות 0Eh.


תרגיל 3 – שימוש ב־XCHG

  1. טען את הערכים 5 ו־9 לרגיסטרים ax ו־bx.
  2. החלף ביניהם באמצעות xchg.
  3. הדפס את שני הרגיסטרים (אפשר להדפיס ספרות דרך המרה לתווים).

תרגיל 4 – שימוש ב־LOOP

  1. אתחל את cx ל־5.
  2. כתוב לולאה שמדפיסה את התו 'X' בדיוק 5 פעמים.
  3. השתמש ב־loop בלבד לבקרת הלולאה.

ודא שה־label נמצא לפני הפקודה loop כדי לחזור אחורה.


תרגיל בונוס – לולאה שמכפילה מספר כל פעם ב־2

  1. אתחל את al לערך 1.
  2. הפעל לולאה של 4 סבבים שמבצעת shl al, 1.
  3. לאחר כל סבב, הדפס את al.