User Tools

Site Tools


documentacion_pcp
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


Previous revision
Last revision
documentacion_pcp [2012/11/08 22:00] jojo
Line 1: Line 1:
 +====== 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
  
documentacion_pcp.txt · Last modified: 2012/11/28 15:15 by jojo