Contenido>Indice>Intro CursoC51

PASO DE PARÁMETROS EN REGISTROS


Las versiones modernas de C51 admiten el paso de parámetros a través de los registros de la CPU (R0-R7), lo cual permite realizar llamadas muy rápidas a funciones. En los registros se pueden pasar hasta tres parámetros, pero si alguno de ellos es long o float, sólo se podrán pasar dos parámetros ya que un long o float ocupa 4 bytes y únicamente hay 8 registros disponibles. Para mantener la compatibilidad con las versiones antiguas de C51 se utiliza la sentencia "#pragma NOREGPARMS que obliga a utilizar posiciones fijas de memoria para el paso de parámetros.

Tipo Parámetro    char    int   long/float   Generic Ptr
___________________________________________________________________________

Parámetro  1º      R7     R6/R7     R4-R7     R1,R2,R3
Parámetro  2º      R5     R4/R5     R4-R7     R1,R2,R3
Parámetro  3º      R3     R2/R3               R1,R2,R3

Los punteros específicos de 1 byte y 2 bytes se pasan igual que los char 
y los int respectivamente  

   Contenido>Indice>Intro CursoC51