עבור לתוכן

צריך עזרה באסמבלי

Featured Replies

פורסם

שלום לכולם,

התחלתי ללמוד אסמבלי באונ' ונתקלתי בבעיה בשיעורי הבית (עם פסח והשביתה אני כבר לא זוכר מתי בפעם האחרונה היה לי שיעור). כל עזרה תתקבל בברכה.

הבעיה היא פשוטה מאד, אך אני בכל זאת מתקשה בה- אני צריך לקלוט 8 ספרות (מס' של 32 ביט), ולשמור אותו כפי שהוא בזיכרון או באוגר כלשהו (מותר השימוש באוגרים של 386).

שוב תודה מראש.

פורסם

או שהבעיה ממש פשוטה או שלא הבנתי אותה כראוי.

הבעיה נעוצה במיון הקלט (במקרה והוא גדול/קטן מ32 ביט)?

או

בפרוצדורה עצמה של קליטה-והעברה ?

פורסם
  • מחבר

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

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

פורסם

עבר הרבה זמן מאז כתבתי באסמבלי אז קח בערבון את הכתוב, נסה להוצי את המקסימום ממה שיש.

אז...

בDATA Segment צור מקטע זכרון בן 8 בתים

Number DB 8

בCODE Segment

1. קליטה של המספר

MOV AH,10
MOV DX, OFFSET 8
NT 21h
LEA SI,Number

2. יצירת מספר מהבתים שהתקבלו ע"י כפל של כל בית ב10 בחזרת המרחק מהבית הראשון.

בצורה מקוצרת...

MOV EAX,[SI+j]*10^j

לזה לבצע Loop

כאשר j הוא למעשה המרחק של אותה אות/ספרה מהOFFSET (שהרי כל ספר יושבת לה בבית משלה)

או לחילופין לבצע ROR לביטים של כל בית (אם אתה מכיר בכלל את הפקודה)

נקווה שמפה כבר תסתדר

בהצלחה

פורסם
  • מחבר

תודה רבה, אני חושב שאצליח, יותר מאוחר אני אבדוק את זה.

הדבר היחיד שלא הבנתי, הוא פשר השורה:

MOV DX, OFFSET 8

אשמח אם תוכל להבהיר לי את זה. שוב תודה!

פורסם

טעות שלי, כמובן ש-8=Number (הכתובת בזכרון היכן "לשפוך" את הקלט מהמקלדת)

פורסם
  • מחבר

אוקיי אני צריך עוד קצת עזרה במשהו באותה רמה.

יש לי משתנה 32 ביט בשם J, כיצד אני מדפיס אותו על המסך?

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

כמו כן, מה יכולה להיות הסיבה שבגללה אני מקבל Divide Overflow? זה אמור להיות כשמחלקים ב- 0 אם אני לא טועה, אבל זה לא מה שאני עושה.

(שכחתי לאפס משהו קודם)

תודה מראש!

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים