Microoperaciones y Ciclos de Instrucción en Arquitectura de Computadores
Introducción a las Microoperaciones y Ciclos de CPU
A continuación se detallan las secuencias de fetch y ejecución para distintas instrucciones y operaciones a nivel de transferencia de registros en la arquitectura de un computador.
Instrucciones y Operaciones del Sistema
ADDM [.Ri], [.Rj]
FETCH + EJEC:
- AR <- PC , T1 <-
- PC ; DR <-
- M(AR) , PC <-
- T1+4 <-
- IR <- DR , IR CO <-
- T3 <- R3, T1 <-
- R3 ; T2 <-
- R0 ; T1 or T2, flags , si Z FETCH ; <-
- T4 <- Ri ; T5 <-
- Rj ; AR <-
- T5 , T1 <-
- T5 , si SR.s=0 COMPRD <-
- T5 <- T1+4, si SR.s=1 IR <- <-M(AR) ; si SR.z=1 IR EXCLECT <- -M(AR)
- DR <- M(AR) ; T2 <-
- DR ; AR <-
- T4 , T1 <-
- T4 , si SR.s=0 COMPRD ; <-
- T4 <- T1+4 , si SR.s=1 IR <- <-M(AR) ; si SR.z=1 IR EXCLECT <- -M(AR)
- DR <- M(AR) ; T1 <-
- DR ; DR <-
- T1+T2 ; M(AR) <-
- DR , T2 <-
- T0 ; <-
- T1 <- T3 ; T3 <-
- T1-T2-CIN=1,flags , si NZ IR AR <-
- T5... ; <-
- IR FETCH
EXCHM [.Ri], [.Rj]
FETCH + EJEC:
- T1 <- Ri ; T2 <-
- Rj , CONT <-
- 32 ; AR <-
- T1 ; <-
- DR <- M(AR) , T1 <-
- T1+1 ; T3 <-
- DR ; AR <-
- T2 ; DR <-
- M(AR) , <-
- T2 <- T2+1 ; AR <-
- T1 ; M(AR) <-
- DR ; AR <-
- T2 ; DR <-
- T3 ; <-
- M(AR) <- DR , DEC CONT , si CONT=0 IR <- <-T1 ; AR,T1 >-T1
- PC ; <-
- DR <- M(AR) , PC <-
- T1+1 ; IR <-
- DR , SALTO CO <-
SEARCH .Ri, [.Rj]
FETCH + EJEC:
- T2 <- 0 ; T3 <-
- NOT T2 ; T1 <-
- Ri ; T4,AR <-
- Rj ; <-
- DR <- M(AR) ; DR <-
- M(AR) ; T2 <-
- DR ; T1 - T2 , actualizar SR ; <-
- jz Ri <-
- T4 ; T2 <-
- T4 ; AR,T4 <-
- T2+1 ; T2 <-
- T3 ; T3 <-
- T2x2 , <-
- actualizar SR ; jnz DR <-
- M(AR) ; Ri <-
- 0 , jmp FETCH ; Ri <-
- T4 , <-
- jmp FETCH ; AR,T2 <-
- PC ; DR <-
- M(AR) , PC <-
- T2+1 ; DR <-
- M(AR) ; <-
- IR <- DR , IR <-
POP $DESPL[.R2--]
EJEC:
- AR <- SP ; DR <-
- M(AR) ; SP <-
- SP - 1 ; AR <-
- R2+DESPL(IR) <-
- M(AR) <- DR ; R2 <-
- R2 - 1 ;+ <-
OR .R1, .R2, /dir
- TMPB <- PC ; AR <-
- TMPB ; DR <-
- M(AR) ; DR <-
- M(AR) , <- <-TMPB+1 ; >-TMPB+1
- TMPB <- DR+0 ; AR <-
- TMPB ; DR <-
- M(AR) ; DR <-
- M(AR) , <- <-BR(R2) ; >-BR(R2)
- BR(R1) <- DR or TMPB , act RE , TMPB <-
- PC ; DR <-
- M(AR) ; <-
- DR <- M(AR) , <- <-TMPB+1 ; IR <- >-TMPB+1
- DR+0 , IR CO <-
ADD .R1, [--.R2]
- AR <- PC ; PC <-
- PC+2 ; DR <-
- M(AR) ; DR <-
- IR ; no activa señales ; <-
- AR, R2 <- R2 - 2 ; ciclo lectura ; DR <-
- M(AR) ; RTEMP <-
- R1+DR , <-
- Actualizar SR ; R1 <- RTEMP
CALL /1000
- AR <- PC ; DR <-
- M(AR), PC <-
- PC + 1 ; TMP1 <-
- DR ; AR , SP <-
- SP + 1 ; <-
- DR <- SP ; M(AR) <-
- DR ; PC , AR <-
- TMP1 ; DR <-
- M(AR) , PC <-
- PC + 1 ; <-
- RI <- DR ; IR <-