איך מחשבים כמה זמן השהייה תצא מהתת שגרה הבאה? מדובר במעבד 8051 בתדר גביש 24MHZ
delay: mov 30h,#06h
del2: mov 31h,#0ffh
del1: djnz 31h,del1
djnz 30h,del2
ret
תודה
dnz שתי מחזורי מכונה
mov מחזור אחד
הלולאה הפינימית עושה mov אחד ו 0xFF פעמים את djnz ולכן השהייה של הפינמית היא 0xFF * 2 + 1
הלולאה החיצוני עושה פעם אחת mov, עושה 6 פעם את הלולאה הפינימית ו6 פעם את djnz השני
לכן הזמן של הלולאה החיצוני היא
קוד:
6 * (0xFF * 2 + 1) + 6 * 2 + 1 = 3079
ותוסיף את הזמן של הפקודה Ret - מחזור מכונה אחד, סך הכל 3080 מחזורי מכונה.