Pregunta de ejemplo sobre lenguaje ensamblador de microcomputadora. No entiendo el retraso exacto del software. Por favor, ayúdenme a explicarlo. Entonces, ¿qué es N aquí y qué es 17?
Establezca la frecuencia del reloj de la CPU en 5 MH e intente escribir un programa con un retraso de 1 ms.
DEL_1MS: MOV CX, N ;4*1 El 4 aquí significa que la instrucción MOV CX, N necesita 4 ciclos de reloj para ejecutarse una vez, y 1 significa el número de ejecuciones
SIGUIENTE: NOP; 3*N Igual que arriba 3 es el ciclo de reloj N es el número de ejecuciones
NOP ;3*N Igual que arriba
LOOP NEXT ; loop/not loop) 17 significa que el ciclo no ha finalizado. Se necesitan 17 ciclos de reloj para ejecutar la instrucción LOOP NEXT y 5 ciclos de reloj para ejecutar la instrucción LOOP NEXT al final del ciclo.
Por lo tanto, el número total de ciclos de reloj = 4+3N+3N+17(N-1)+5
p>ciclo de reloj = 1/frecuencia de reloj de la CPU = 1/5M = 0.2us
Entonces el tiempo total de *** es 0,2 * (4+3N+3N+17(N-1)+ 5) us
Si el retraso es 1 ms, el tiempo es 0,2 * (4+ 3N+3N+17(N-1)+5) = 1000us
Solo necesitas resolver para N . Resuelva para N = 218, ya que el número de ciclos de reloj solo puede ser números enteros.
Espero que esto ayude.