עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

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 אם אני לא טועה, אבל זה לא מה שאני עושה.

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

תודה מראש!

ארכיון

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

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.