לדלג לתוכן

לשימושכם בתרגול, הנה אתר עם כל הפסיקות הקיימות בDOS ו- בBIOS
https://www.stanislavs.org/helppc/idx_interrupt.html

תרגיל 1 – הדפסת תו בודד

  1. הגדר את הרגיסטרים כך שהפסיקה ‎INT 21h‎ (שירות 02h) תדפיס את האות A.

  2. לאחר ההדפסה סיים את התוכנית בצורה תקנית (AH = 4Ch).


תרגיל 2 – אקו של תו מקלדת

  1. קרא תו מהמקלדת בעזרת ‎INT 21h‎ (AH = 01h).

  2. הדפס את התו חזרה למסך עם ‎INT 10h‎ (AH = 0Eh).


תרגיל 3 – הדפסת מחרוזת

  1. צור במקטע הנתונים מחרוזת ‎'Hello, DOS!$'‎.

  2. הדפס אותה בעזרת ‎INT 21h‎ (AH = 09h).

  3. סיים את התוכנית.


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

  1. הקצה Buffer כפי שמחייב השירות AH = 0Ah (אורך + ספירת תווים + מרחב).

  2. קרא עד 19 תווים מהמקלדת ו‑אחר‑כך הדפס אותם חזרה בעזרת AH = 09h‎.
    ‑‑ זכור להוסיף ‘$’ בסוף לפני ההדפסה.


תרגיל 5 – פסיקה מותאמת אישית (INT 60h)

  1. כתוב Handler שמדפיס כוכבית ‎*‎ בכל קריאה, ואז מבצע ‎IRET.

  2. שמור את ה‑Vector הישן של ‎INT 60h‎, התקן את החדש שלך בטבלת ה‑IVT,
    קרא פעמיים ‎INT 60h‎ מהקוד הראשי, ואז שחזר את ה‑Vector הישן לפני סיום.


תרגילי העשרה

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

תרגיל 6 - תצוגת שעה ממסך ה‑BIOS

  1. קבל את ערך מונה ה‑טיימר (BIOS Tick Counter) בעזרת ‎INT 1Ah‎ (AH = 00h).

  2. המר את מספר ה‑Ticks (55 Ticks ≈ שנייה) לשניות שעברו מאז חצות,
    הדפס את המספר בעזרת שירות AH = 02h (תו‑תו).
    (מספיקה הצגה כ‑Decimal ללא עיצוב של שעות/דקות).


תרגיל 7 – “Press any key to continue…”

  1. הדפס את הטקסט הנ”ל בעזרת AH = 09h.

  2. המתן להקשה ב‑INT 16h‎ (BIOS Keyboard, AH = 00h).

  3. נקה את התו מה‑Buffer (אין צורך להציג אותו) וסיים.


תרגיל 8 – טיפול בסיסי בשגיאה

  1. נסה לפתוח קובץ בלתי‑קיים בעזרת ‎INT 21h‎ (AH = 3Dh).

  2. קבל את ערך שדה CF (Carry Flag) אחרי הקריאה:
    ‑‑ אם CF = 1, הדפס “Error!”; אחרת הדפס “Opened!”.
    (טיפ: השתמש ב‑JC / JNC).