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