Pontificia Universidad Católica de Chile
Escuela de Ingeniería
Departamento de Ciencia de la Computación
Arquitectura de Computadores
Clase 11
Modos de Direccionamiento
IIC 2342
Semestre 2008-2
Rubén Mitnik
Objetivos
Capítulo 4 : Unidad de Procesamiento Central (CPU)
Objetivos
Entender cómo se representan los datos en memoria


Datos de más de un byte

Little / Big endian

Entender los distintos métodos de direccionamiento
utilizados para accesar operandos en registros o memoria.
R.Mitnik
2
Arquitectura de Computadores
Índice
Capítulo 4 : Unidad de Procesamiento Central (CPU)
4.1 Partes de la CPU.
4.2 Conjunto de Instrucciones y tipos de
funcionalidad.
4.3 Ciclo de la Instrucción.
4.4 Diseño de una CPU básica.
4.5 Modos de direccionamiento.
4.6 Instrucciones en lenguaje de máquina.
4.7 Subrutinas y Manejo de Stack.
4.8 Interrupciones de software y hadware.
4.9 CISC/RISC.
R.Mitnik
3
Arquitectura de Computadores
Modos de direccionamiento
Capítulo 4 : Unidad de Procesamiento Central (CPU)
Modos de direccionamiento
Son las formas en las cuales la CPU especifica
el lugar donde se encuentran los operandos
y donde se escriben los resultados.



R.Mitnik
Instrucción
Registros
Memoria
4
Arquitectura de Computadores
Modos de direccionamiento
Capítulo 4 : Unidad de Procesamiento Central (CPU)
Representación de datos en memoria.
Byte


El dato ocupa una dirección de memoria.

Ej.
A3
R.Mitnik
A7h
5
Arquitectura de Computadores
Representación de datos en memoria
Capítulo 4 : Unidad de Procesamiento Central (CPU)
Word


El dato ocupa dos direcciones de memoria
consecutivas.

Ej.
R.Mitnik
A0
2Ch
A1
01h
6
Arquitectura de Computadores
Representación de datos en memoria
Capítulo 4 : Unidad de Procesamiento Central (CPU)
Long


El dato ocupa cuatro direcciones de memoria
consecutivas.

Ej.
R.Mitnik
A8
A3h
A9
A7h
AA
01h
AB
03h
7
¿Qué número
representa?
Arquitectura de Computadores
Representación de datos en memoria
Capítulo 4 : Unidad de Procesamiento Central (CPU)
Orden del dato en memoria


Little endian
La dirección del dato representa el
bit menos significativo (LSB).
Ej.




A3h
A9
A7h
AA
01h
AB
03h
Big endian
La dirección del dato representa el
bit más significativo (MSB).
Ej.



R.Mitnik
03 01 A7 A3h
A8
A3 A7 01 03h.
8
Arquitectura de Computadores
Representación de datos en memoria
Capítulo 4 : Unidad de Procesamiento Central (CPU)
Alineación


Byte


Word


El dato comienza en dirección par.
Long

R.Mitnik
El dato puede estar en cualquier dirección.
El dato comienza en dirección divisible por
4.
9
Arquitectura de Computadores
Modos de direccionamiento
Capítulo 4 : Unidad de Procesamiento Central (CPU)
Modos de direccionamiento










R.Mitnik
Inmediato
Directo (o absoluto)
Registro
Indirecto
Indirecto con registro
Desplazamiento
Indexado
Desplazamiento relativo al PC
Indexado relativo al PC
10
Arquitectura de Computadores
Inmediato
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento

A0
Memoria
A2h
A1
02h
A2
F3h
A3
B3h
A4
A1h
A5
B0h
A6
A9h
R2
A7
A8h
R3
A8
A4h
R4
A9
B1h
R5
AA
B2h
MOVE R1, #5h
Registros
R0
R1
R.Mitnik
5h
11
Arquitectura de Computadores
Inmediato
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
Inmediato

Ej: MOVE R1, #2
 Carga un 2 en el registro 1

Operando es parte de la instrucción.
 2 es el operando.

No hay referencia adicional a memoria
Rápido
Rango limitado


R.Mitnik
12
Arquitectura de Computadores
Directo
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento


MOVE R1, #5h
MOVE R2, (A2h)
Registros
R0
R.Mitnik
A0
Memoria
A2h
A1
02h
A2
A3
F3h
F3h
B3h
A4
A1h
A5
B0h
R1
5h
A6
A9h
R2
F3h
A7
A8h
R3
A8
A4h
R4
A9
B1h
R5
AA
B2h
13
Arquitectura de Computadores
Directo
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
Directo (o absoluto)

Ej: MOVE R2, (A2h)


El operando está en la dirección referenciada por
A2h


Carga lo que está en la dirección de memoria A2h en el
registro 2.
(A2h) equivale a Mem [ A2h ]
Sólo un acceso a la memoria
R.Mitnik
14
Arquitectura de Computadores
Registro
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
A0

MOVE R1, #5h
MOVE R2, (A2h)
Memoria
A2h
A1
02h

MOVE R4, R1
A2
F3h
A3
B3h
A4
A1h
A5
B0h

Registros
R0
R1
5h
A6
A9h
R2
F3h
A7
A8h
A8
A4h
A9
B1h
AA
B2h
R3
5h
R4
R5
R.Mitnik
15
Arquitectura de Computadores
Registro
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
Registro

Ej: MOVE R4, R1

Carga el contenido del registro 1 en el registro 4.

Operando está en un registro de la CPU.

Número limitado de registros
Instrucción rápida
Instrucción corta
No hay acceso a memoria



R.Mitnik
16
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento

Ejemplo: Suma de un vector


Escribir código de un programa que sume todos los
elementos de un vector.
Argumentos:


Dirección inicio del vector.
Largo de vector.
label
40 sum_vect
instrucción
dirección
BRA start
41 result
42 num
43 first_addr
44 start
45 ?????
R.Mitnik
17
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
first_addr
43
start
44
MOVE #0, D0
loop
45
MOVE (first_addr),D1
46
47
ADD D1, D0
INC (first_addr)
48
DEC (num)
49
BNZ loop
4A
4B
R.Mitnik
BRA start
MOVE D0, (result)
return
18
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento

Ejemplo: Suma de un vector

Ejecución del código con los siguientes parámetros.
MOVE #88h, (43h)
MOVE #7h, (42h)
CALL SUM_VECT
MOVE (41h), D6
R.Mitnik
19
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
first_addr
43
start
44
loop
45
46
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
88h
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
D0
D1
MOVE D0, (result)
D2
return
D3
R.Mitnik
20
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
first_addr
43
start
44
loop
45
46
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
07h
88h
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
D0
D1
MOVE D0, (result)
D2
return
D3
R.Mitnik
21
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
07h
first_addr
43
88h
start
44
loop
45
46
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
D0
D1
MOVE D0, (result)
D2
return
D3
R.Mitnik
22
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
07h
first_addr
43
88h
start
44
loop
45
46
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
D0
00h
D1
MOVE D0, (result)
D2
return
D3
R.Mitnik
23
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
07h
first_addr
43
88h
start
44
loop
45
46
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
D0
D1
MOVE D0, (result)
00h
88h
D2
return
D3
R.Mitnik
24
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
07h
first_addr
43
88h
start
44
loop
45
46
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
D0
D1
MOVE D0, (result)
00h +00h
88h = 88h
88h
D2
return
D3
R.Mitnik
25
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
first_addr
43
start
44
loop
45
46
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
07h
88h +88h
01h = 89h
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
MOVE D0, (result)
D0
88h
D1
88h
D2
return
D3
R.Mitnik
26
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
first_addr
43
start
44
loop
45
46
Z=0
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
07h -07h
01h = 06h
89h
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
MOVE D0, (result)
D0
88h
D1
88h
D2
return
D3
R.Mitnik
27
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
06h
first_addr
43
89h
start
44
loop
45
46
Z=0
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
MOVE D0, (result)
D0
88h
D1
88h
D2
return
D3
R.Mitnik
28
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
06h
first_addr
43
89h
start
44
loop
45
46
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
MOVE D0, (result)
D0
88h
D1
88h
89h
D2
return
D3
R.Mitnik
29
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
06h
first_addr
43
89h
start
44
loop
45
46
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
D0
D1
MOVE D0, (result)
88h +88h
89h = 111h
89h
D2
return
D3
R.Mitnik
30
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
first_addr
43
start
44
loop
45
46
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
06h
89h +88h
01h = 90h
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
MOVE D0, (result)
D0
111h
D1
89h
D2
return
D3
R.Mitnik
31
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
first_addr
43
start
44
loop
45
46
Z=0
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
06h -06h
01h = 05h
90h
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
MOVE D0, (result)
D0
111h
D1
89h
D2
return
D3
R.Mitnik
32
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
05h
first_addr
43
90h
start
44
loop
45
46
Z=0
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
MOVE D0, (result)
D0
111h
D1
89h
D2
return
D3
R.Mitnik
33
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
Luego de 6 iteraciones
R.Mitnik
34
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
01h
first_addr
43
94h
start
44
loop
45
46
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
MOVE D0, (result)
D0
357h
D1
93h
94h
D2
return
D3
R.Mitnik
35
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
01h
first_addr
43
94h
start
44
loop
45
46
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
D0
D1
MOVE D0, (result)
357h +357h
94h = 3EBh
94h
D2
return
D3
R.Mitnik
36
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
first_addr
43
start
44
loop
45
46
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
01h
94h +94h
01h = 95h
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
MOVE D0, (result)
D0
3EBh
D1
94h
D2
return
D3
R.Mitnik
37
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
first_addr
43
start
44
loop
45
46
Z=1
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
01h -01h
01h = 00h
95h
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
MOVE D0, (result)
D0
3EBh
D1
94h
D2
return
D3
R.Mitnik
38
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
00h
first_addr
43
95h
start
44
loop
45
46
Z=1
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
MOVE D0, (result)
D0
3EBh
D1
94h
D2
return
D3
R.Mitnik
39
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
3EBh
num
42
00h
first_addr
43
95h
start
44
loop
45
46
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
MOVE D0, (result)
D0
3EBh
D1
94h
D2
return
D3
R.Mitnik
40
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
3EBh
num
42
00h
first_addr
43
95h
start
44
loop
45
46
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
MOVE D0, (result)
D0
3EBh
D1
94h
D2
return
D3
R.Mitnik
41
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
3EBh
num
42
00h
first_addr
43
95h
start
44
loop
45
46
47
BRA start
08
MOV #88h , (43h)
09
MOV #07, (42h)
0A
CALL SUM_VECT
MOVE #0, D0
0B
MOV (41h), D3
MOVE (first_addr),D1
0C
ADD D1, D0
DEC (num)
49
BNZ loop
4B
0D
INC (first_addr)
48
4A
07
registos
MOVE D0, (result)
D0
3EBh
D1
94h
D2
return
D3
R.Mitnik
42
3EBh
Arquitectura de Computadores
Indirecto
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento




MOVE R1, #5h
MOVE R2, (A2h)
MOVE R4, R1
MOVE R3,((A8h))
Registros
R0
A1
02h
A2
F3h
A3
B3h
A4
A5
A1h
A1h
B0h
R1
5h
A6
A9h
R2
F3h
A7
A8h
R3
A1h
A8
A4h
R4
5h
A9
B1h
AA
B2h
R5
R.Mitnik
A0
Memoria
A2h
43
Arquitectura de Computadores
Indirecto
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
Indirecto

Ej: MOVE R3, ((A8h))
 A8h contiene la dirección en la cual se encuentra el
dato. Dicho dato se carga en el registro 3.

((A8h)) equivale a Mem[ Mem[A8h] ]

Acceso múltiple a la memoria para encontrar el
operando
Más lento que el directo

R.Mitnik
44
Arquitectura de Computadores
Ejemplo: Suma de Vector
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
label
memoria
sum_vect
40
result
41
num
42
first_addr
43
start
44
MOVE #0, D0
loop
45
46
MOVE ((first_addr)),D1
ADD D1, D0
47
INC (first_addr)
48
DEC (num)
49
BNZ loop
4A
4B
R.Mitnik
BRA start
MOVE D0, (result)
return
45
Arquitectura de Computadores
Indirecto con Registros
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento





MOVE R1, 5h
MOVE R2, (A2h)
A0
A2
02h
F3h
A3
B3h
Registros
A4
A1h
R0
02h
A5
B0h
R1
5h
A6
A9h
R2
F3h
A7
A8h
R3
A1h
5h
A8
A4h
A9
B1h
AA
B2h
A1
MOVE R4, R1
MOVE R3,((A8h))
MOVE R0,(R3)
R4
R5
R.Mitnik
Memoria
A2h
46
Arquitectura de Computadores
Indirecto con Registro
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
Indirecto con Registro

Ej: MOVE R0, (R3)
 Carga lo que está en la dirección apuntada por el registro 3,
en el registro 0.

El operando está en la memoria direccionada por un
registro.
 (R3) equivale a Mem[R3]

Un acceso menos a memoria que en el direccionamiento
indirecto
R.Mitnik
47
Arquitectura de Computadores
Instrucciones
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
Pre-decremento y Post-incremeto

Pre-decremento.


Post-incremento


Ej. Add R1,-(R2) equivale a
R2 R2-1
R1 R1+ Mem[R2]
Ej. Add R1,(R3)+ equivale a
R1 R1+ Mem[R3]
R3 R3+1
Instrucciones usadas regularmente.
 Por ejemplo para manejo de stack
R.Mitnik
48
Arquitectura de Computadores
Post-Incremento
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento

ADD R1, (R3)+
A0
5h
+
Registros
R0
02h
=
07h A1
A2
02h
F3h
A3
B3h
A4
A1h
A5
B0h
R1
5h
A6
A9h
R2
F3h
A7
A8h
R3
A1h
5h
A8
A4h
A9
B1h
AA
B2h
R4
R5
R.Mitnik
02h
Memoria
A2h
49
Arquitectura de Computadores
Post-Incremento
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento

ADD R1, (R3)+
A0
5h
R0
02h
=
07h A1
02h
A2
F3h
A3
B3h
Registros
A4
A1h
A1h
A5
B0h
A6
A9h
R1
R2
F3h
A7
A8h
R3
A1
2h
5h
A8
A4h
A9
B1h
AA
B2h
R4
R5
R.Mitnik
+
Memoria
A2h
50
Arquitectura de Computadores
Desplazamiento
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
Desplazamiento

Ej: MOVE R0, 8(R3) equivale a
R0 Mem[ R3+ 8 ]
R.Mitnik
51
Arquitectura de Computadores
Desplazamiento
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento

MOVE R0,8(R3)
Registros
R0
A1
02h
A2
F3h
A3
B3h
A4
A1h
A5
B0h
A6
A9h
R1
5h
R2
F3h
A7
A8h
R3
A1h
5h
A8
A4h
A9
B1h
B1h
B2h
R4
R5
R.Mitnik
A0
Memoria
A2h
+8
AA
52
Arquitectura de Computadores
Indexado
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
Indexado


Ej: MOVE R5, (R0+R4) equivale a
R5 Mem[ R0+ R4 ]
Ejemplo practico

R.Mitnik
Puede ser útil para arreglos : R0 base del arreglo; R4 índice.
53
Arquitectura de Computadores
Indexado
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento

A0
Memoria
A2h
A1
02h
A2
F3h
A3
B3h
Registros
A4
A1h
A5
B0h
R1
A1h
5h
A1h+ 5h A6
R2
F3h
A7
A9h
A9h
A8h
R3
A1h
5h
A8
A4h
A9
B1h
AA
B2h
MOVE R5,(R0 + R4)
R0
R4
R5
R.Mitnik
54
Arquitectura de Computadores
Desplazamiento relativo al PC
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
Desplazamiento relativo al PC

Ej: MOVE R0, 6(PC) equivale a
R0 Mem[ PC+ 6 ]
R.Mitnik
55
Arquitectura de Computadores
Desplazamiento relativo al PC
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento

MOVE R0,6(PC)
+6
Registros
A1
02h
A2
F3h
A3
B3h
A4
A1h
A5
B0h
PC
R0
A0h
R1
5h
A6
R2
F3h
A7
A9h
A9h
A8h
R3
A1h
5h
A8
A4h
A9
B1h
AA
B2h
R4
R5
R.Mitnik
A0
Memoria
A2h
56
Arquitectura de Computadores
Indexado relativo al PC
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento
Indexado relativo al PC

Ej: MOVE R5, (R0+PC) equivale a
R5 Mem[ R0+ PC ]
R.Mitnik
57
Arquitectura de Computadores
Indexado relativo al PC
Capítulo 4 : Unidad de Procesamiento Central (CPU) – Modos de direccionamiento

A0
Memoria
A2h
A1
02h
A2
F3h
A3
B3h
Registros
A4
A1h
A5
B0h
A6
A9h
MOVE R5,(R0 + PC)
A1h + 9h
PC
R0
09h
R1
A1h
5h
R2
F3h
A7
A8h
R3
A4h
5h
A8
A4h
A9
B1h
AA
B2h
B2h
R4
R5
R.Mitnik
58
Arquitectura de Computadores
Resumen
Capítulo 4 : Unidad de Procesamiento Central (CPU)
Resumen
Representación de datos en memoria





R.Mitnik
Tamaño
Ordenamiento
Alineación
Modos de direccionamiento
59
Arquitectura de Computadores
Descargar

Arquitectura de Computadores