Académique Documents
Professionnel Documents
Culture Documents
Estructura de Computadores
Contenidos
estructura de computadores
1
3
1. Tipos de datos
Contenidos de la memoria EJEMPLO
⌦ El contenido de una palabra de memoria es una En una palabra de memoria de 32 bits
se puede codificar
colección de 0’s y 1’s
a) Un número entero entre -(231-1) y +(231-1)
⌦ Depende de cómo se interprete esa palabra, codificado mediante magnitud y signo
ésta puede representar:
Datos
b31 b30 ... b1 b0
8 bits 24 bits
estructura de computadores
1. Tipos de datos
Caracterización de los tipos de datos
⌦ Un tipo de datos es una sucesión de bits caracterizada por dos propiedades:
Su dominio, que es el conjunto de valores que el dato puede tomar y depende de:
El tipo de representación
El tamaño o número de bits utilizado para la representación
Las operaciones que pueden realizarse sobre ese dato
⌦ Se dice que una arquitectura soporta un determinado tipo de datos si
Tiene asignada al menos una representación de ese tipo de datos
Dispone de un conjunto de operaciones para manipular esa representación
Tipos de datos
Numéricos
estructura de computadores
2
5
2. Representación de Números
⌦ La representación de datos numéricos presenta algunos problemas derivados de la
naturaleza digital del computador:
Los números deben representarse con un número finito de bits lo que limita su rango y
precisión
Es necesario adaptar las operaciones a los números binarios
Errores de representación, redondeo, desbordamiento,…
⌦ Notación posicional. Un número de n dígitos en base r se representa:
(N)r = (Xn-1Xn-2…X0)r
Dígito más significativo Dígito menos significativo
estructura de computadores
2. Representación de Números
⌦ Números Naturales (N) enteros sin signo representados usando binario puro.
Número menor: 0
estructura de computadores
3
7
2. Representación de Números
Representación de datos numéricos decimales
⌦ Cada dígito decimal se codifica mediante un grupo de 4 bits
BCD: los dígitos decimales se codifican mediante su equivalente binario
Exceso-3: los dígitos decimales se codifican sumando 3 a su equivalente binario
estructura de computadores
Representación de caracteres
⌦ Los caracteres son necesarios para representación de la información escrita
Letras del alfabeto (a, b, ..., z, A, B, ..., Z, á, é, ..., ü, ...)
Signos de puntuación (, ; : . ¿? ¡! -)
Caracteres numéricos (0, 1, ..., 9)
⌦ Existen diversas alternativas de codificación (7 u 8 bits por carácter)
ASCII (www.asciitable.com)
UNICODE (16 bits) (www.unicode.org)
estructura de computadores
4
9
N = ± (b30 *220 + b29 *219 + .... + b10*20 + b9 *2-1 + ....+ b0 *2-10 ) b31 b30 ··· b10 b9 ··· b0
estructura de computadores
10
20 21 22 23 24
Precisión de la representación. La precisión mayor es 2-24 ~ 10-7 ⇒ 7 dígitos
0.100…1 2e - 0.100…0 2e = 0.000…1 2e
Usando esta representación números sencillos (0.1) pueden no tener una representación
exacta
estructura de computadores
5
11
estructura de computadores
12
Underflow Overflow
0 2-149 2-126 2128
estructura de computadores
6
13
estructura de computadores
14
Xt X Xe Xt X Xe
estructura de computadores
7
15
estructura de computadores
16
estructura de computadores
8
17
estructura de computadores
18
estructura de computadores
9
19
estructura de computadores
20
estructura de computadores
10
21
estructura de computadores
22
estructura de computadores
11
23
5. Organización de la Memoria
Organización de la memoria (*) (*) Desde el punto de vista del programador
EJEMPLO MEMORIA
0 Palabra 0
⌦ Computador de 32 bits con 16 Mbytes de memoria 1 Palabra 1
Ancho de palabra: 32 bits (4 bytes)
Dirección
Nº de palabras en memoria: 4 M palabras (222)
i Palabra i
Espacio de direcciones: 222 palabras
Nº de bits de dirección necesarios: 22
2k-1 Palabra 2k-1
n bits
estructura de computadores
24
5. Organización de la Memoria
⌦Sin embargo, es posible que la arquitectura permita que el tamaño de la información mínima
direccionable sea menor que una palabra de memoria:
Se llama unidad direccionable, a la mínima cantidad de información que tiene una dirección
única
Es común que en un computador de ancho de palabra 16, 32 ó 64 bits, el tamaño de la
unidad direccionable sea de 1 byte (8 bits)
⌦Cuando el ancho de palabra y tamaño de la unidad direccionable no coinciden aparecen 2
problemas:
Alineamiento: cómo relacionar las direcciones de las palabras con las direcciones de las
unidades direccionables
Ordenamiento: cómo repartir el contenido de una palabra en un conjunto consecutivo de
unidades direccionables
12
25
5. Organización de la Memoria
Alternativas de ordenamiento
⌦ Big-Endian: los bytes dentro de una palabra se ordenan comenzando por el de menor dirección
La dirección de la palabra coincide con la dirección del primer byte
⌦ Little-Endian: los bytes dentro de una palabra se ordenan comenzando por el de mayor dirección
La dirección de la palabra coincide con la dirección del último byte
Big-Endian Little-Endian
Dirección del byte Dirección del byte
Big-Endian Little-Endian
184 185 186 187 187 186 185 184 Palabra 2k-4 2k-4 2k-3 2k-2 2k-1 Palabra 2k-4 2k-1 2k-2 2k-3 2k-4
184: AA BB CC DD 184: AA BB CC DD
⌦ Big-Endian: el byte más significativo del dato (AA) se
Visto de otro modo:
almacena en la dirección de byte con valor numérico más
184 AA 184 DD bajo (184)
185 BB 185 CC ⌦ Little-Endian: el byte más significativo del dato (AA) se
186 CC 186 BB almacena en la dirección de byte con valor numérico más
187 DD 187 AA alto (187)
estructura de computadores
26
6. Modos de Direccionamiento
a. Definición
⌦Forma de especificar la ubicación de los datos y modos para acceder a ellos
⌦Los datos que maneja una instrucción máquina pueden estar ubicados en:
En la propia instrucción
En un registro de la CPU
estructura de computadores
13
27
6. Modos de Direccionamiento
b. Modo de Direccionamiento Inmediato
⌦ El operando está contenido en un campo de la propia instrucción máquina
⌦ Sintaxis: opcode #A
Instrucción:
opcode A
operando = A
estructura de computadores
28
6. Modos de Direccionamiento
c. Modo de Direccionamiento Directo a Registro
⌦ El operando está contenido en un registro de la CPU
⌦ Sintaxis: opcode Ri
Instrucción:
Registros
opcode Ri R0
…
Rn
estructura de computadores
14
29
6. Modos de Direccionamiento
d. Modo de Direccionamiento Directo a Memoria (Absoluto)
⌦ La dirección efectiva del operando está especificada en la instrucción
⌦ Sintaxis: opcode A
Instrucción:
Memoria
opcode A 0
…
EA = A A operando
…
2k-1
estructura de computadores
30
6. Modos de Direccionamiento
e. Modo de Direccionamiento Indirecto con Registro
⌦ La dirección efectiva del operando está almacenada en el registro especificado
en la instrucción
⌦ Sintaxis: opcode (Ri)
Instrucción:
opcode Ri Memoria
0
…
EA = (Ri) Registros
R0 (Ri) operando
…
Ri Dirección operando
…
Rn 2k-1
estructura de computadores
15
31
6. Modos de Direccionamiento
f. Modo de Direccionamiento Indirecto con Memoria
⌦ La dirección efectiva del operando está almacenada en la dirección de
memoria especificada en la instrucción
⌦ Sintaxis: opcode (A)
Memoria
Instrucción:
0
A
…
opcode
(A) operando
EA = (A)
…
A Dirección operando
…
2k-1
⌦ Implementación de paso por referencia de parámetros a subrutinas (punteros)
⌦ Ventaja: Mayor zona referenciable.
⌦ Desventaja: Requiere dos accesos a memoria
estructura de computadores
32
6. Modos de Direccionamiento
h. Modo de Direccionamiento de Pila
⌦ El operando está almacenado en la cabecera de la pila del computador
⌦ Sintaxis: opcode (SP)
Instrucción:
Pila (en memoria)
opcode SP operando
registro de pila
…
EA = (SP)
estructura de computadores
16
33
6. Modos de Direccionamiento
i. Indirectos con desplazamiento
⌦ La dirección del operando es de la forma: EA = base + desplazamiento.
Instrucción:
Memoria
opcode Ri desp 0
…
Registros
EA = (Ri)+desp (Ri)+desp operando
R0
…
…
Ri Dirección base
+
…
Rn 2k-1
estructura de computadores
34
6. Modos de Direccionamiento
j. Modo de Direccionamiento Indirecto Relativo al Contador de Programa
Programa
⌦ Es un direccionamiento registro-base que utiliza implícitamente el contador
de programa
⌦ Sintaxis: opcode desp(PC)
Instrucción: Memoria
0
opcode desp
…
+ (PC)+desp operando
Contador de Programa
…
EA = (PC)+desp
2k-1
estructura de computadores
17
35
6. Modos de Direccionamiento
k. Modo de Direccionamiento Indirecto con Registro Base y Registro
Registro Índice
⌦ La dirección efectiva del operando se calcula sumando el campo desplazamiento
al contenido de los registros especificados: Base (Ri) e Índice (Rj)
⌦ Sintaxis: opcode desp(Ri, Rj)
Instrucción:
opcode Ri Rj desp
Memoria
Registros 0
R0
…
Ri Dirección base operando
+
…
…
Rj Índice
EA = (Ri) +(Rj)+desp
…
Rn 2k-1
estructura de computadores
36
6. Modos de Direccionamiento
Otros modos de direccionamiento
Modo Sintáxis Dir. Efectiva
Indirecto con registro Opcode (Ri)+ EA = (Ri)
postincrementado Ri ← (Ri) + 1
estructura de computadores
18
37
6. Modos de Direccionamiento
l. Algunas Aplicaciones de los Modos de Direccionamiento
Acceso a variables del tipo array
⌦ El primer elemento del array es el 0
⌦ El tamaño de cada elemento del array es una palabra
⌦ Dirección del elemento i-ésimo
EA(A[i]) = EA(A[0]) + i
⌦ Direccionamienro Indirecto con registro base y registro índice. Memoria
estructura de computadores
38
6. Modos de Direccionamiento
l. Algunas Aplicaciones de los Modos de Direccionamiento
Acceso a variables del tipo estructura o registro
Memoria
struct
struct var
var {{
long Dirección Base
long int campo1;
int campo1; campo1
int
int campo2;
campo2; Desplazamiento + campo2
}}
estructura de computadores
19
39
6. Modos de Direccionamiento
l. Algunas Aplicaciones de los Modos de Direccionamiento
Operaciones de Pila
⌦Las operaciones básicas sobre una pila (PUSH y POP) pueden realizarse utilizando los modos de
direccionamiento autoindexados. (La pila crece hacia posiciones inferiores)
PILA
(Puntero de pila) 4
4
PILA
•
PILA
• •
• • •
• •
• 320 320
320 •
• •
• • •
• •
• 2k-1 2k-1
2k-1
R1 12 R1 91
estructura de computadores
40
6. Modos de Direccionamiento
Ejemplo
Mostrar el contenido de todos los registros y posiciones de memoria afectadas (sin incluir el
PC) por la ejecución de cada una de las instrucciones, suponiendo que partimos siempre
de las condiciones iniciales especificadas:
Instrucciones:
a) CLR.L -(A1) Condiciones
Condicionesiniciales:
iniciales:
b) CLR.W D2 REGISTROS
REGISTROS MEMORIA
MEMORIA
c) MOVE.W $1204,D1 A1:00001202
A1:00001202 001200:1111
001200:1111
d) MOVE.W #$1204,D1 A2:00001204
A2:00001204 001202:2222
001202:2222
e) MOVE.B (A2)+,$1200 D1:01020304
D1:01020304 001204:3333
001204:3333
f) MOVE.L D1,-(A2) D2:F0F1F2F3
D2:F0F1F2F3 001206:4444
001206:4444
g) MOVE.L (A1)+,D2 001208:5555
001208:5555
00120A:6666
00120A:6666
estructura de computadores
20
41
7. Instrucciones máquina
estructura de computadores
42
7. Instrucciones máquina
Trasferencia de datos
⌦ Permiten el movimiento entre distintos dispositivos de almacenamiento del computador:
Reg → Reg Mem → Reg Pila → Reg
Reg → Mem Mem → Mem Pila → Mem
Reg → Pila Mem → Pila
⌦ Necesario especificar:
Tipo de movimiento
Dirección de operandos fuente y destino
Tamaño de datos a mover (byte, palabra, doble palabra, ...)
Nº de elementos a mover (para movimientos múltiples)
Instrucción Operación
MOVE fnte,dest dest ← fnte
LOAD Ri, dir Ri ← (dir)
STORE dir, Ri dir ← (Ri)
PUSH fnte Pila ← fnte
POP dest dest ← Pila
MOVEM fnte, dest, n fnte0 ← dest0 ...
fnten-1 ← destn-1
estructura de computadores
21
43
7. Instrucciones máquina
Instrucciones Aritméticas
⌦ Permiten realizar operaciones de tipo aritmético
⌦ Necesario especificar:
Tipo de operación (suma, resta, multiplicación, división, etc.)
Tipo de operandos y de aritmética (con signo, punto flotante, BCD, ...)
Tamaño de datos sobre los que se opera
Dirección de operandos fuente y destino (0, 1, 2 ó 3, según el repertorio)
44
7. Instrucciones máquina
BTST fnt, n Estado ← fnte(n) Activa estado según valor del bit indicado
estructura de computadores
22
45
7. Instrucciones máquina
estructura de computadores
46
7. Instrucciones máquina
Instrucciones de Control de flujo
⌦ Permiten romper la secuencia normal de ejecución y saltar a una determinada dirección
especificada en la instrucción o implícita
⌦ Es necesario especificar la dirección de la siguiente instrucción que debe ejecutarse si el
salto es explícito
estructura de computadores
23
47
7. Instrucciones máquina
Instrucciones de Control de flujo
⌦ Las instrucciones de bifurcación o salto condicional (Bcc), saltan o no en función de la
condición especificada
⌦ Esta condición se calcula a partir de los bits de condición del registro de estado que se
activan en relación a la ejecución de las instrucciones anteriores:
⌦ Explícita: Mediante el uso de instrucciones de comparación
⌦ Implícita: Modificación de los códigos de condición de instrucciones ordinarias
estructura de computadores
48
7. Instrucciones máquina
Ejemplo: estructuras de decisión iterativas simples
falso CMP
if (A>B) { cierto
A>B CMP A,B
A,B
S1 BGT
BGT L1
L1
} S2
S2
S1 S2 ....
....
else {
JMP
JMP FIN
FIN
S2 L1 S1
} L1 S1
FIN ....
....
FIN
FIN ....
....
for(i=ini;i<fin;i++) i=ini
MOVE
MOVE ini,
ini, D0
D0
{ MOVE
MOVE fin,
fin, D1
D1
S1 cierto falso FOR
FOR CMP
CMP D1,D0
D1,D0
i<=fin
BGT
BGT FIN
FIN
}
S1
S1
S1
FIN
ADD
ADD #1,D0
#1,D0
i=i+1
BRA
BRA FOR
FOR
FIN
FIN ....
....
estructura de computadores
24
49
7. Instrucciones máquina
Instrucciones de Control de flujo
⌦ Instrucciones de soporte para la programación con subrutinas
⌦ Las subrutinas se pueden llamar desde cualquier punto.
⌦ Debe ser posible el anidamiento de subrutinas
⌦ Una vez finalizada la subrutina debe continuar la ejecución en el programa de origen.
estructura de computadores
50
7. Instrucciones máquina
Llamadas a procedimientos
$4000
$4000 inicio
inicioMOVE
MOVE #$0,D0
#$0,D0
PC $4501 ....
....
$4500
$4500 JSR
JSR sub1
sub1 PC $4501 PC $4601
$4501
$4501 MOVE
MOVE D0,$3000
D0,$3000
....
....
SP
$4600
$4600 fin
fin HALT
HALT
$4601 SP SP 4501
$4601 sub1
sub1 ADD
ADD #$3,D0
#$3,D0
...
...
$4630
$4630 JSR
JSR sub2
sub2 PC $4651
PC $4631 $4631
$4631 ADD
ADD D0,D1
D0,D1
$4650
$4650 RTS
RTS
$4651
$4651 sub2
sub2 CMP
CMP D0,D3
D0,D3 4631
...
... SP 4501
SP 4501
$4700
$4700 RTS
RTS
estructura de computadores
25
51
7. Instrucciones máquina
Llamadas a procedimientos (Paso de Parámetros)
⌦ Registros: Limitado por el número de registros. Difícil programación.
⌦ Memoria: Implica más accesos a memoria
⌦ Pila: Además de almacenar la dirección de retorno, se guardan los parámetros de la
subrutina. Permite procedimientos reentrantes.
JSR 2
Restaurar Contexto 4
Liberación de Parámetros
5 RTS
6
1 2 3
Contexto
dir dir
Param n Param n Param n
6 5 4
estructura de computadores
52
7. Instrucciones máquina
Otras instrucciones
Gestión de Marcos de Activación
⌦ Las variables locales de una subrutina se almacenan en la pila
⌦ El acceso a estas variables se simplifica mediante un puntero de marco de activación
(frame pointer)
Liberación de Parámetros
Variables Locales Restaurar Contexto
UNLK FP
Marco de FP (sub. Origen) FP RTS
Activación
Puntero de Marco
Dirección Retorno
de Activación
estructura de computadores
26
53
7. Instrucciones máquina
Otras instrucciones
⌦ En este grupo están englobadas distintas instrucciones
Transformación de datos
Cambian el formato de los datos, por ej. de decimal a binario
Manipulación de direcciones
Permiten calcular la dirección efectiva de un operando y almacenarla en un registro o en
pila, p. ej.
LEA fnte, reg (Load effective address: reg ← Dirección de fnte)
PEA fnte (Push Effective Address: Pila ← Dirección de fnte)
Control del sistema
Suelen ser instrucciones privilegiadas que usa el sistema operativo, p. ej.:
RESET, para reiniciar el computador (PC ← valor inicial)
RTE: retorno de excepción o interrupción
E/S
Para entrada y salida de datos entre el computador y dispositivos periféricos, p. ej.:
IN dir_perif, reg (reg ← perif)
OUT dir_perif, reg (perif ← reg )
estructura de computadores
54
estructura de computadores
27
55
Instrucción máquina:
estructura de computadores
56
estructura de computadores
28
57
estructura de computadores
58
estructura de computadores
29
59
estructura de computadores
60
estructura de computadores
30
61
estructura de computadores
62
estructura de computadores
31
63
estructura de computadores
64
estructura de computadores
32
65
Computadores CISC
⌦ VAX 11 (desaparecido)
⌦ IBM Mainframes (serie 360, 370 y descendientes)
⌦ Intel 80x86 (i8086, i80286, i80386, i80486, Pentiums)
⌦ Motorola MC68xxx (MC68000, MC68010, MC68020, MC68030, MC68040, MC68060 )
Computadores RISC
⌦ Motorola MC88000 (desaparecido)
⌦ MIPS Rxxxx (R2000, R3000, R4000, R5000, R8000, R10000, R12000)
⌦ Sun SPARC (SPARC, Super SPARC 2, Ultra SPARC I, Ultra SPARC II, Ultra SPARC III)
⌦ HP PA-RISC (7100, 7200, 7300, 8000, 8200, 8500)
⌦ PowerPC (601, 602, 603, 604, 620, 630, Power3)
⌦ DEC Alpha (21064, 21064a, 21066a, 21164, 21164a, 21264)
⌦ Intel 80860, Intel 80960
estructura de computadores
66
estructura de computadores
33
67
Byte 0 (8 bits)
Memoria (Ordenación Big-Endian) $000000 7 0
Palabra
$000000 Byte $000000 Byte $000001
Palabra 0 (16 bits)
$000002 Byte $000002 Byte $000003
$000000 15 0
.
.
. Doble Palabra 0 (32 bits)
$000000 31
. 0
.
BCD 0 (2 dígitos)
$FFFFFE Byte $FFFFFE Byte $FFFFFF
$000000 1 0
estructura de computadores
68
estructura de computadores
34
69
estructura de computadores
70
estructura de computadores
35
71
⌦ Contenidos de una instrucción máquina EW para dirección efectiva fuente (si existe, una o dos palabras)
Palabra operación (OW, siempre presente) EW para dirección efectiva destino (si existe, una o dos palabras)
Primera palabra de la instrucción
Código de operación
Modos de direccionamiento y Instrucciones de 0 operandos
tamaño de los operandos Sintáxis: OP
Palabras de extensión (EW, de 0 a 4) Instrucciones de 1 operando
Información adicional de los operandos
Sintáxis: OP destino
Valor inmediato
Operación: destino ← OP (destino)
Desplazamiento
Absoluto Instrucciones de 2 operando
⌦ Codificación modos de direccionamiento Sintáxis: OP fuente, destino
Dos campos: Modo y Registro (6 bits) Operación: destino ← (fuente) OP (destino)
estructura de computadores
72
EA 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Codificación de los modos de modo Registro OW: codigo_op
direccionamiento Ejemplos: RTS
Directo de reg. de datos 000 Nº de reg. (Dn) NOP
Directo de reg. de direcciones 001 Nº de reg. (An)
Indirecto de reg. 010 Nº de reg. (An)
Indirecto de reg. con postincremt. 011 Nº de reg. (An) Instrucciones con un operando (2 formatos)
Indirecto de reg. con predecrem. 100 Nº de reg. (An)
Indirecto de reg. con desplaz. 101 Nº de reg. (An) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Indirecto de reg. Index. con desplaz. 110 Nº de reg. (An) codigo_op tamaño EA destino (a)
Absoluto corto 111 000 OW: modo registro
Ejemplos: SWAP D1
estructura de computadores
36
73
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OW: cod_op tamaño EA destino EA fuente (a) OW: codigo_op registro 0 dato (a)
modo registro modo registro
Campotamaño Tamaño operando
01 byte (.B) -128 ≤ dato ≤ 127
11 palabra (.W)
10 doble palabra (.L) Ejemplo: MOVEQ #100, D0
Ejemplos: MOVE.L D7, 4(A5)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OW: codigo_op dato codigo_op EA destino (b)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 modo registro
OW: codigo_op registro modo_op EA fuente/destino (b)
modo registro 1 ≤ dato ≤ 8
Campo modo-op
Byte Palabra Doble pal. Operación Ejemplo: ADDQ #2, D3
000 001 010 <registro> OP <EA> → registro
100 101 110 <EA> OP <registro> → EA
SUBQ #1, D7
estructura de computadores
74
estructura de computadores
37
75
estructura de computadores
76
DESPLAZAMIENTOS Y ROTACIONES
Mnemotécnico Sintaxis Tamaño Función XNZ VC
ASL/ASR ASL/ASR Dm,Dn L,W,B (destino) desplaz. aritmet. de *****
ASL/ASR #<d3>,Dn <num> bits→destino
ASL/ASR ASL/ASR<amea> W (contador (destino) desplaz. aritmet. de *****
desplaz.=1) 1 bit →destino
LSL/LSR Igual que ASL/ASR Idem (destino) desplaz. logico de ***0*
<num> (o 1)bits→destino
ROL/ROR Igual que ASL/ASR Idem (destino) rotado –**0*
<num> (o 1)bits→destino
ROXL/ROXR Igual que ASL/ASR Idem (destino) rotado (con exten.) ***0*
<num> (o 1)bits→destino
estructura de computadores
38
77
estructura de computadores
78
GE "Greater or equal" - mayor o igual N xor V = 0 CC "Carry clear" - mayor o igual C=0
LE "Less or equal" - menor o igual Z + (N xor V) = 1
LS "Low or Same" - menor o igual Z+C=1
VS "Overflow" - desbordamiento V=1
c) Aritmética con signo o sin signo
VC "No overflow" - no desbordamiento V=0
estructura de computadores
39
79
estructura de computadores
80
estructura de computadores
40
81
Tipos de datos
⌦ Enteros ⌦ Reales en punto flotante
Tamaño Byte (8 bits) Simple precisión (32 bits)
Tamaño Media palabra (16 bits) Doble precisión (64 bits)
Tamaño Palabra (32 bits)
Bit signo
Memoria (Ordenación Big-Endian)
Byte $0 (8 bits)
$0 0 7
Media palabra $0 Media palabra $2
Palabra
Media palabra $0 (16 bits)
$00000000 Byte $0 Byte $1 Byte $2 Byte $3
$0 0 15
$00000004 Byte $4 Byte $5 Byte $6 Byte $7
Palabra $0 (32 bits)
Media palabra $4 . Media palabra $6 $0 0 31
.
. Real Simple precisión $0 (32 bits)
. $0 0 31
.
Real Doble Precisión $0 (64 bits)
$FFFFFFFC $0 0
$4 63
estructura de computadores
82
⌦ Directo op rs rt rd
de registro
registro
⌦ Inmediato op rs rt Inmed.
registro +
⌦ Indirecto con
op rs rt Inmed.
desplazamiento Memoria
relativo a PC
PC +
estructura de computadores
41
83
⌦ Instrucción de tipo J
6 26 Instrucciones de salto
op Dirección destino Ej.: J dir PC ← dir
estructura de computadores
84
Repertorio de instrucciones
Instrucción de movimiento de datos
Instrucción Significado Ejemplo Operación
LB Load byte LB $2, 40($3) R2 [24-31] ← Mem(40+(R3))8; R1[0-23]←(signo(Mem(40+(R3))))24
LBU Load byte unsigned LBU $2, 40($3) R2 [24-31] ← Mem(40+(R3))8; R1[0-23]←(0)24
LH Load half word LH $2, 40($3) R2 [16-31] ← Mem(40+(R3))16; R1[0-15]←(signo(Mem(40+(R3))))16
LHU Load half word unsigned LHU $2, 40($3) R2 [16-31] ← Mem(40+(R3))16; R1[0-15]←(0)16
LW Load word LW $2, 40($3) R2 [0-31] ← Mem(40+(R3))32
LF Load Float LF $2, 40($3) F2 [0-31] ← Mem(40+(R3))32
LD Load double float LD $2, 40($3) F2 [0-31], F3 [0-31] ← Mem(40+(R3))64
SB Store byte SB 40($3),$2 Mem(40+(R3))8 ← R2 [24-31]
SH Store half word SB 40($3),$2 Mem(40+(R3))16 ← R2 [16-31]
SW Store word SB 40($3),$2 Mem(40+(R3))32 ← R2 [0-31]
SF Store float SB 40($3),$2 Mem(40+(R3))32 ← F2 [0-31]
SD Store double float SB 40($3),$2 Mem(40+(R3))64 ← F2 [0-31], F3 [0-31]
estructura de computadores
42
85
(Siendo cc alguna de las condiciones siguientes: EQ (=); NE (<>); GE (>=); GT (>); LE (<=); LT (<))
estructura de computadores
86
estructura de computadores
43