אסמבלי/יסודות השימוש בשפה/תחילת העבודה

מתוך ויקיספר, אוסף ספרי הלימוד והמדריכים החופשי.

קפיצה אל: ניווט, חיפוש
אסמבלי









[עריכת תבנית]

ע"מ לכתוב תוכנית בשפת אסבלר כל מה שאנו צריכים זה עורך טקסט פשוט (כגון Notepad או Editor של דוס), מהדר (קומפיילר) ומעבד כמובן.

לאחר ששמרנו את הקובץ עם סיומת asm, יש להדר את הקובץ ע"י מהדר (Compiler) מתאים (ראה להלן). אם המהדר לא ייתקל בשגיאות תחביר במהלך ההידור, הוא יצור קובץ obj - תרגום של התכנית שכתבנו בשפת מכונה. לאחר מכן יש לשלוח קובץ זה (obj) ללינקר (Linker) וליצור קובץ בר הרצה (EXE). ניתן לשלוט בפעילות תקינה של תוכנית ההרצה ע"י תוכנת Deubg מתאימה.

תוכן עניינים

[עריכה] תוכנות נפוצות

יש מספר תוכנות לעריכה, הידור, קישור וניפוי שגיאות בתוכניות אסבמלר:
מהמפורסמות ביניהן היא תוכנת Turbo Debugger[1] של חברת Borland הפועלת בסביבת DOS. תוכנה זו מאפשרת הרצה מלאה של תוכנת אסמבלר כולל הידור וקישור ובדיקת שגיאות שורה אחרי שורה תוך הצגה של מצב האוגרים, הזכרון והמחסנית.
תוכנה טובה נוספת היא Microprocessor Emulator 8086[2] שמבצעת את אותה העבודה רק בממשק גרפי ועם עוד כמה כלים יעילים.
כמו כן, ניתן לבצע Debug מלא על תוכנית הרצה (EXE) ע"י הקלדת Debug ושם הקובץ בשורת הפקודה. להציג את רשימת הפקודות בתוכנה זו יש להקליד ?.

[עריכה] כתיבת תכנית ראשונה

יש שתי שיטות עיקריות לכתיבת תבנית של תוכנית. את המשמעות תבינו לאחר שתעיינו בספר זה.

[עריכה] שיטה ראשונה

TITLE   8086 Code Template (for EXE file)
       #MAKE_EXE#

; הצהרה על קבועים ומאקרו

DSEG    SEGMENT 'DATA'

; הצהרה על משתנים

DSEG    ENDS

SSEG SEGMENT STACK 'STACK'
        DW      100h DUP (?)  ; מחסנית
SSEG ENDS

CSEG    SEGMENT 'CODE'

START   PROC    FAR

    ASSUME CS:CSEG, DS:DSEG, ES:ESEG, SS:SSEG
    MOV     AX, DSEG
    MOV     DS, AX
    MOV     ES, AX

; גוף הקוד
    
    RET
START   ENDP

CSEG    ENDS 
        END    START

[עריכה] שיטה שנייה

TITLE   8086 Code Template (for EXE file)

       #MAKE_EXE#

; הצהרה על קבועים ומאקרו

DSEG    SEGMENT 'DATA'

; הצהרה על משתנים

DSEG    ENDS

SSEG    SEGMENT STACK   'STACK'
        DW      100h    DUP(?)  ; מחסנית
SSEG    ENDS

CSEG    SEGMENT 'CODE'

START   PROC    FAR

    PUSH    DS
    MOV     AX, 0
    PUSH    AX

    MOV     AX, DSEG
    MOV     DS, AX
    MOV     ES, AX

; גוף הקוד

    RET
START   ENDP

CSEG    ENDS 

        END    START

[עריכה] הערות שוליים

  1. הורדת Turbo Debugger
  2. אתר הבית של 8086 Microprocessor Emulator כולל הורדה
כלים אישיים