Comencé a diseñar una implementación de un 8088 desde cero con el objetivo de ser exacto. Puedo entender el razonamiento detrás de la cantidad de ciclos de reloj para la mayoría de las instrucciones, sin embargo, debo decir que estoy bastante confundido por el tiempo de cálculo de la Dirección Efectiva (EA).
Más específicamente, ¿por qué computar BP + DI o BX + SI toma 7 ciclos, pero computar BP + SI o BX + DI toma 8 ciclos? Tenga en cuenta que este es el número de ciclos para todo el cálculo de EA, que incluye un cambio más agregar con un registro de segmento (presumiblemente esto toma un par de ciclos para mantener los retrasos combinacionales lo más bajos posible).
Podría simplemente esperar un número determinado de ciclos en mi diseño, pero estoy realmente interesado en saber por qué existe esta diferencia de 1 ciclo (y en general por qué se necesitan tantos ciclos cualquier cálculo de EA, cuando un ADD entre registros es de solo 3 ciclos).