Hola a todos, verán estaba programando en C cuando pense qué podía hacer para borrar la ventana de consola (el cls de windows, vamos) en vez de hacer unos cuantos printf("\n") cutres.
Revise mis archivos y me encontre con un code en asm que lo hacía.
Su code es éste:
-   
- Mov ax,0600h  
- Mov bh, 07h   
- Mov cx,0000h  
- Mov dx,184fh  
- Int 10h  
-   
-   
Tras mirar como gcc trabajaba con el asm y ver que la sintaxis era AT&T
porté el code a ésto:
-   
-   
- void cls() { 
-   
-  __asm__ ("movw $0x600, %ax\n" 
-               "movb $0x7, %bh\n" 
-               "movw $0x0, %cx\n" 
-               "movw $0x184f, %dx\n" 
-               "int $0x10"); 
- } 
-   
-   
-   
El programa me compila, pero al usar la función cls() en la linea:
-   
- "int $0x10"); 
-   
-   
El programa de un Segmentation Fault.
Pueden decirme por qué falla ? No he portado bien el code, o es que Windows Xp no me deja usar esa interrupción ?
A ver si me pueden ayudar.
Salu2