|
עמוד:274
mov ds , ax דחיפת פרמטרים למחסנית ; העברת מספר איברים כפרמטר לפי ערך lea bx , sum push n ; העברת פרמטר לפי אזכור שבו יישמר סכום הסדרה push bx ; זימון הפרוצדורה ; call sumNum סיום התכנית ; int 21 h mov ax , 4 c 00 h הגדרת הפרוצדורה mov bp , sp ; bp = sp sumNum PROC ; xor ex , ex ; cx = 0 הגדרת משתנה עזר temp שכתובתו push ex ; [ BP-2 ] אתחול מונה לולאה mov ex , [ bp + 4 ] ; cx = n אתחול איבר ראשון בסדרה mov ax , 1 ; ax = 1 inc ax add [ bp-2 ] , ax ; temp = temp + ax again : חישוב האיבר הבא inc ax ; ax = ax + 2 חזור על ביצוע לולאה כל עוד loop again ; cx > 0 סיום הלולאה לחיבור pop ax ; ax = temp אחסון סכום סדרה בזיכרון ENDP sumNum ret 4 mov [ bp + 2 ] , ax ; sum = ax END start איור 7 . 13 מתאר את מצב המחסנית לאחר זימון הפרוצדורה sumNum ולאחר הקצאת מקום למשתנה המקומי ( לאחר ההוראה . ( push ex מהאיור אנו למדים כי SP מצביע על ראש המחסנית , בעוד BP-v מצביע על כתובת החזרה .
|
|