שאלה לגבי אסמבלי

  • פותח הנושא xrat
  • פורסם בתאריך

xrat

New member
שאלה לגבי אסמבלי

אהלן, כאשר אני עושה tlink יש קישור אבל אני מקבל אזהרה: WARNING: DOSSEG directory ignored in model DUGMA.ASM השאלה מה זה אומר, למה, והאם זה יכול לגרום לבעיות בהפעלת התוכנית לאחר מכן. תודה.
 

xrat

New member
זה קורה לי עבור כל תוכנית

אני מבין מה אומרת הטעות, שזה לא יתייחס לזה כמו שדוס רוצה( PSP וכו) אבל השאלה למה....אולי משהו בקבצי tasm tlink??
 

DecayCell

New member
ובכל תוכנית יש אותן הגדרות?

אם לא תעלה את התוכנית, או לפחות את קובץ הבסיס שנתנו לכם בבית-הספר, לא נוכל לעזור...
 

xrat

New member
מצטער...

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

MotiAd

New member
עצה קטנטונת...

אולי תרצה לעבוד בצורה אחרת שבה כל חלק מהקוד והקובץ שאתה כותב יהיה בצורה הבאה: מקטע הקוד יתחיל כך Code Segment ובסוף יסגר ע"י Code Ends כנ"ל לגבי כל אחד אחר. זה נותן מראה יותר נחמד. אבל שוב דעה אישית שלי.
 

MotiAd

New member
לא וכן...

DOSSEG בעצם מגדיר את העובדה שהקוד שלך שכתוב בקובץ אסמבלי יהיה מותאם לצורה שבה מערכת הפעלה דוס רוצה לקבל אותו, כלומר, חלק TEXT שמאחסן את הקוד בקובץ, DATA משתנים, BSS חלק דינמי וכו'. פשוט הוא אומר לך שמודל הזיכרון שבו אתה משתמש בקובץ שלך לא ייצור קובץ "מותאם לדוס" אבל קוד הוא עדיין קוד וזה ירוץ. אבל בעירבון מוגבל. יכול להיות שדוס לא יבין מה אתה רוצה ממנו ואז כלום לא יעבוד לך.
 

voguemaster

New member
הסתכלתי בהגדרה וזה לא בדיוק נכון

DOSSEG מגדיר סידור סגמנטים בהתאם למפרט של מיקרוסופט עבור שפות דור שלישי (אתן לך ניחוש: C). כנראה שתחת DOS זה יוצא יותר יעיל או משהו מוזר כזה. בכל אופן, תחת מודל small כמו בתוכנית המצורפת אין הרבה משמעות לכל העניין של סידור CODE SEG ו-DATA SEG בגלל שבמודל small הם בדיוק באותו סגמנט! לכן אין משמעות לסידור כזה או אחר ולכן הוא פשוט מתעלם מ-DOSSEG כי זה לא רלוונטי...
 
למעלה