בעיית תכנות ב EasyCPU

Shlomi TC

New member
בעיית תכנות ב EasyCPU

בכל מקרה, בניתי תוכנית וה EASYCPU מסרב להריצה התוכנה טוענת ש אין לי INT 21H למרות שהוא קיים ונמצא במקום הנכון. http://n.rotter.net/User_files/nor/40684b3d79cfd50b.txt (סיומת הקובץ המקורית היא ASM) וזה ההסבר למה עושה התוכנית: מיני פרויקט - ארון חשמל בבניין קומות התוכנית מוגדרת למצוא נורה שרופה בבנין בן 4 קומות (כולל הקומה 0) ובכל קומה, 16 חדרים (גם כולל 0) אם הנורה השרופה תמצא בקומה ה 2 ובחדרים 0-11 יוכנס התא בזיכרון אל המחסנית. התוכנית תריץ לולאה מספר פעמים ע"פ המונה הנקרה בתוכנית "mone" (לפי התכנות הנוכחי, כ 10 פעמים) שתבצע את פעולת הבדיקה על המען ובסופו של דבר, אם יש צורך המען ייכנס למחסנית. הפונקציה הראשונה, "separate" מעבירה אליה את המען מהזיכרון ומפרידה אותו לתוך משתנים. הפונקציה השנייה, "burn" מבצעת בדיקה למיקום הנורה השרופה לאחר שנמצאה כשרופה (ב t1 אם שרוף או לא). t1 יכיל בתוכו את שתי הספרות השמאליות הקיצוניות. אם ב t1 יהיה b10 או b11 תחשב בחדר הנ"ל הנורה כשרופה. t2 יכיל בתוכו את 2 הספרות ימינה מהספרות הקודמות במען. אם ב t2 יהיה b10, כלומר קומה 3, תמשיך התוכנית בבדיקה. t3 יכיל בתוכו את 4 הספרות הימניות הקיצוניות. אן ב t3 יהיו הספרות בין b0 ל b1010, כלומר החדרים בין 0 ל 11 ושאר הבדיקות נכונות בהתאם, יוכנס התא מהזיכרון למחסנית. דוגמאות לקלטים: אם בתא נבדק יימצא המספר הבינארי 11101001 ייכנס המספר למחסנית. t1=11 t2=10 t3=1001 אם בתא נבדק יימצא המספר הבינארי 00011011 תמשיך התוכנית בבדיקה ולא תציג פלט על המספר. t1=00 t2=01 t3=1011 אשמח לתשובות, שלומי
 
למעלה