ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
wliadלא בפורום כעתSite Moderator ת.הצטרפות: 25/05/2003 · הודעות: 1285 · מיקום: צפון הארץ
 

הודעה פורסם: 30/09/2003 - 13:37
נושא ההודעה:

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

ניתן לעשות זאת עם nasm על תוכניות assembler באמצעות הפקודה:
קוד:
$nasm file.asm -o file.bin -f bin

מה המקבילה להידור שכזה עבור gcc?
[addsig]

_________________
Image Image
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם Yahoo Messenger MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
ik_5לא בפורום כעת ת.הצטרפות: 16/04/2002 · הודעות: 3027 · מיקום: ישראל
 

הודעה פורסם: 30/09/2003 - 16:40
נושא ההודעה:

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

עד כמה שאני זוכר לגבי NAsm הוא יוצר קבצי Obj שהם קבצים בינאריים שיש 2 תקנים עיקריים בשוק בשבילהם אבל אני לא זוכר את השמות של התקנים השונים. אבל בוא נגדיר את זה שיש תקן שמיקרוסופט עובדת איתו ויש תקן שבורלנד עובדת איתו והם שתי תקנים שונים, למרות שעד כמה שאני זוכר הם לא המציאו את 2 השיטות הללו.

ד"א בקומפיילר של בורלנד גם יש לך אפשרות לשמור מידע בינארי לקבצי OBJ, ולעבוד איתם בצורות אחרות. תנסה לחפש מידע על החלק הזה אולי זה יעזור לך למצוא את מה שאתה מחפש.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
bombadilלא בפורום כעת ת.הצטרפות: 31/10/2002 · הודעות: 470 ·
 

הודעה פורסם: 30/09/2003 - 18:11
נושא ההודעה:

א. התוכנית שכותבת ממש מאסמבלר לשפת מכונה היא GNU as, על הדביאן שלי היא כלולה ב-binutils ונקראת פשוט "as".
ב. נראה ש-objdump היא החברה שלך למשימה. אתה יכול להוציא עם משהו כמו
קוד:

objdump -s -j .text binaryfile

את קוד המכונה בהקסה, ועם perl אפשר לתרגם את זה חזרה לשפת מכונה.
עדיין כנראה תצטרך להתעסק עם קוד דינאמי (אולי תוכל לאמר ל-as ו/או ל-ld, הלינקר, ליצור קוד סטטי?) ועם זה שבטח הקוד מחפש נתונים בחלקים אחרים ואולי מניח שרצים חלקים נוספים בקוד חוץ מ-.text (למשל .init, .ctors, .dtors).

מקווה שזה עוזר.


[ נערך על-ידי bombadil בתאריך 30/09/03 15:13:10 ]
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
wliadלא בפורום כעתSite Moderator ת.הצטרפות: 25/05/2003 · הודעות: 1285 · מיקום: צפון הארץ
 

הודעה פורסם: 30/09/2003 - 18:31
נושא ההודעה:

מצאתי את התשובה לשאלה, והיא פשוט שימוש מפורש בלינקר, לא דרך gcc. להלן אופן השימוש:
קוד:
$ gcc -c file.c
$ ld -o file.bin -oformat binary file.o

תודה לכל מי שניסה לסייע.
[addsig]

_________________
Image Image
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם Yahoo Messenger MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 30/09/2003 - 18:35
נושא ההודעה:

המלצה: ראה כיצד בונים קובץ ריצה המתחיל מן ה start label_ כפי שניתן למצא ב /usr/src/linux/arch/i386/boot/bootsect.S
תסתכל גם ב Makefile שבאותה ספריה.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
muliלא בפורום כעת ת.הצטרפות: 02/08/2003 · הודעות: 24 · מיקום: Haifa
 

הודעה פורסם: 30/09/2003 - 19:07
נושא ההודעה:

ציטוט:

ב 2003-09-30 10:37, wliad כתב:
אני מעוניין לייצר באמצעות gcc קובץ בינארי (מקושר) אך ערום. הכוונה היא שהוא לא יהיה קובץ ריצה מכל סוג שהוא, לא ELF ולא כל דבר אחר, פשוט קובץ קוד מכונה שהבית הראשון בו כבר מכיל קוד תוכנית.

ניתן לעשות זאת עם nasm על תוכניות assembler באמצעות הפקודה:
קוד:
$nasm file.asm -o file.bin -f bin

מה המקבילה להידור שכזה עבור gcc?



הקישור הבא עשוי לעניין אותך: http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html

וד"א, הדרך לעשות את מה שאתה רוצה עם gcc בלבד היא לתת לו את הדגל -nostartfiles.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. wliad
  2. ik_5
  3. bombadil
  4. wliad
  5. אורח
  6. muli