Next Previous Contents

4. Varios

En esta secci�n intento adjuntar algunos cometarios que considero importantes.

4.1 Modificadores '\n' y '\t'

Probablemente si ven c�digo fuente que usa ensamblado en l�nea como Linux o Routix (por qu� no ?) encuentren entre instrucci�n e instrucci�n un modificador '\n' o '\t'. Estos no son m�s que los famosos modificadores de formato utilizados en C. El caracter '\t' tabula 8 espacios mientras que '\n' avanza hacia una nueva linea. Que funci�n cumplen aqu� ? Sencillamente ayudan a generar un c�digo m�s claro.

Pueden hacer la prueba de compilar

    __asm__ ("movl %0, %%cr3;nop" : : "r" (puerto) );

            o bien

    __asm__ ("movl %0, %%cr3\n\tnop" : : "r" (puerto) );
h�ganlo y comparen los resultados.

4.2 Que es volatile ?

En muchos casos pueden haber encontrado luego de un __asm__ al modificador __volatile__ . Este tiene por objeto decirle al Gcc que sea cual fuera el modo de compilaci�n no debe alterar el c�digo escrito por ustedes en el inline assembly. Si no lo hacen, y s�lo escriben un __asm__ el Gcc intentar� optimizar todo el c�digo con el fin de lograr mayor eficiencia, lo cu�l puede llegar a ir contra nuestras intenciones. Miren un poco el c�digo fuente de Linux para ver que tanto Linus Torvalds utiliz� a ese modificador.


Next Previous Contents