1.8 אקסטרה תרגול
תרגיל 1 – קפיצה Far¶
- הגדר שתי פונקציות: אחת בסגמנט קוד ראשי, והשנייה בסגמנט קוד נוסף.
- קרא לפונקציה הרחוקה עם
call far ptr labelאוcall myFunc far. - בפונקציה הדפיס את
'Hello from FAR'וחזור.
למדו כיצד לחלק את הקוד שלכם לסגמנטים שהם מעבר ל
CODESEGעם TASM באמצעות האינטרנט והchatgpt.
תרגיל 2 – שימוש ב־SHL ו־SHR¶
- טען את הערך
3לרגיסטרal. - בצע
SHL al, 1ואז הדפס את התוצאה. - בצע
SHR al, 1והדפס שוב.
הדפסות באמצעות
int 10h, שירות 0Eh.
תרגיל 3 – שימוש ב־XCHG¶
- טען את הערכים
5ו־9לרגיסטריםaxו־bx. - החלף ביניהם באמצעות
xchg. - הדפס את שני הרגיסטרים (אפשר להדפיס ספרות דרך המרה לתווים).
תרגיל 4 – שימוש ב־LOOP¶
- אתחל את
cxל־5. - כתוב לולאה שמדפיסה את התו
'X'בדיוק 5 פעמים. - השתמש ב־
loopבלבד לבקרת הלולאה.
ודא שה־label נמצא לפני הפקודה
loopכדי לחזור אחורה.
תרגיל בונוס – לולאה שמכפילה מספר כל פעם ב־2¶
- אתחל את
alלערך1. - הפעל לולאה של 4 סבבים שמבצעת
shl al, 1. - לאחר כל סבב, הדפס את
al.