ABA


"אני צריך עזרה באסמבלי (ASM)... מי שמבין שיכנס"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #5458 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 5458
NaRGilA BoY

   16:18   22.03.03   
אל הפורום  
  אני צריך עזרה באסמבלי (ASM)... מי שמבין שיכנס  
 
   המכתב עבר עריכה לאחרונה בתאריך 22.03.03 בשעה 23:04 על-ידי מנהל
 
טוב... יש לי איזה תרגיל (לא קשה)... רק הבעיה שאני לא מבין ת'חומר
והוא להגשה.....
ואין לי מושג איך לעשות אותו.....
אז אני ירשום את המשימה... ואני ירשום את התשובה (ששלחו לי)
ותגידו לי מה לא בסדר.
אני לא צריך ברמה גבוהה (כלומר עם פסוקיות וכו') אלא רק עם לופ...


התרגיל:
הצבת מספר התאים שעברנו מתחילת החיפוש ועד למציאת הערך 38H באוגר CX.
החיפוש יתחיל בתא שכתובתו 1080H ויסתיים לאחר מציאת הערך.

התשובה שיש לי:
.MODEL SMALL
.STACK 100H
.DATA
.CODE
MOV AX,@DATA
MOV DS,AX
MOV CX,0
MOV BX,1080H
MOV AL,38H
CON: INC CX
CMP [BX],AL
JE SOF
INC BX
INC CX
LOOP CON
SOF: MOV AX,4C00H
INT 21H
END

תודה רבה

נערך לתיקון סוגריים מרובעות


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  מישהו יכול לעזור לי...... בבקשה...... NaRGilA BoY 22.03.03 17:01 1
  לא הבנתי את מטרת התרגיל.... zoomzoom 22.03.03 17:47 2
     אחי....... NaRGilA BoY 22.03.03 22:07 3
         קבל... zoomzoom 22.03.03 23:33 5
             אני חושד שיש לך טעוית: dryice 22.03.03 23:55 6
                 צודק כמעט בהכל... zoomzoom 23.03.03 00:13 7
                     הפקודה LOOP : onet 23.03.03 15:24 8
     zoomzoom NaRGilA BoY 23.03.03 17:15 10
  הפקודה LOOP כנראה מקור הטעות dryice 22.03.03 23:08 4
     כולכם צודקים...... NaRGilA BoY 23.03.03 17:11 9
         חברים..... בעצם אין לי טעות...... NaRGilA BoY 23.03.03 17:19 11

       
NaRGilA BoY

   17:01   22.03.03   
אל הפורום  
  1. מישהו יכול לעזור לי...... בבקשה......  
בתגובה להודעה מספר 0
 
   אני חייב ת'עזרה שלכם


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

   17:47   22.03.03   
אל הפורום  
  2. לא הבנתי את מטרת התרגיל....  
בתגובה להודעה מספר 0
 
   מה התרגיל רוצה שתעשה?? (זה לא ברור)
תסביר ואני יבדוק לך את זה...


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

   22:07   22.03.03   
אל הפורום  
  3. אחי.......  
בתגובה להודעה מספר 2
 
   זאת בדיוק המשימה שכתובה בספר......
היא באמת קצת קשה להבנה..... בגלל זה לא הבנתי מה לעשות שם כל כך


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

   23:33   22.03.03   
אל הפורום  
  5. קבל...  
בתגובה להודעה מספר 3
 
  

.MODEL SMALL
.STACK 100H
.DATA
.CODE
MOV AX,@DATA
MOV DS,AX
MOV BX,1080H
MOV AL,38H
MOV CX,0
START:CMP BX,38H
JE SOF
INC BX
LOOP START
SOF:MOV AX,4C00H
INT 21H
END

אם אתה רוצה הסברים תגיד...

בהצלחה


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

   23:55   22.03.03   
אל הפורום  
  6. אני חושד שיש לך טעוית:  
בתגובה להודעה מספר 5
 
   LOOP אם אינני מתבלבל מפחית מCX ולא מוסיף אליו,
כך שהקוד שלך יציב בCX את שלילה של מספר התאים שעברנו בחיפוש.
כמו כן אתה משווה את BX במקום את תוכן הכתובת אליה הוא מצביע
[BX]
בנוסף יש לשים לענייני יעילות, אם אתה משווה את BX לקבוע 38H
אין שום סיבה להציב 38h בתוך AL, אם תציב 38h בתוך AX תוכל
להשוות עם התא עליו אנו בודקים ביעילות(זה חוסך גישה לזכרון,
לקרוא את הקבוע) כמו כן, נהוג להמנע מפקודות מהצורה
MOV CX,0 שזה בזבזני למדיי, ולכתוב במקום: XOR CX,CX
שזה שקול, אבל יותר מהיר.

DRYICE


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

   00:13   23.03.03   
אל הפורום  
  7. צודק כמעט בהכל...  
בתגובה להודעה מספר 6
 
   בעניין ה LOOP אני ב 99% כמעט בטוח שאתה טועה, CX הוא בסך הכל מונה שמקדם את עצמו
בעניין ה BX צודק, הוא צריך לבדוק את התוכן שבתוך התא
ובעניין ה XOR, בלולאות כאלה זה ממש לא קריטי...


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

   15:24   23.03.03   
אל הפורום  
  8. הפקודה LOOP :  
בתגובה להודעה מספר 7
 
   עבר עריכה לאחרונה בתאריך 23.03.03 בשעה 15:25
 
הפקודה loop עושה דבר כזה:
1. מורידה מ cx אחד
2. אם cx שונה מ 0 היא קופצת ללולאה אחרת יוצאת.


s22onets33


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

   17:15   23.03.03   
אל הפורום  
  10. zoomzoom  
בתגובה להודעה מספר 2
 
   יש לך טעות אחת...
אתה רשמת:
CMP BX,38H

ו bx הוא הרי תא זיכרון לפי הנתון (כלומר 1080H)
אז אתה אמור לרשום אותו בתוך סוגריים מרובעים
ולכן אתה גם לא יכול להשוות אותו עם 38H, כי זאת פקודה לא חוקית....
ולכן אתה צריך להכניס את 38H לאוגר (את זה עשית).. ולהשוות את BX עם האוגר ולא המס' עצמו!!!


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

   23:08   22.03.03   
אל הפורום  
  4. הפקודה LOOP כנראה מקור הטעות  
בתגובה להודעה מספר 0
 
   LOOP למיטב זכרוני זאת קפיצה מותנית, לפי הערך של CX
ואתה רוצה לשים שם קפיצה לא מותנת JMP

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

DRYICE


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

   17:11   23.03.03   
אל הפורום  
  9. כולכם צודקים......  
בתגובה להודעה מספר 4
 
   תודה רבה רבה על העזרה שלכם!!!
תותחים


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

   17:19   23.03.03   
אל הפורום  
  11. חברים..... בעצם אין לי טעות......  
בתגובה להודעה מספר 9
 
   כי אני עשיתי פעמיים inc cx
כלומר הערך שלו יגדל ב-2... ולאחר מכן בפעולת הלופ הערך שלו יקטן רק ב-1....


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

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

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



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