אסמבלי x86/יסודות השימוש בשפה/תחילת העבודה: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
מה שהיה כתוב אחר כך יועבר חלקית לדףאסמבלי x86/תבנית בסיסית
 
שורה 1:
{{אסמבלי}}
ע"מ לכתוב תוכנית בשפת אסמבלי כל מה שאנו צריכים זה עורך טקסט פשוט (כגון Notepad או Editor של דוס), מהדר (אסמבלר) ומעבד כמובן. את קובץ המקור של התוכנית שומרים בסיומת asm.
ההמרה של הקובץ לקובץ בר־הרצה נעשה בשני שלבים, ע"י התוכנות: מהדר ולינקר. (כמתוארבשלב בפרקהראשון א')נוצר קובץ בשפת מכונה בעל סיומת OBJ. ובשלב השני קובץ הרצה בעל סיומת EXE
== תוכנות נפוצות ==
ניתן למצוא השוואה בין האסמבלרים השונים [[w:en:Comparison of assemblers|בויקיפדיה האנגלית]].
שורה 19:
תוכנה טובה נוספת היא: Microprocessor Emulator 8086<ref>[http://emu8086.en.lo4d.com/ Microprocessor Emulator / 8086 Assembly] להורדה.</ref> שמבצעת את אותה העבודה רק בממשק גרפי ועם עוד כמה כלים יעילים.<br />
כמו כן, ניתן לבצע Debug מלא על תוכנית הרצה (EXE) ע"י הקלדת ''Debug'' ושם הקובץ בשורת הפקודה. להציג את רשימת הפקודות בתוכנה זו יש להקליד ''?''.
 
==כתיבת תכנית ראשונה==
יש מספר שיטות רבות, כשבספר נתעמק בשלוש מן השיטות לכתיבת תבנית של תכנית. את המשמעות תבינו לאחר שתעיינו בספר זה.
{{עמודות}}
{{3 עמודות}}
===שיטה ראשונה===
<div style="text-align:left; direction:ltr;"><pre>
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
 
Assume nothing
 
MOV AX, DSEG
MOV DS, AX
MOV ES, AX
 
; גוף הקוד
RET
START ENDP
 
CSEG ENDS
 
END START
</pre></div>
{{סיום עמודה}}
 
===שיטה שנייה===
<div style="text-align:left; direction:ltr;"><pre>
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
</pre></div>
{{סיום עמודה}}
 
===שיטה שלישית===
<div style="text-align:left; direction:ltr;"><pre>
model small
stack 100H
data
; הצהרה על משתנים וקבועים
 
code
mov ax,@data
mov ds,ax
; גוף הקוד
 
exit
end
</pre></div>
 
===תחביר בסיסי===
כדי שיהיה קל יותר לקרוא את הקוד אפשר להזיח בתחילת שורה על ידי TAB או 4 פעמים רווח. הערה המסבירה מה הקוד עושה יש לכתוב על ידי מקש ; (נקודה ופסיק) יש שכותבים את השורות הראשונות וכן את פקודת END באותיות גדולות.
 
שמות הפקודות נכתבות בתחילת שורה ואחריהם הפרמטרים, בדרך כלל היעד נכתב ראשון ואחריו המקור או המספר שבו עושים פעולה.
{{סיום עמודה}}
{{סיום עמודות}}
 
==הערות שוליים==
<references/>