עבור לתוכן

כיצד להימנע מ Divide Overflow באסמבלר 8086?

Featured Replies

פורסם

שלום,

במסגרת בית הספר אנחנו צריכים לכתוב "פרויקט" בשפת אסמבלר. בסמגרת הפרויקט שלי (חלפן כספים) אני צריך לבצע פעולות חילוק, שלעיתים מתבצעות על מספרים גדולים יחסית, ועקב כך שפשוט אין מקום באוגר AL לתוצאה, אני מקבל שגיאת Divide Overflow.

האם למישהו יש רעיון כיצד אני יכול לבצע את פעולות החילוק האלה מבלי להיתקל בשגיאה הנ"ל?

פורסם

אתה לא יכול להשתמש ברגיסטרים של 16 ביט (AX במקום AL) ?

פורסם

הגורם שאתה מחלק בו חייב לקיים את התנאים הבאים:

אם אתה מחלק בבית אז הגורם חייב להיות גדול יותר מ-AH

אם במילה אז הגורם צריך להיות יותר גדול מ-DX.

פורסם
  • מחבר

הצלחתי לפתור את הבעיה בעזרתו של חבר, שאמר לי פשוט לאפס את אוגר DX : xor dx,dx :kopfpatsch:

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

תודה רבה לכולם. :yelclap:

פורסם
  • מחבר

תודה רבה, הולך ישירות למועדפים.

ארכיון

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

דיונים חדשים