ערכתי לאחרונה בתאריך 12.10.09 בשעה 21:57 בברכה, DLN
אני לא מצליח ממש להבין מה עשית שם כי זה מבולגן קצת ואני עייף
בכל אופן אתה לא מסדר ת'לולאות שלך כמו שצריך, קשה להבין את זה
תשאוף למינימום קפיצות...
עריכה: הבנתי מה הבעיה
אתה מאתחל את AL עם A כדי להוריד ריצה אחת בלולאה, אבל אתה תמיד רץ A-1 פעמים במקום A-1 רק בפעם הראשונה וA בשאר...
עריכה2: ובשביל הרקורד כתבתי את זה שוב בשביל שתראה איך הלולאות אמורות להראות
mov ch, B mov al, 0power_loop: mov cl, A multiply_loop: add al, A dec cl cmp cl, 0 jnz multiply_loop dec ch cmp ch, 0 jnz power_loop
|
זה לא שינוי כזה גדול אבל שים לב שאם אתה מעביר את התנאי לסוף אתה חוסך את הJMP ההוא, ושעדיף תמיד לספור כלפי ה0 כי הרבה יותר קל לבדוק 0 מול כל מספר אחר מאשר מסר קטן\גדול ממספר אחר.
מעיק להשתמש בJGE, JAE, JB, JS, JL JLE וכל מיני כאלה...
דירים המקרים שצריך יותר מJZ JNZ.
וגם שתכנס ל8086 יש אופקודים שנחשבים יותר יעילים לבדיקה אם רג'יסטר כלשהו הוא 0 (TEST)...
