las palabras de un lenguaje de computador son conocidas como "Instrucciones" y su vocabulario es llamado "set de instrucciones".
Como es bien sabido todo el procesador debe estar en capacidad de realizar algun tipo de operacion sobre un conjunto de datos. En el caso de la arquitectura SPARCV8 tenemos un conjunto de instrucciones de tamaño fijo de 32bits (Arquitectura RISC) $\approx$ 72 instrucciones. Todas las operacicones seran triadicas, esto significa que tendrá 3 parametros.
La instruccion suma en SPARCV8 se escribe como :
add b,c,a
tenemos entonces que en b, c estaran almacenados los valores a operar definidos como los operandos y en a se almacenara el resultado. Ejemplo de una asignación: $$f=(g+h)-(a+b)$$ En asembler tendriamos:
add g,h,f
add a,b,g
sub f,g, f
como se pueda notar que a pesar de que la operacion es compleja en ensamblador solo puedo operar 2 operandos.
Principio de Diseño : La simplicidad favorece la regularidad
Anteriormente vimos que las instruciones se estan ejecuntando sobre las "variables",sin embargo en procesador NO PUEDE acceder directamente a las variables definidas en algun lenguaje de alto nivel. EL procesador solo puede acceder a REGISTROS, los cuales deberean contener los valores correctos a operar. La arquitectura SPARCV8(scalable processor architecture) contiene entre 40-520 registros que pueden ser utilizados. sin embargo la cantidad exacta depende directamente de la implementacion.
La arquitectura SPARC V8 clasifica sus registros en 4 grandes tipos:
add %o0,%o1,%i0
Segundo Principio : Pequeño es mas rapido
Tabla de Registros
| Nemonic | Register Number |
|---|---|
| %i0-%i7 | r24-r31 |
| %l0-%l7 | r16-r23 |
| %o0-%o7 | r8-r15 |
| %o0-%o7 | r0-r7 |
Ejercicio $l_1=(g+p)-(a-h)$ l1:%l0 g:%l1 p:%l2 a:%l3
add %l1,%l2,%l1
add %l3,%l0,%l0
sub %l1,%l0,%l0
load $\longrightarrow$ ld
store $\longrightarrow$ st
Cuando un procesador necesita acceder a un gran nummero de datos, se hace necesario que pueda acceder a memoria principal. Estos accesos permitiran que el sitema pueda utilizar la mayor cantidad de informacion para realizar sus operaciones . En la arquitectura SPARCV8 existen dos tipos de instrucciones para realizar esta tarea, las instrucciones de LOAD y las de STORE.
ld [address] regrd
st regrd, [address]
In [ ]: