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