עזרה למתחיל

zoomi

New member
עזרה למתחיל

קודם אני רוצה לציין שאין לי שום מושג בתכנות של ++c כי מה שאני רוצה לשאול, זה מהו קוד המקור שכולם מדברים עליו? האם זה קשור לזה שאם אני פותח קובץ של משחק למשל בנוטפד אני רואה אסופה של סימנים בלי שום קשר ולא פקודות של התכונית? אם כן אייך כן אפשר לראות מה באמת כתוב? אני יודע שאלו שאלות שאולי יראו טפשיות, אבל באמת אין לי מושג, ואני רוצה התחלה כל שהיא לפני שאגש ללמוד קצת. ממש תודה
 

fima2001

New member
יש דרך אבל לא כמה שאתה חושב

כידוע הכל במחשב נחתב בפקודות של אסמבלר או בהקסדצימלי אם אתה רוצה לראות מה עומד מאחורי זה אתה יכול לחפש את התוחנה hexeditor או hexview ןאז הוא יפתח את התוכנית ויפרק אותה לפקודות באסמבלר אם תרצה לשעול עוד משהוא שלח לי לאימייל [email protected]
 

zoomi

New member
וזה כולל כל קובץ, כלומר...

גם את הקובץ שאני מצרף לכאן הוא יפתח בצורה נורמלית לקריאה? גם קובצי dat? אז היכן נכנס לכאן הקטע של קוד המקור?
 

yair24

Member
קרא את זה:

איך עובד מחשב לדעתי (ואני לא ממש בטוח שמה שאני אומר זה נכון אז אל תתפוס אותי ממש על כל מילה) הקישקושים שאתה רואה בקבצי EXE כשאתה פותח אותם בNOTEPAD הם בעצם הביטים שמתארים את פקודות האסמבלר של הקובץ. (מה שנקרא OPCODES של פקודות האסמבלי לפי המאמר) דרך אגב אם יש למישהו שקורא את המאמר הזה הערות תיקונים וכולי בקשר למאמר הוא מוזמן לכתוב אותם פה ואני אבדוק אם לתקן. יאיר
 

אלדד27

New member
מילון מושגים קטן

ביטים - יחידות של 0 או 1, שהמחשב יכול "להשתמש" בהן בצורה אלקטרונית. קוד מכונה - אוסף של ביטים המאורגנים בסדר מסוים שגורם למחשב לבצע פעילות מסוימת. opcodes - אלו ה - operation codes. כל opcode מסמן למחשב לבצע פעולה אלמנטרית כלשהי. קובץ הרצה (executable) מורכב מחלק של נתונים, ומחלק של קוד מכונה, שמבוסס על Opcodes והפרמטרים שלהם. שפת סף - אוסף ה - opcodes שהמחשב מבין, בייצוג של תווים ומילים בשפה האנגלית, כגון JMP, MOV, RET, CALL וכדומה. עדיף בהרבה על שפת מכונה אבל עדיין מאוד קריפטי. שפה עילית - שפה שמכילה פקודות "אמיתיות" שמובנות לאדם הקורא אותן - כמו למשל PrintLine או Read וכדומה. הפקודות בשפה העילית מורכבות מאוספים של Opcodes. שפות עיליות שאולי שמעת עליהן הן Java, c, c++, pascal ועוד. קוד מקור - קובץ (או כמה קבצים) טקסט שבתוכו רצף פקודות בשפת סף או שפה עילית. קומפיילר (מהדר) - תוכנה שלוקחת אוסף קבצי קוד מקור וממירה אותם לקבצי הרצה - כלומר בעצם לוקחת את הפקודות וממירה אותם לרצפי opcodes. מקווה שעזרתי
 

zoomi

New member
אני מתחיל להבין.

אם כן, כיצד לוקחים קובץ הרצה או קובץ שמכיל רצפי opcodes וממירים אותו לקובץ עם קוד מקור או שכתוב בשפה עילית. כלומר אני לוקח קובץ של משחק למשל שכתוב ב ++c וכמובן רואה רק סימנים אייך אני יוכל להחזיר אותו למצב שאוכל לראות פקודות אמיתיות?
 

אלדד27

New member
אה... זו בעיה קשה ../images/Emo13.gif

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