ABA


"האם ניתן לעשות מיעון ישיר לזכרון של DB באסמבלי 8086?"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #11738 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 11738
Yoni
חבר מתאריך 26.5.02
2305 הודעות
   15:23   26.01.05   
אל הפורום  
  האם ניתן לעשות מיעון ישיר לזכרון של DB באסמבלי 8086?  
 
ערכתי לאחרונה בתאריך 26.01.05 בשעה 15:29 בברכה, Yoni
 
אני רוצה להעביר ישירות לזכרון מילה כפולה בפקודת MOV.
האם מותר לעשות

mov dword ptr cs:{DI}, ....

או משהו בסגנון.
ואני שוב חוזר, זה חייב להיות אסמבלי של 8086.
אם יש אפשרות להעביר אף יותר מזה, אשמח מאוד.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  בודאי שאפשר Boaz_fr 26.01.05 17:59 1
     מצטער על הטעות עם DW Yoni 26.01.05 20:09 2
         בטח שאפשר... Gold Dragon 26.01.05 20:44 3
             תודה, אבל נראה לי שלא קראת מה שרציתי Yoni 26.01.05 21:05 4
                 ב 8086 אי אפשר Boaz_fr 26.01.05 21:46 5
                     יש העתקת גוש נתונים זיכרון-זיכרון ב8086? Yoni 26.01.05 23:33 6
                         יש בודאי Boaz_fr 26.01.05 23:45 7
                             ובשאכול על איך ניתן לשנות IP אתה יכול אולי לעזור לי? Yoni 26.01.05 23:56 8
                             כן יש i-s 27.01.05 17:37 9
                                 אני מכיר את זה Yoni 27.01.05 23:04 10
                                     אפשר להשתמש בבקרי הMDI Boaz_fr 27.01.05 23:36 11

       
Boaz_fr

   17:59   26.01.05   
אל הפורום  
  1. בודאי שאפשר  
בתגובה להודעה מספר 0
 
   א. DB פרושו בסיס נתונים (DataBase) "מילה כפולה" נקראת DW
ב. אין כל בעיה לבצע זאת, אבל אם הזכרון לא מוקצה לך אתה תגרום לקריסת התוכנית ואולי כל המחשב, תזהר.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Yoni
חבר מתאריך 26.5.02
2305 הודעות
   20:09   26.01.05   
אל הפורום  
  2. מצטער על הטעות עם DW  
בתגובה להודעה מספר 1
 
איך אפשר?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Gold Dragon

   20:44   26.01.05   
אל הפורום  
  3. בטח שאפשר...  
בתגובה להודעה מספר 2
 
   ערכתי לאחרונה בתאריך 26.01.05 בשעה 20:44 בברכה, Gold Dragon
 
אתה יכול להשתמש באחד משלושת האוגרים:bx,si,di ואז אתה מכניס אליהם את הכתובת בזכרון שאליה אתה רוצה לגשת ואתה עושה:

mov {bx},ax

במידה ואתה רוצה להכניס מילה.

או


mov {bx},al

במידה ואתה רוצה להכניס בית.



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Yoni
חבר מתאריך 26.5.02
2305 הודעות
   21:05   26.01.05   
אל הפורום  
  4. תודה, אבל נראה לי שלא קראת מה שרציתי  
בתגובה להודעה מספר 3
 
רציתי להעביר מילה כפולה בפקודה אחת


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Boaz_fr

   21:46   26.01.05   
אל הפורום  
  5. ב 8086 אי אפשר  
בתגובה להודעה מספר 4
 
   בפנטיום 1 ומעלה כל האוגרים בגודל DW כך שאין בעיה...

יש פקודות להעתקת גושים של נתונים (כמו memcpy בשפת C)
שאינני זוכר אותם כרגע


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Yoni
חבר מתאריך 26.5.02
2305 הודעות
   23:33   26.01.05   
אל הפורום  
  6. יש העתקת גוש נתונים זיכרון-זיכרון ב8086?  
בתגובה להודעה מספר 5
 
ואני חייב ל8086. :|
תודה רבה!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Boaz_fr

   23:45   26.01.05   
אל הפורום  
  7. יש בודאי  
בתגובה להודעה מספר 6
 
   LDS או משהו בסגנון, שנים כבר לא התעסקתי בזה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Yoni
חבר מתאריך 26.5.02
2305 הודעות
   23:56   26.01.05   
אל הפורום  
  8. ובשאכול על איך ניתן לשנות IP אתה יכול אולי לעזור לי?  
בתגובה להודעה מספר 7
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
i-s

   17:37   27.01.05   
אל הפורום  
  9. כן יש  
בתגובה להודעה מספר 7
 
   אתה צריך להכניס ל-cx את מספר האיברים שאתה רוצה להעתיק
לדאוג לכתוב CLD כדי שהוא ישנה את DF ל-0.
כאשר DF=0 הוא יודע לקדם כל פעם את SI שמצביע על מערך המקור ב-TYPE
ואת DI שמצביע על מערך היעד ב-Type שבחרת.
עכשיו תשתמש בפקודה:

REP MOVSB זה להעתיק בתים
REP MOVSW זה כדי להעתיק מילים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Yoni
חבר מתאריך 26.5.02
2305 הודעות
   23:04   27.01.05   
אל הפורום  
  10. אני מכיר את זה  
בתגובה להודעה מספר 9
 
תודה בכל זאת


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Boaz_fr

   23:36   27.01.05   
אל הפורום  
  11. אפשר להשתמש בבקרי הMDI  
בתגובה להודעה מספר 10
 
   וזה סוף הדרך..
למרות שזה שווה רק לגושי זכרון גדולים במיוחד

אם משהו יודע איך עושים זאת, אשמח לדעת


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net