Académique Documents
Professionnel Documents
Culture Documents
Secciones 6.3 y 6.4 del texto: Introduccin a la Informtica, 3 Edc. A.Prieto; A.Lloris, J.C.Torres McGraw-Hill, 2002
Objetivos
En esta leccin se describe un computador en el nivel de complejidad de mquina convencional. En este nivel el computador queda definido y descrito por:
programar al computador (es decir, establecer las operaciones que deseamos realice) reducir al mximo la necesidad de conocer el computador a nivel de micromquina y niveles inferiores.
Los lenguajes de bajo nivel (LM y LE) estn totalmente ligados a la estructura del computador.
20-nov-01
Introduccin a la Informtica A.Prieto (c) McGraw-Hill / Interamericana
Objetivos
Haremos la descripcin a nivel de lenguaje mquina y ensamblador de una nueva versin de un Computador Didctico Elemental (que denominamos CODE-2), descrito en su primera versin, bajo el nombre de ODE (CODE-1) CODE-2 se disea en su totalidad en el Captulo 7. En lo posible (para el LE) utilizaremos el estndar IEEE 694 Por ltimo incluimos un anlisis comparativo entre las caractersticas de los lenguajes mquina y ensambladores.
20-nov-01
Contenidos
6.3 DESCRIPCIN DE UN COMPUTADOR DIDTICO ELEMENTAL AL NIVEL DE LENGUAJE MQUINA 6.4 DESCRIPCIN DE UN COMPUTADOR DIDTICO ELEMENTAL AL NIVEL DE LENGUAJE ENSAMBLADOR 6.6 COMPARACIN ENTRE LENGUAJES MQUINA Y ENSAMBLADOR
20-nov-01
20-nov-01
Procesador
RF
Memoria
Entradas
Salidas
rF rE rD ... r1 r0
SP drc.
Z S
M PC
64 Kp = 128 KB
IPv
OPv
ALU
C V
v = 0,...255
20-nov-01
20-nov-01
codop cdigo de operacin rx rs, ra v cnd registro destino registros fuente valor inmediato condicin de salto o llamada
Tipo de salto o llam ada Incondicional Condicional, si biestable de cero es 1 Condicional, si biestable de signo negativo es 1 Condicional, si biestable de acarreo es 1 Condicional, si biestable de desbordam iento es 1
20-nov-01
Introduccin a la Informtica A.Prieto (c) McGraw-Hill / Interamericana
R Z S C V
Codop
binario Hex 0000 0 Cargar 1 Almacenar 0001 0010 2 Carga inmediata baja 0011 3 Carga inmediata alta 0100 4 Entrada 0101 5 Salida 0110 6 Suma 7 Resta 0111 1000 8 NAND 1001 9 Desplaza izquierda 1010 A Desplaza derecha 1011 B Desplaza arit. dcha. 1100 C Salto 1101 D Subrutina 1110 E Retorno 1111 F Parar
Nombre
Nemnico Parmetros
Explicacin
LD ST LLI LHI IN OUT ADDS SUBS NAND SHL SHR SHRA BCALLRET HALT
rx,[v] [v],rx rx,v rx,v rx,IPv OPv,rx Rx,rs,ra rx,rs,ra rx,rs,ra rx rx rx cnd cnd -
rxM(rD+v) M(rD+v)rx rx(15:8)H00; rx(7:0)v rx(15:8)v rxIPv OPvrx rxrs+ra rxrs-ra rx(rsra) Crx(15), rx(i)rx(i-1), i=15,,1; rx(0)0 Crx(0), rx(i)rx(i+1), i=0,,14; rx(15)0 Crx(0), rx(i)rx(I+1), i=0,,14
Si cnd se cumple, PCrD
20-nov-01
10
binario Hex 0000 0 Cargar 0001 1 Almacenar 0010 2 Carga inmediata baja 0011 3 Carga inmediata alta 0100 4 Entrada 0101 5 Salida 0110 6 Suma 0111 7 Resta 1000 8 NAND 1001 9 Desplaza izquierda 1010 A Desplaza derecha 1011 B Desplaza arit. dcha. C Salto 1100 D Subrutina 1101 E Retorno 1110 F Parar 1111
Nombre
LD ST LLI LHI IN OUT ADDS SUBS NAND SHL SHR SHRA BCALLRET HALT
rx,[v] [v],rx rx,v rx,v rx,IPv OPv,rx Rx,rs,ra rx,rs,ra rx,rs,ra rx rx rx cnd cnd -
F3 F3 F3 F3 F3 F3 F4 F4 F4 F1 F1 F1 F2 F2 F0 F0
N ciclos 9 9 6 8 8 8 7 7 7 6 6 6 6 6/9 8 6
11
20-nov-01
12
LD r1,[A7] r1 M(rD+A7)
20-nov-01
13
01A7
IR 01A7 PC 00AC Memoria principal 0000 37BA 0001 4C54 A7 + 1 00AB 01A7 00E2 FFFE FFFF 00E2 FFFF 2 FFFF 732C BC79
20-nov-01
14
Tipo de direccionamiento
Directo
Direccin efectiva
v rD v+rD RD+v
Los datos se intercambian con la memoria principal slo con las instrucciones LD (carga) y ST (almacenar)
20-nov-01
Introduccin a la Informtica A.Prieto (c) McGraw-Hill / Interamericana
15
M(rD) r0 ST [rD], r0
0001 0000 0000 0000; 1000
20-nov-01
16
M(rD) r0 ST [rD], r0
0001 0000 0000 0000; 1000
IR 1000 PC 001A Registros rF 37BA rE 4C54 rD 003B r1 FFFF r0 BC79 BC79
Bus de direcciones Bus de datos
003B
20-nov-01
17
20-nov-01
18
20-nov-01
19
20-nov-01
20
IR 3F7F PC 003E Memoria principal 0000 37BA 0001 4C54 7F-003D 3F7F 00E2 FFFF
20-nov-01
21
20-nov-01
22
3BCF
Bus de datos
20-nov-01
23
20-nov-01
24
Bus de datos
003B
20-nov-01
25
20-nov-01
26
+
4C8F
20-nov-01
27
20-nov-01
28
IR 70DE PC 003E Memoria principal 0000 37BA 0001 4C54 003D 70DE E03B 4C54 FF Z 0 S 1 C 0 V 0 00E2 FFFF
rD rE r0
E03B 4C54
1110 0000 0011 1011 - 0100 1100 0101 0100 1001 0011 1110 0111
93E7
93E7
29
20-nov-01
a 0 0 1 1
b 0 1 0 1
c=(ab) 1 1 1 0
20-nov-01
30
IR 81DE PC 003F Memoria principal 0000 37BA 0001 4C54 003E 81DE 00E2 E03B 4C54 FF Z 0 S 1 C 0 V 0 FFFF
a 0 0 1 1
b 0 1 0 1
c=(ab) 1 1 1 0
NAND
BFEF
rd rE r0
E03B 4C54
1110 0000 0011 1011 NAND 0100 1100 0101 0100 1011 1111 1110 1111
BFEF
31
20-nov-01
a 0 0 1 1
a b
b a NAND b 1 0 1 1 1 0 0 1
c
a b a NAND 1 01 1 11 0
a NAND 1 Complemento de a, o a invertido
a 1
32
0
Ejemplo -
codop
Formato F1 rx -
rD rD SHL rD
1001 1101 ---- ----; 9D00
20-nov-01
33
rD rD SHL rD
1001 1101 ---- ----; 9D00
Registros rF 0001 rE 4C54 rD C076 r1 FFEF r0 4C19
IR 9D00 PC 0040
Memoria principal 0000 37BA 0001 4C54 003F 9D00 00E2 FFFF
E03B FF Z 0 S 1 C 1 V 0
rD inicial rD final
20-nov-01
E03B
C076
C076
34
SHR
codop
Formato F1 rx -
rD rD SHR rD
1010 1101 ---- ----; AD00
20-nov-01
35
rD rD SHR rD
1010 1101 ---- ----; AD00
IR AD00 PC 0041 Registros rF 0001 rE 4C54 rD 603B r1 FFEF r0 4C19 C076 FF Z 0 S 0 C 0 V 0 Memoria principal 0000 37BA 0001 4C54 0040 AD00 00E2 FFFF
603B
20-nov-01
36
SHRA
codop
Formato F1 rx -
rD arD SHRA rD
1011 1101 ---- ----; BD00
20-nov-01
37
rD arD SHRA rD
1011 1101 ---- ----; BD00
Registros rF 0001 rE 4C54 rD E03B r1 FFEF r0 4C19
IR BD00 PC 0042
Memoria principal 0000 37BA 0001 4C54 0041 AD00 00E2 FFFF
C076 FF Z 0 S 1 C 0 V 0
a
E03B
20-nov-01
38
codop
20-nov-01
2D41 C000 39
LLI rD,41 BR
2D41 C000
Registros rF 0001 rE F7FD rD 0041 r1 FFEF r0 4C19
IR C0AA PC 0041
Memoria principal 0000 37BA 0001 4C54 004F C0AA F7FC F7FD F7FE F7FF 0000 007C 37AB 43C2
0041
20-nov-01
40
codop
20-nov-01
2D41 C000 41
IR D100 PC C03B
C03B
0043
0042 D100 F7FC F7FD F7FE F7FF 0043 007C 37AB 43C2
pila
20-nov-01
42
PC M(rE); rErE+1
codop
Formato F0 -
Ejemplo
E000
20-nov-01
43
EFFF
IR
EFFF
Memoria principal 0000 37BA 0001 4C54 C0F7 F7FC F7FD F7FE F7FF EFFF 0043 007C 37AB 43C2
pila
20-nov-01
44
codop
Formato F0 -
Ejemplo
F000
20-nov-01
45
F000
SI CONTINUAR
Espera
20-nov-01
46
En los ejercicios que siguen vamos a suponer que r0 contiene H0000 y r1 H0001
20-nov-01
Introduccin a la Informtica A.Prieto (c) McGraw-Hill / Interamericana
47
20-nov-01
48
20-nov-01
49
explicacin 0100 0000 0011 0000 1100 0100 0000 0011 0000 Comparar r5 con r4 Direccin de salto si son iguales Saltar si son iguales (Z=1) Direccin de salto si r4>r5 Saltar si r4>r5 (S=1) Direccin de salto si r4<r5 Salto incondicional
50
20-nov-01
51
20-nov-01
52
Incrementar DC DC DC + 1
20-nov-01
53
Registro r1 r0 rA r2 r3
Posicin de m em oria
Com entario Para el contador Para pasar el valor de un rgtro. a otro Mensaje para pedir direccin de carga Direccin de carga Palabra a m em orizar Direccin de carga del program a
00A0
20-nov-01
54
20-nov-01
55
(a)
20-nov-01
20-nov-01
57
20-nov-01
58
Algoritmo (organigrama).
Suma de datos r5 r3 + r4
Incrementar i ii+1
Comparar nT con i nT - i
si fin
S=1
no
20-nov-01
59
20-nov-01
60
20-nov-01
61
20-nov-01
62
P r o g r a m a d e c a r g a e n m e m o r ia P o s i c i n in ic ia l d e l p r o g r a m a
0010
E l p r o g r a m a s u m a la s t a b la s ( d e H 2 0 e le m e n t o s ) u b ic a d a s a p a r t ir d e la s p o s ic io n e s H 4 0 y H 8 0 , e le m e n t o a e le m e n t o , a lm a c e n a d o la t a b la r e s u lt a n t e a p a r t ir d e la p o s ic i n H C 0
20-nov-01
63
CODE
Direccin /OP1
Contenido / OP2
direccin
IR
0
PC Z S C V
1 5 9 D
2 6 A E
3 7 B F
4 8 C
ALU
20-nov-01
64
CODE
Direccin /OP1
direccin
IR
0
PC Z S C V
1 5 9 D
2 6 A E
3 7 B F
4 8 C
ALU
20-nov-01
65
CODE
Direccin /OP1
Contenido / OP2
direccin
IR
0
PC Z S C V
1 5 9 D
2 6 A E
3 7 B F
4 8 C
ALU
20-nov-01
66
CODE
Direccin /OP1
Contenido / OP2
0
PC Z S C V
1 5 9 D
2 6 A E
3 7 B F
4 8 C
ALU
20-nov-01
67
Direccin /OP1
Contenido / OP2
direccin
IR
0
PC Z S C V
1 5 9 D
2 6 A E
3 7 B F
4 8 C
ALU
20-nov-01
68
CODE
Direccin /OP1
Contenido / OP2
0 4 8 C
1 5 9 D
2 6 A E
3 7 B F
Z S C V
ALU
20-nov-01
69
Tareas realizables (las teclas de rdenes provocan interrupciones que lanzan rutinas del monitor):
Seleccin de una posicin de memoria. Cargar informacin en memoria. Seleccin de un registro. Cargar informacin en un registro. Ejecutar un programa.
20-nov-01
70
71
72
Ejecutar un programa. Seleccionar la direccin de memoria de la primera instruccin del programa, Se pulsa EJECUTAR. Accin: Se inicia la ejecucin del programa (se ejecuta una instruccin de salto a la direccin de inicio del programa: PC direccin del programa)
20-nov-01
73
Explicacin Conexin de CODE-2 DIRECCIN 1 direccin del programa CARGAR CARGAR CARGAR CARGAR CARGAR CARGAR CARGAR CARGAR Carga del programa CARGAR CARGAR CARGAR CARGAR CARGAR CARGAR CARGAR CARGAR EJECUTAR Ejecutar el programa
74
rden
6.4.1 Formato de las instrucciones de ensamblador 6.4.2 Directivas o pseudoinstrucciones 6.4.3 Ejemplos de instrucciones en ensamblador 6.4.4 Ambigedades 6.4.5 Ejemplo de programa en ensamblador
20-nov-01
75
76
77
;incrementar P
Etiqueta: campo alfanumrico opcional acabado con :, que se puede utilizar para identificar la posicin de las instrucciones (posiciones de salto, etc.) Nemnico: Nombre simblico (nemnico) que identifica la instruccin (LD, ST, LLI, LHI,...) Operandos: Parmetros asociados a la instruccin (registros, valores inmediatos y puertos de E/S o nombres simblicos de parmetros o variables). Comentario: campo alfanumrico opcional, precedido por ;, para hacer comentarios que hagan ms legible el programa.
20-nov-01
Introduccin a la Informtica A.Prieto (c) McGraw-Hill / Interamericana
78
LD rx,[rD+v] Cargar ST [rD+v],rx Almacenar Carga inmediata baja LLI rx,v Carga inmediata alta LHI rx,v IN rx,IPv Entrada OUT OPv,rx Salida
20-nov-01
Nombre Cargar Almacenar Carga inmediata baja Carga inmediata alta Entrada Salida Suma Resta NAND Desplaza izquierda Desplaza derecha Desplaza arit. dcha.
Ensamblador CODE-2 LD rx,[rD+v] ST [rD+v],rx LLI rx,v LHI rx,v IN rx,IPv OUT OPv,rx ADDS rx,rs,ra SUBS rx,rs,ra NAND rx,rs,ra SHL rx SHR rx SHRA rx
Ejemplo LD r4,[01] ST [00],rE LLI r7,07 LHI r7, AB IN rD,IP1 OUT OPD13 ADDS rD,r3,r4 SUBS rF,r1,r0 NAND r7,r3,r5 SHL r6 SHR r5 SHRA r8
Significado del ejemplo r4 M(rD+H01) M(rD+H00)rE r7(15:8)H00; r7(7:0)H07 r7(15:8)HAB rDIP1 OP0Drx rDr3+r4 rFr1-r0 r7(r3r5) Cr6(15), r6(i)r6(i-1), i=15,,1; r6(0)0 Cr5(0), r5(i)r5(i+1), i=0,,14; r5(15)0 Cr8(0), r8(i)r8(i+1), i=0,,14
20-nov-01
80
Nombre Salto incondicional Salto si resultado cero Salto si resultado negativo Salto si resultado con acarreo Salto si resultado con desbordamiento Llamada incondicional a subrutina Llamada si resultado cero Llamada si resultado negativo Llamada si resultado con acarreo Llamada si resultado con desbordamiento Retorno Parar
Ensamblador CODE-2 BR etiqueta BZ etiqueta BS etiqueta BC etiqueta BV etiqueta CALLR etiqueta CALLZ etiqueta CALLS etiqueta CALLC etiqueta CALLV etiqueta RET HALT
Significado del ejemplo rDdir_P7; PCrD Si Z=1 , rDdir_alfa; PCrD Si S=1 , rDdir_P3; PCrD Si C=1 , rDdir_a; PCrD Si V=1 , rDdir_b; PCrD rDdir_P1, rErE-1, M(rE)PC, PCrD Si Z=1, rDdir_a, rErE-1, M(rE)PC, PCrD Si S=1, rDdir_b, rErE-1, M(rE)PC, PCrD Si C=1, rDdir_f, rErE-1, M(rE)PC, PCrD Si V=1, rDdir_c, rErE-1, M(rE)PC, PCrD PC M(rE); rErE+1 Parar
20-nov-01
81
82
83
84
P6: P8:
P11:
20-nov-01
Comentarios para uso del programa: El programa CPYC, cambia los punto y comas por comas en una cadena de caracteres que se inicia en la posicin A730. El programa se almacena a partir de la posicin A000 de la memoria, y proporciona por el puerto OP2 el nmero de cambios efectuados.
20-nov-01
86
Enunciado: De la posicin PINI=H1000 a la posicin PFIN = H2000 de la memoria de CODE se encuentra una tabla de datos. Hacer un programa que proporcione por el puerto de salida 2 (OP2) el valor mayor de los datos de la tabla, y por el puerto de salida 1 (OP1) la direccin donde se encuentra.
20-nov-01
87