פורסם 2005 ביולי 320 שנים למה אחרי שהמהדר הופך את שפת התיכנות לשפת מכונה, אי אפשר פשוט לשמור את השפת מכונה במקום כל פעם לעשות את תהליך ההידור מחדש?
פורסם 2005 ביולי 320 שנים למה אחרי שהמהדר הופך את שפת התיכנות לשפת מכונה, אי אפשר פשוט לשמור את השפת מכונה במקום כל פעם לעשות את תהליך ההידור מחדש? מה בדיוק הבעיה? אם עשית הידור ולדוגמא יצרת EXE, אתה יכול אפילו לערוך את "תוכן" שפת המכונה על ידי שימוש בתוכנת DEBUG שקיימת מאז ימי DOS העליזים. כמו כן, אם אתה רק עושה הידור ולא יוצר EXE, הרי יצרת קובץ OBJ שגם אותו אתה יכול לשמור ולהדביק (LINK) לספריות לצורך יצירת EXE.
פורסם 2005 ביולי 320 שנים באמת שאלה מוזרה. רוב סביבות העבודה (וגם make) לא אמורים לבנות קבצים אם הם לא חייבים (כלומר - לא לבנות קבצי object אם לא שינית את הקבצים שמתקמפלים לתוכו ולא לבנות קבצי executables אם לא השתנו הקבצים שמתלנקג'ים לתוכו).יכול להיות שאתה עובד ידנית עם קומפיילר או עם סביבת עבודה שלא דואגת לזה?
פורסם 2005 ביולי 320 שנים מחבר יכול להיות שאתה עובד ידנית עם קומפיילר או עם סביבת עבודה שלא דואגת לזה?לא.סתם שאלתי בלי שום קשר......
פורסם 2005 ביולי 320 שנים אתה יודע מה זה שפת מכונה? שפת מכונה זה בסך הכל 1 ו0. לא נראה לי שתבין משהו אם תקרא קובץ שמלא ב1 ו0.
פורסם 2005 ביולי 420 שנים למה אחרי שהמהדר הופך את שפת התיכנות לשפת מכונה, אי אפשר פשוט לשמור את השפת מכונה במקום כל פעם לעשות את תהליך ההידור מחדש? כמו שאמרו פה, קובץ ה-EXE הוא שפת המכונה שנוצרה ע"י המהדר...אם אתה מתכוון למה בכל פעם שמקמפלים, צריך ליצור את הכל מחדש, אז זה כבר משהו אחר...
פורסם 2005 ביולי 620 שנים אתה יודע מה זה שפת מכונה? שפת מכונה זה בסך הכל 1 ו0. לא נראה לי שתבין משהו אם תקרא קובץ שמלא ב1 ו0.אפשר להפוך את זה לhex ואז זה קצת יותר מובן
פורסם 2005 ביולי 620 שנים לכל פקודה יש op code משלו. ככה שאם יש לך את המספר לא בעייה למצוא את הפקודה שהוא מייצג
פורסם 2005 ביולי 620 שנים אם אתה עובד על מעבד x86 של אינטל אז אפשר למצוא את המדריך באתר של אינטל:http://developer.intel.com/design/pentiumii/manuals/243191.htmואני מניח שאפשר למצוא משהו דומה גם עבור AMD, מוטורולה או כל מעבד אחר שקיים.
פורסם 2005 ביולי 620 שנים רוב הפקודות מתאימות גם לAMD? כי את רוב התוכנות לא מתכנתים כך שיתאימו למעבד אחד.או שמערכת ההפעלה יכולה להמיר בין הפקודות השונות כך שיתאימו למעבד הספציפי שאתה עובד בו.ואם יכולים לעשות את זה, מה מונע ממני לעשות DECOMPILE?
פורסם 2005 ביולי 620 שנים ל-AMD ולאינטל אותה ארכיטקטורה של x86 שזה אומר אותו סט פקודותAMD64 הוסיף כמה פקודות של-64 בנוסף ל-x86 אבל אפלקציה שמפותחת ל-AMD64 לא תפעל על אינטל.
פורסם 2005 ביולי 620 שנים רוב הפקודות הן דומות אבל לא תמיד כל קוד שקימפלת עבור x86 יעבוד על AMD, גם לא כל המעבדים תומכים באותם סטים של פקודות (למשל סט הפקודות של 3Dnow שמעבדי AMD תומכים בהם ואילו מעבדי אינטל לא, או פקודות של המעבד המתמטי שה386 לא תומך בהם).שום דבא לא מונע ממך לעשות דיקומפילציה, עושים את זה דיי הרבה אם למשל רוצים לעשות עידכון לתוכנה של חברה שפשטה את הרגל ולא ניתן להשיג את קוד המקור יותר. לפעמים גם קורה שיש טעות בזמן ריצה שאי אפשר לאתר ואז מסתכלים על הlisting של הopcode כדי לאתר את הטעות, כי מה שקורה הוא שהקומפיילר בדרך כלל עושה אופטימיזציות על הקוד ולפעמים זה יכול לגרום לטעויות.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.