נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
פורום מחשבים כללי
RSS UnderWarrior Forums : RSS פורום מחשבים כללי
נושא

נושא: שאלה באת’’ם

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
mikeybb
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 05 September 2011
מדינה: Benin
משתמש: מנותק/ת
הודעות: 7
נשלח בתאריך: 10 September 2011 בשעה 22:48 | IP רשוּם
ציטוט mikeybb

ככה, מכיוון שלא מסבירים כלום כמו שצריך ואני משתוקק להבין דברים יש לי כמה שאלות.

המרצה לא מסביר כלום והחוברת שלו גרועה ועל הפנים.

ההסברים באינטרנט גם לא מי יודע מה.

אז ככה,

מהם אוגרי סגמנט ds cs es, למה הם משמשים?

מה פירוש הביטוי:

mov ax,ds:[bx]

(אותו דבר בנוגע לשאר סגמנטי האוגר).

?

ושאלה אחרונה : מהו בכלל סגמנט וכתובת פיזית?

 

תודה לעונים

חזרה לתחילת העמוד הצג את כרטיס החבר של mikeybb חפש הודעות אחרות של mikeybb
 
inHaze
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 23 November 2006
מדינה: Israel
משתמש: מנותק/ת
הודעות: 119
נשלח בתאריך: 12 September 2011 בשעה 10:03 | IP רשוּם
ציטוט inHaze

מסמך שיכול לעזור:
http://www.underwar.co.il/1-Programming/d127/

__________________
הבלוג שלי
חזרה לתחילת העמוד הצג את כרטיס החבר של inHaze חפש הודעות אחרות של inHaze
 
mikebb
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 29 April 2011
משתמש: מנותק/ת
הודעות: 11
נשלח בתאריך: 14 September 2011 בשעה 15:03 | IP רשוּם
ציטוט mikebb

טוב אבל יש בעיה מסוימת המסמך לא מסביר שום דבר על הדברים הנ''ל רק תזכורת יותר פרקטית
חזרה לתחילת העמוד הצג את כרטיס החבר של mikebb חפש הודעות אחרות של mikebb
 
inHaze
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 23 November 2006
מדינה: Israel
משתמש: מנותק/ת
הודעות: 119
נשלח בתאריך: 14 September 2011 בשעה 16:18 | IP רשוּם
ציטוט inHaze

לכל תהליך שרץ תחת מערכת ההפעלה יש זיכרון וירטואלי אישי
משלו. הזיכרון הזה מחולק לחלקים שנקראים סיגמנטים. כאשר
הסיגמנטים הם בין היתר: סגמנט הקוד (cs = code segment) שבו
מאוחסן קוד התוכנית (בשפת מכונה), סגמנט הנתונים (ds = data
segment) שבו מאוחסנים כל נתוני התוכנית כמו המשתנים
הסטטיים והגלובלים, הסגמנט הנוסף (es = extra segment)
בגודל 64K שמכיל בד"כ נתונים ולא קוד.
תמונת זיכרון של תהליך:
http://www.cs.umd.edu/~hollings/cs412/s04/proj3/paramStac
k.gif
(לא הצלחתי לצרף את התמונה להודעה)

האוגר cs מצביע לתחילת סגמנט הקוד (code בתמונה) בתוד מרחב
הזיכרון הוירטואלי של התהליך והאוגר ds מצביע לתחילת סגמנט
הנתונים (data בתמונה).
ולכן בחזרה לשאלה שלך:
קוד:
mov ax,ds:[bx]

בעצם אומר להעביר נתון בגודל בית (אם אני לא טועה, יכול
להיות גם בגודל מילה) במרחק bx מתחילת סגמנט הנתונים לתוך
אוגר ax.

__________________
הבלוג שלי
חזרה לתחילת העמוד הצג את כרטיס החבר של inHaze חפש הודעות אחרות של inHaze
 
inHaze
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 23 November 2006
מדינה: Israel
משתמש: מנותק/ת
הודעות: 119
נשלח בתאריך: 14 September 2011 בשעה 16:31 | IP רשוּם
ציטוט inHaze

לשאלה השני שלך:
סגמנט זהו הסיט (offset) מתחילת הזיכרון הוירטואלי של
התהליך וזיכרון פיזי אם אני מבין למה התכוונת זוהי הכתובת
עצמה בתוך הזיכרון הוירטואלי של תהליך.
לדוגמה:
נניח שסגמנט הקוד (cs) נמצא בכתובת 0x400000.
כדי להגיע לנתון בכתובת 0x400001 יש 2 דרכים (לא בטוח במאה
אחוז בסינטקס):
1.
קוד:

mov bx, 400001
mov ax, [bx]


2.
קוד:
mov ax, cs:[1]


__________________
הבלוג שלי
חזרה לתחילת העמוד הצג את כרטיס החבר של inHaze חפש הודעות אחרות של inHaze
 
mikebb
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 29 April 2011
משתמש: מנותק/ת
הודעות: 11
נשלח בתאריך: 14 September 2011 בשעה 23:45 | IP רשוּם
ציטוט mikebb

גדול אתה תודה
חזרה לתחילת העמוד הצג את כרטיס החבר של mikebb חפש הודעות אחרות של mikebb
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה