User Tools

Site Tools


documentacion_pcp

Documentación PCP

CPU Ithladin

La CPU del PCP es un nucleo emulado por el Atmega 328. Se trata de una plataforma de 32 bits, con una longitud de instruccion fija de 32 bits. El sistema posee 14 registros de uso general y 2 de uso interno.

He aqui una documentacion preliminar del mismo:

registros:

r0 -- r13
rpc, rsp (r14 y r15)

especiales:

0 - nop -- no hace nada 
1 - sys - sys 1 -- hace la llamada del sistema 1 (tienen que haber parametros en los registros correspondientes)

carga:

2 - lw - lw r1,r2 -- guarda en r1 la palabra en [r2] 
3 - sw 
4 - lb - lb r1,r2 -- guarda en r1 el byte en [r2]
5 - sb
6 - ld - ld r1,1 -- guarda en r1 el valor inmediato especificado
7 - cp - cp r1,r2 -- guarda en r2 el valor de r1

aritmeticas:

8 - add - add r1,r2,r3 -- suma r1 y r2 y guarda el valor en r3
9 - sub
10 - mul 
11 - div

manejo de bits:

12 - shr - shr r1,5,r2 -- desplaza los bits de r1 5 posiciones a la derecha y guarda el resultado en r2
13 - shl

control de flujo:

14 - jmp - jmp r1 -- salto absoluto a [r1]
15 - beq - beq r1,r2,r3-- salta a [r3] si r1 = r2
16 - bne -- salta si no igual
17 - bgt -- salta si mayor que
18 - blt -- salta si menor que

pila:

19 - push r1
20 - pop r1

logicas:

21 - and r1,r2,r3 hace el and logico de r1 y r2 y guarda el resultado en r3
22 - or r1,r2,r3
23 - not r1,r2
24 - xor r1,r2,r3

salto a subrutina:

25 - call r1 -- Salta a la subrutina en [r1] apilando la direccion de vuelta en la pila
26 - ret -- Vuelve de una subrutina desapilando la direccion

5 bits codigo de operacion 4 bits para direccionar registro

Llamadas al sistema

Variables de sistema:

color,attribute : dos bytes que seran el color y el atributo global

Registros parametro:

r9 - especifica la subfuncion
r10
r11
r12
r13
r14

Funcion 0: Acceso a pantalla

Subfuncion 0: Leer la posicion del cursor y datos del caracter actual
	Devuelve en r10 y r11 X,Y del cursor, en r12 el caracter, y en r13 y r14 los atributos y color del mismo
Subfuncion 1: Cambiar atributo de caracter global
	Se cambia el atributo por el valor leido en r10
Subfuncion 2: Cambiar color de caracter global
	Se cambia el color por el valor leido en r10
Subfuncion 3: Escribir caracter
	Escribe el caracter en r10 en la posicion actual, con los atributos globales y el color global
Subfuncion 4: Escribir caracter especifico
	Escribe el caracter en r10 en la posicion r11xr12 con atributo r13 y color r14
Subfuncion 5: Cambiar x,y
	Cambia x,y por los valores que haya en r10,r11
Subfuncion 6: Borrar pantalla
	Borra la pantalla
Subfuncion 7: Activar cursor
	Activa el cursor de texto
Subfuncion 8: Desactivar cursor
	Desactiva el cursor de texto

Funcion 1: Lectura de teclado

Subfuncion 0: Preguntar si se ha pulsado una tecla
	Devuelve 1 en r10 si es asi y 0 en caso contrario

Subfuncion 1: Leer el caracter que hay en el buffer
	Devuelve en r10 el caracter 
Subfuncion 2: Espera una pulsacion de tecla y la lee
	Devuelve en r10 el caracter

Funcion 2: Sistema TTS

Subfuncion 0: Reproducir alofono
	Se reproduce el alofono contenido en r10
documentacion_pcp.txt · Last modified: 2012/11/28 15:15 by jojo