לדלג לתוכן

אסמבלי x86/תבנית בסיסית

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











יש כמה תבניות, התבנית הפשוטה למתחילים היא:

IDEAL
MODEL small
STACK 100h
DATASEG
;נתונים
CODESEG
;קוד התוכנית
start:
    mov ax, @data
    mov ds, ax
exit:
    mov ax, 4C00h
    int 21h
END start

הסבר ראשוני

[עריכה]
IDEAL
MODEL small
STACK 100h

זוהי ההגדרה הבסיסית של התוכנית. התבנית, הגודל של מקטע הנתונים וגודל המחסנית

DATASEG

הנתונים שיהיו במקטע הנתונים (נראה עליו בפרקים הבאים)

CODESEG

הוראות התוכנית

start:

הוראה מהיכן תתחיל התוכנית לרוץ בתוך הקוד.

exit:

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

END

הוראת סיום התוכנית יש לכתוב אחריה את המילה שנבחרה כסימן התחלת התוכנית (בדוגמה שלנו start).

כללי תחביר בסיסיים

[עריכה]

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

כל פקודה היא בתחילת שורה, בדרך כלל הפרמטרים מופרדים זה מזה בפסיק. הפרמטר הראשון כתוב אחרי רווח מהפקודה.

אפשר לכתוב לפני קטע קוד שורה המתארת אותו (כעין שם) ונקודותיים אחריה (נקראת תווית lable). זה יעיל כשרוצים להשתמש בפקודות קפיצה (נראה בהמשך הספר). למשל אם תרצה להורות לתוכנית שאם תנאי כלשהו מתקיים עצור את התוכנית וצא, אפשר לשלוח ל־exit בתנאי שזו המילה שנבחרה לסיום התוכנית. אם רוצים אפשר לבחור למשל stop.