|
עמוד:154
בעיות לדוגמה דוגמה לבעיה – השוואת שני ערכים כתבו קטע של תכנית שיקלוט בית ממפתח קלט שכתובתו , 2 Bh ושיבדוק אם הוא שווה ל . 55 h- אם הוא שווה ל – 55 h- התכנית תקפוץ לכתובת המסומנת בתווית . EQ 55 פתרון קטע התכנית הוא : קליטת הנתון IN AL , 2 Bh ; האם שווים CMP AL , 55 h ; אם כן , קפוץ JE EQ 55 ; שימו לב , אם המספר שונה מ , 55 h- התכנית תעבור לביצוע ההוראה העוקבת להוראה . JE דוגמה לבעיה – העתקת נתון לרצף של תווים בזיכרון כתבו קטע של תכנית שתעביר עותק של תוכן האוגר AL לתוך 8 הבתים הנמצאים בסגמנט הנתונים , החל מן הכתובת שסומנה בתווית . BUFFER פתרון נשתמש באוגר SI כמצביע לכתובות הזיכרון , ונשתמש באוגר CX כמונה , שנפחית מערכו 1 לאחר כל העברה לזיכרון . פעולת ההעברה תחזור על עצמה עד שנקבל : . CX = ' 0 ' אתחול המצביע LEA SI , BUFFER ; אתחול המונה MOV CX , 8 ; העברת נתון לזיכרון PUTDAT : MOV ] SI [ , AL ; עדכון המצביע לתא הבא INC SI ; הפחתת 1 מהמונה DEC CX ; חזור , כל עוד המונה אינו אפס JNZ PUTDAT ;
|
|