התכנית שלך דורשת שימוש בגורם בעל יכולת זיכרון נוסף:
בשורה 2, "מחסרים את 2 מ 10 ושמים ב 2, יוצא 10,8". פעולת החיסור, מחייבת שמירה במקום כלשהו, מכיוון שבאסמבלי, שהיא תרגום של הפעולות הבסיסיות ממש של המעבד, כפי שציינת, זה ייראה כך:
mov ax, th1 // th1=10 sub ax, th2 // th2=2, ax=8 mov th2, ax // th2=8 |
חוץ מזה, שאתה דיברת על החלפת תוכן התא, ובמקרה שיש לך שני תכנים, שמייצגים שני מספרים שהסכום שלהם ביחד גדול מהערך המירבי של תא הזיכרון, אתה מאבד ערכים (ודגל הגלישה והשארית קופצים)... ולכן הפיתרון שלך בכלל לא נכון, ואפילו לא יעיל (יותר מדי פעולות)...
תסתכל בפיתרון שאני הצעתי, אם כי הוא קצת מוגבל (בשל מוכרחותם של שני תאי הזיכרון להיות עוקבים), או בפיתרון שהציע Dryice, שממש באופן מלא כל מקרה...