פורסם 2007 בפברואר 718 שנים נתונה התוכנית:NUM: MOV SI,10H MOV DI,16H MOV CX,6HON: MOV AL,[sI] AND AL,0FH MOV [DI],AL INC SI INC DI LOOP ON RETמישהו יכול לומר לי מהו התנאי (ואיך הגעת למסקנה) בו מסתיימת הלולאה ?ומה התוכנית עושה ?תודה אנשים !
פורסם 2007 בפברואר 718 שנים הלולאה תעבוד 6 פעמים... והתנאי הוא שCX יהיה שווה 0... מסקנה? LOOPוזאת גם לא כל התכנית אני מניח שהשתמשו ב LEA או OFFSET בהתחלה
פורסם 2007 בפברואר 718 שנים מחבר האם התוכנית מוציאה את הנתונים החל מתא 10H ועד תא 15H, כאשר כל נתון נגזרת ממנו סיפרת האחדותשלו ע"י פעולת ה- AND שבשורה 5, ולאחר מכן מסדרת אותם החל מתא 16H ועד תא 1BH ??ומה קורה לנתונים אשר היו בתאים 16H ועד 1BH ?? האם הנתונים פשוט נדרסים ונהייה שם רק אותה ספרת אחדות רלוונטיתאו שנשאר הספרת עשרות שהיתה בתאים 16H ועד 1BH ופשוט לידה תתקבל ספרת האחדות החדשה ?????
פורסם 2007 בפברואר 818 שנים אממ לפי מה שהבנתי התכנית לוקחת את הנתונים שבתאים 10-15H,מאפסת להם את ספרת העשרות,ומציבה את הנתונים החדשים מתא 16-1BH בהתאמה.כל הנתונים הקודמים שהיו בתאים נמחקים.עריכה: שיתקנו אותי אם אני טועה אבל במידה והיו רוצים שהנתונים שבתאים 16-1BH ישארו היו כותבים בשורה 6:ADD [DI],AL
פורסם 2007 בפברואר 818 שנים מחבר וכאשר אתה אומר מאפסת להם את ספרת העשרות הכוונה שהיא לוקחת רק את האחדות ומציבה בתאים המתאימים ?
פורסם 2007 בפברואר 818 שנים אני אשמח אם מישהו יסביר לי למה אתם אומרים שהיא מאפסת את העשרות? מה שאני רואה פה שמתבצעת הפעולה AND עם 1 לכל סיבית בAL לי זה נראה שזה בודק אם כל הסיביות דולקות.. אבל זה רק נראה לי.. אני לא אוהב אסמבלי
פורסם 2007 בפברואר 818 שנים מחבר כאשר אתה מכפיל ב- 1 כל סיבית באחדות אתה שומר על הסיבית שם.כי 1 כפול 0 שומר על ה-0.1 כפול 1 ישמור לך על ה-1.אבל כאשר אתה שם 0FH אתה מכפיל את AH ב-0 כלומר מאפס את כל הסיביות של AH יענו העשרות, הבנת ?האם התוכנית מוציאה את הנתונים החל מתא 10H ועד תא 15H, כאשר כל נתון נגזרת ממנו סיפרת האחדותשלו ע"י פעולת ה- AND שבשורה 5, ולאחר מכן מסדרת אותם החל מתא 16H ועד תא 1BH ??ומה קורה לנתונים אשר היו בתאים 16H ועד 1BH ?? האם הנתונים פשוט נדרסים ונהייה שם רק אותה ספרת אחדות רלוונטיתאו שנשאר הספרת עשרות שהיתה בתאים 16H ועד 1BH ופשוט לידה תתקבל ספרת האחדות החדשה Huh??
פורסם 2007 בפברואר 818 שנים עד כמה שזכור לי משיעורי אסמבלי (אני גם לומד לטכנאי..) כאשר מסמנים 0FH זה מתייחס רק לF... לפני הF צריך להוסיף סימון 0... אם רצית שזה יהיה 0F אני חושב שהיה צריך לכתוב 00FH.. אבל אני ממש לא בטוח בקשר לזה.. תבדוק.. וגם לא נראה לי הגיוני שאתה מפעיל פעולת AND הפועלת בגודל של מילה על אופרנד בגודל byte, תבדוק גם את זה, אולי זה אפשרי אבל אני לא סגור על זה. עריכה: נראה לי אני סתם מבלבל בשכל.. אל תקשיב לי יותר מדי... אבל אני גם אשמח ללמוד מה התשובה הנכונה בקיצור אני לא יודע אסמבלי.. נכשלים בבחינה החיצונית חודש הבא
פורסם 2007 בפברואר 818 שנים מחבר כל מה שרשמת מקודם לא נכון...כדאי לך ללמוד טוב כי אחרת באמת תיכשל.אני נבחן בבחינה כי אין לי ברירה אני רוצה לשפר ציון שם... היה לי 67 אני צריך 86 בערך..ומישהו מוכן לענות על השאלה שלי ממקודם ??? אחרת הת'רד הזה ידרדר למקומות לא נאותים.
פורסם 2007 בפברואר 818 שנים למה אתה מדבר על ספרת האחדות וספרת העשרות? נתון לך שתוכן התאים הוא ב-BCD? או שאתה מתייחס ל-hex?
פורסם 2007 בפברואר 818 שנים כאשר אתה מכפיל ב- 1 כל סיבית באחדות אתה שומר על הסיבית שם. כי 1 כפול 0 שומר על ה-0. 1 כפול 1 ישמור לך על ה-1. אבל כאשר אתה שם 0FH אתה מכפיל את AH ב-0 כלומר מאפס את כל הסיביות של AH יענו העשרות, הבנת ? האם התוכנית מוציאה את הנתונים החל מתא 10H ועד תא 15H, כאשר כל נתון נגזרת ממנו סיפרת האחדות שלו ע"י פעולת ה- AND שבשורה 5, ולאחר מכן מסדרת אותם החל מתא 16H ועד תא 1BH ?? ומה קורה לנתונים אשר היו בתאים 16H ועד 1BH ?? האם הנתונים פשוט נדרסים ונהייה שם רק אותה ספרת אחדות רלוונטית או שנשאר הספרת עשרות שהיתה בתאים 16H ועד 1BH ופשוט לידה תתקבל ספרת האחדות החדשה Huh?? על איזה AH אתה מדבר? נגיד ובAL יש 28H אז לאחר שורה 5 הוא יהיה 08H. כבר כתבתי לך מה עושה התוכנית. כן הנתונים שהיו נמחקים והנתונים החדשים מוצבים במקומם. אם היה בתא 10H נתון 56 אז לאחר התוכנית בתא 16H יהיה 06. אני אשמח אם מישהו יסביר לי למה אתם אומרים שהיא מאפסת את העשרות? מה שאני רואה פה שמתבצעת הפעולה AND עם 1 לכל סיבית בAL לי זה נראה שזה בודק אם כל הסיביות דולקות.. אבל זה רק נראה לי.. אני לא אוהב אסמבלי נגיד שבתא 10H יש את הנתון 81H,הנתון מועבר למעבד לאוגר AL שם מתבצעת פעולת AND בין הנתון ל0FH כך: 0FH=00001111B 81H=10000001B קל להבין שארבע הסיביות הימניות נשארות ללא שינוי והארבע השמאליות מתאפסות כך שיצא: 00000001B שזה 01H. הנתון החדש מוצב בתא 16H.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.