![]() |
עזרה בשפת אסמבלר.
היי חבר'ה, יש לי עבודת הגשה בשפת אסמבלי, יש שאלה שהביאו לי, שעשיתי את הפיתרון שלה, אבל בדקתי בתוכנה וזה יוצא לא נוכל, תוכלו לעזור לי להבין מה לא נכון בתוכנית שלי?
השאלה: נתון בלוק נתונים שכתובת ההתחלה שלו 800H וגודלו 30H בתים כתוב תוכנית שתמנה את המספרים שערכם קטן מ-39 ותאחסן את התוצאה בתא שכתובתו 900H. אני עשיתי ככה: mov si,800h mov cx,30h mov ax,0h mov bx,39h mov DI,900h d:cmp [si],bx jb a jbe b a:inc ax dec cx jnz d jz c b:dec cx jz c jnz d c:mov [di],ax הדברים שלמדנו עד עכשיו: mov, add,sub,inc,dec,cmp וג'אמפים. מקווה שתעזרו :) אגב ללא קשר, פעם היה לי משתמש פה ואני לא זוכר ת'סיסמא שלו, מה עושים? |
אני אחפש איפשהו תאסמבלר, בתקווה שאני זוכר משהו
מקווה שאני אוכל לענות לך קצת יותר מאוחר לגבי הקוד. להבא עדיף רק שתשים את זה בתגיות של code, שיהיה נוח לקרוא. עריכה2: לגבי הקוד שלך - הבעיה היא בשורה קוד:
jbe b jae ולא jbe חוצמזה שאפשר קצת לחסוך כי יש קוד שחוזר בחלק של תווית a ושל b עריכה: יכול להיות שמשהו כזה?: קוד:
MODEL small |
זה נראה לי נכון, אבל כשאני בודק את זה בתוכנה EMU8086 זה לא יוצא נכון. =[ אפשר לדבר איתך באיסיקיו או מסנגר?
|
בעקרון אפשר (יש איסי בפרטים שלי) - אני לא בטוח אבל שאני אוכל לעזור לך
אני רואה שאנחנו שאתה התכוונת באמת לאסמבלר 8086, את הקוד שאני רשמתי הרצתי והוא עבר קומפילציה, אבל אי אפשר ממש לבדוק (צריך לשים ערכים בכתובת 800 בזכרון, ולבדוק מה יש בכתובת 900, ולא כ"כ ברור לי איך לעשות את זה, אני לא רוצה לכתוב לכתובת 800 בזכרון - לך תדע מה נדרוס שם :\) אגב - יש איזושהי הודעת שגיאה שהאמסבלר מחזיר? אם כן באיזה שורה ומה ההודעה? |
אין שגיאה
איך משנים? איפה שאתה מריץ את התוכנית אתה לוחץ VIEW ואז MEMORY. |
כל הזמנים הם GMT +2. הזמן כעת הוא 13:48. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ