|
עמוד:323
כדי להרחיב את הבדיקה ולהשוות שתי מחרוזות , יש לבדוק שני תנאים f המחרוזות שוות בגודלן כל תו במיקום i במחרוזת הראשונה שווה לתו במיקום i במחרוזת השנייה . לשם כך נשתמש בהוראה , CMPSB עם קידומת המאפשרת חזרה , אך לא בהוראה . REP אם נשתמש כקידומת REP יתבצע האלגוריתם הזה ; לכל איבר מ / - עד n בצע השווה DS : [ SI ] = ES : [ DI ] ועדכן את הדגלים בהתאם לפי אלגוריתם זה , מצב הדגלים בסיום הלולאה מכיל מידע רק על תוצאת ההשוואה של הזוג האחרון . לכן בהוראה CMPS נשתמש כקידומת חזרה מותנית ( Zero REPeat while ) REPZ או , ( REPeat while Equal ) REPE שמשמעותן היא i בצע פעולת CMPSB כל עוד נותר זוג תווים , וזוג התווים שנבדק הוא שווה . REPZ CMPSB REPE CMPSB האלגוריתם הבא מציג את פעולת : REPZ כל עוד CX * 0 וגם ZF * 0 בצע ! בצע CMP ES : [ DI ] , DS : [ SI ] אם DI = DI + 1 SI = SI + 1 DF = 0 אחרת DI = DI-1 SI = SI - 1 סיוס-אם
|
|