איך עובד מעבד 6502 / 6507?

מה זה מעבד?

המעבד הוא הלב של המחשב. הוא אחראי לקרוא פקודות מהזיכרון, להבין אותן, ולבצע. המעבד 6502 (וגרסאתו המוקטנת 6507) היה בשימוש נרחב בקונסולות כמו Atari 2600, מחשבי Apple II, Commodore 64 ועוד.

איפה נמצא המעבד?

המעבד מרותך ללוח האם של המחשב או הקונסולה. הוא מתחבר לרכיבים אחרים כמו זיכרון RAM, שבב תצוגה (כמו TIA), ו־ROM שמכיל את הקוד של המשחק או התוכנה.

איך המעבד יודע מה לעשות?

המעבד לא "חושב" – הוא פועל לפי מחזור קבוע:

  1. שולף בייט מהזיכרון לפי הכתובת ש־PC מצביע עליה
  2. מפענח את הבייט לפי טבלת Opcode
  3. מבצע את הפקודה (כמו טעינה, חיבור, קפיצה...)
  4. עובר לכתובת הבאה וחוזר חלילה

מחזור פקודה (Instruction Cycle)

  1. Fetch – שליפת הפקודה מהזיכרון דרך ערוץ ה־Address Bus
  2. Decode – פענוח הבייט (Opcode) ביחידת הפענוח
  3. Execute – ביצוע הפעולה ע"י ה־ALU, עדכון רגיסטרים או קפיצה

רכיבי המעבד המרכזיים

  • PC – מצביע לפקודה הבאה בזיכרון
  • ALU – יחידת חישוב לוגית שמבצעת פעולות מתמטיות ולוגיות
  • A – Accumulator – רגיסטר ראשי לחישובים
  • X, Y – רגיסטרים לעבודה עם זיכרון ופרמטרים
  • SP – Stack Pointer – מצביע למחסנית
  • P – Status Register – מכיל ביטים של סטטוס כמו Carry, Zero ועוד

תרשים פנימי של המעבד

תרשים ALU
המעבד כולל ALU, רגיסטרים, ומפענח פקודות – הכל בחומרה!

מה זה Opcode?

כל פקודה שהמעבד יכול לבצע מיוצגת על ידי Opcode – מספר הקסה־דצימלי אחד (בייט אחד). לדוגמה, הפקודה LDA #$10 תהפוך לבייטים A9 10.

טבלת פקודות נפוצות

Opcodeפקודהמה היא עושה
A9LDA #immטען ערך ל־A
8DSTA absשמור את A בכתובת
69ADC #immחבר ערך ל־A
E9SBC #immחסר ערך מ־A
4CJMP absקפוץ לכתובת
D0BNEקפוץ אם Zero=0

לסיכום

המעבד הוא רכיב פשוט יחסית – אך חכם בתכנון. הוא מבצע פקודות אחת־אחת, לפי סדר שמוגדר מראש בתוכנה, בעזרת ALU, רגיסטרים, וטבלת אופקודים. המעבד 6502 היה מהפכני לזמנו, בזכות גודלו הקטן, צריכת חשמל נמוכה, ופשטות שהתאימה למשחקים, מחשבים, וקונסולות של שנות ה־80.

🔗 להוראות נוספות באתר 6502.org

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

8bitworkshoplogo assembly