ABA


"עזרה באסמבלי"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #12044 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 12044
imcool

   20:22   23.04.05   
אל הפורום  
  עזרה באסמבלי  
 
   אני כותב תוכנה בשפת אסמבלי שיוצרת איברים בסדרה חשבונית\הנדסית\פיבונצ'י.
כרגע אני רוצה להתמקד בחשבונית וההנדסית.
המשתמש מציב ערכים בשלושה משתנים - איבר ראשון (X), הפרש (בחשבונית) / מנה (בהנדסית) (Y), ומיקום האיבר שאנחנו רוצים למצוא (Z).
בינתיים הצלחתי להרכיב את הסדרה החשבונית. הנה הקוד:

.data
x db 5
y db 2
z db 10

mov al, x
mov bl, 0
heshbon: add al,y
add bl, 1
cmp bl,z
jnz heshbon

בקשר לסדרה ההנדסית, חשבתי להשתמש ב-mul אבל איכשהו זה לא הולך. באופן כללי נראה לי שהקוד של הסדרה ההנדסית אמור להיות זהה לחשבונית פרט לפעולת הכפל במקום החיבור.

למישהו יש רעיון איך לשנות את הקוד ככה שזו תהיה סדרה הנדסית?

תודה לעוזרים.


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  אממ כבר הרבה זמן לא נגעתי באסמבלי אבל נראה לי Gold Dragon 24.04.05 22:13 1
     כנראה באמת עשיתי את הפקודה עם משתנה וזאת הטעות imcool 25.04.05 01:33 2
  מכתב דני15  25.04.05 18:41 3
     תיקון קטן דני15  25.04.05 21:19 4
     תודה, זה מה שהייתי צריך imcool 25.04.05 21:31 5

       
Gold Dragon

   22:13   24.04.05   
אל הפורום  
  1. אממ כבר הרבה זמן לא נגעתי באסמבלי אבל נראה לי  
בתגובה להודעה מספר 0
 
   שבתכלס אתה צודק וצריך להיות רשום MUL.
אם אני לא טועה אתה יכול להשתמש בפקודה הזאת רק עם אוגרים ואולי עשית אותה בטעות עם המשתנה ובגלל זה לא עבד לך.


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

   01:33   25.04.05   
אל הפורום  
  2. כנראה באמת עשיתי את הפקודה עם משתנה וזאת הטעות  
בתגובה להודעה מספר 1
 
   בכל מקרה, תוכל לכתוב לי איך הפקודה אמורה להראות עם אוגר?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
דני15 
חבר מתאריך 3.8.02
47437 הודעות, 8 פידבק
   18:41   25.04.05   
אל הפורום  
  3. מכתב  
בתגובה להודעה מספר 0
 
  

data
x db 5
y db 2
z db 10
mov ah,0
mov dl,y
mov al, x
mov bl, 0
handasit:
mul dl
add bl, 1
cmp bl,z
jnz handasit

הפקודה MUL כופלת את חצי האוגר האופרנד ב-AL והתוצאה ב-AX בגודל מילה. סדרה הנדסית שיש בה כפל, יכולה לגרום מהר מאוד לחריגה מגודל האוגר. שים לב.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
דני15 
חבר מתאריך 3.8.02
47437 הודעות, 8 פידבק
   21:19   25.04.05   
אל הפורום  
  4. תיקון קטן  
בתגובה להודעה מספר 3
 
   מכיוון שהתחלנו את הלולאה מ-0, האיבר שתקבל הוא האיבר ה-11 ולא ה-10 שביקשת, כנ"ל בסדרה החשבונית לכן, אפשר להתחיל את הלולאה מ-1, אם לשנות את z ל-9.


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

   21:31   25.04.05   
אל הפורום  
  5. תודה, זה מה שהייתי צריך  
בתגובה להודעה מספר 3
 
   מסיבה לא ברורה, בקומפיילר אחד (Emu8086, שמבקש ממני כל הזמן להירשם) זה פועל כמו שצריך, ובקומפיילר אחר (EasyCPU, אם מישהו מכיר) הוא לא מזהה את הפקודה MUL...
אבל תודה בכל מקרה!


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

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

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



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