|
עמוד:320
האלגוריתם הבא המתאר ביצוע LODSB השם MOV AL , ES : [ SI ] אס 0 = DF אזי SI = SI + 1 אחרת SI = SI - 1 בדרך-כלל לא משתמשים כקידומת REP לפני הוראות LODS הסיבה לכך היא שהשילוב של הקידומת REP עם ההוראה LODSB ( או ( LODSW גורם לביצוע סדרת הפעולות הבאות 1 תחילה יועתק הבית הראשון מבלוק הנתונים לאוגר , AL אחר יועתק הבית השני וערכו של AL ישתנה , וכך הלאה . אחרי שהפעולה תסתיים , נקבל באוגר AL רק את ערך התא האחרון שהועתק וכל שאר הערכים יימחקו . לעומת זאת , ביצוע חוזר של שתי ההוראות , , STOS-1 LODS בזו אחר זו , מאפשר להעתיק נתונים מבלוק אחד ולעדכן אותם לפני שהם מאוחסנים בבלוק אחר . דוגמה 8 . 3 נכתוב תכנית שתעתיק את תווי המחרוזת a למחרוזת b כאשר היא משנה כל תו רווח למקף ( לתו . (' - ' . stack 100 h . model small מספר איברי מחרוזת ; . data MAX EQU 7 מקור מחרוזת ; 0 » runno a DB " 12 45 7 " . code b DB MAX dup (?) ; start : אתחול מקטע נתונים mov es , ax mov ds , ax mov ax , @ DATA ;
|
|