Inline Assembly - How to - Varios
Tutorial creado por Martin Candurra. Extraido de: http://es.tldp.org/Manuales-LuCAS/doc-gcc-inline/doc-gcc-inline-html/
24 de Febrero de 2006
Lenguaje C
4 - Varios
En esta sección intento adjuntar algunos cometarios que considero importantes.
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\n\tnop" : : "r" (puerto) );
háganlo y comparen los resultados.
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.
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, háganlo y comparen los resultados.
¿Qué 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.
Valora este capítulo:
Autor y licencia de 'Inline Assembly - How to - Varios'
|
Opiniona sobre 'Inline Assembly - How to - Varios' (1)
Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.
Opina sobre este tutorial |
Wikis relacionados con 'Inline Assembly - How to - Varios'
Según Philip Kotler, la relación comercial puede ser de diferentes tipos. Con la terminología de...
Más »
Revisamos varios lenguajes de programación que son usados en la actualidad para hacer páginas Web....
Más »
Revisamos varios lenguajes de programación que son usados en la actualidad para hacer páginas Web....
Más »
Las ferias, congresos, conferencias o cualquier otro acto que reúna varios agentes que intervienen en...
Más »
Esta es una traducción al español de los "Uniform Requirements for Manuscripts Submitted to Biomedical...
Más »
