




































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Estructura de Computadors I, Profesor: , Carrera: Enginyeria Informàtica, Universidad: UPC
Tipo: Apuntes
1 / 44
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





































Primera Aprox :
SISA
- F
subr() {... }
Primera
Aprox.: SISA F subr:
... $MOVEI R1, retorno
} int a=3, b=2;main()
$MOVEI R1, retornoJMP R main:
...
main(){ ... subr();
$MOVEI R1, subrJMP R retorno:
subr();... }
...
cóm es guarda l’adreça de retorn d’una subrutina? Jump And Link JAL:
Jump JMP:
Binari:
1010 ddd aaa 000100 Assemblador:
JAL Rd, Ra
Semàntica:
Rd^ ←
@ret
Binari:
1010 ddd aaa 000011 Assemblador
JMP Ra
Semàntica:
PC^ ←
Ra
@ PC^ ←
Ra
Descripció: Crida a subrutina.^ Salva l’adreça de retorn en Rd i
t^ l^
i^ t^
ió
Descripció: Retorn de la subrutina:^ passa a executar la instrucció que es troba a
l’adreça de memòria que conté Ra.
passa a executar la instrucció quees troba a l’adreça de memòria
que conté Ra.
Retorn de subrutina: Restaura l’adreça de retornque està a Ra.
Primera Aprox.: SISA-F
subr() {
... } i t^
3 b 2
subr:
... JMP R main:
int a=3, b=2;main(){
... $MOVEI R6, subrJAL R6, R retorno:
... subr();... subr();
retorno:
... $MOVEI R6, subrJAL R6 R
subr(); }
JAL R6, R retorno2:^ no són necessàries les etiquetesno^ són necessàries les etiquetesde retorn, a R6 està el PC de
retorn
SISA-Fmovxay:
$movei R4, x
C int^ x y;
y
$movei R3, yld R4, 0(R4)st 0(R3), R
int x, y;movxay (){
y=x;^
jmp R
main:
movi R1, 4$movei R3, x(^
)
y=x; } main(){^
st 0(R3), R1 $movei R6, movxayjal R6, R6 $^
i^ R
{
x=4;movxay();y++;^
$movei R0, yld R1, 0(R0)addi R1, R1, 1st 0(R0) R
y^ ; }
st 0(R0), R1halt
SISA-Fmovxay:
$movei R4, x
C int^ x y;
y
$movei R3, yld R4, 0(R4)st 0(R3), R
int x, y;void movxay (){
y=x;^
jmp R
.global main:
movi R1, 4$movei R3, x
(^ )
y=x; } main(){^
st 0(R3), R1 $movei R6, movxayjal R6, R6 $^
i^ R
{
x=4;movxay();y++;^
$movei R0, yld R1, 0(R0)addi R1, R1, 1st 0(R0) R
y^ ; }
st 0(R0), R1halt
Estat del processador:Q á
i^
ó^
d?
^ Q
uán i a ón es guarda?
^ Registres Ri Registres Fi^ Registres Ri, Registres Fi
^ Qui crida a la subrutina pot necessitar els valors antics dels
p
registres
No^
només
els^
q e^
es^
olen
preser ar
els^
se s
alors
^ No
, només els que es volen preservar els seus valors
^ Reservem memòria per a guardar
-los? Quanta?
^ Reservem memòria per a guardar los? Quanta? NO, els guardem a la pila
2.^ Exemple de Salvar l’Estat2.^ Exemple de Salvar l Estat
SISA-Fmovxay:
$movei R4, x
int x, y=5;movxay (){
y = x;
y^ $movei R3, yld R4, 0(R4)st 0(R3), R
y = x; } main(){
jmp R main:
movi R1, 4$movei
R3 , x( )
{
x=4;movxay(); x++;
st 0( R
), R $movei R6, movxayJAL R6, R6 ld^ R
0(R3)
Què hi ha aR3?
x^ ; }^
ld R1,
0(R
) addi R1, R1, 1st 0(R3), R1HALT
Què hi hauriad’haver?
HALT
SISA-Fmovxay:
$movei R4, x$^
i R
Pensar en com es fan els pop i
$movei R3, yld R4, 0(R4)st 0(R3), R4 j^
R
p p
push. Ordre dels pops invers a
l’ordre dels push.
jmp R main:
movi R1, 4$movei
R3 , x st 0( R
) R st 0( R
), R push R
;salvem l’Estat
$movei R6, movxayJAL R6 R6JAL R6, R6pop R
;restaurem
ld R1,
0(R3) addi^
R1 R1 1 addi^
R1, R1, 1 st 0(R3), R1HALT
^ és molt més ràpid