CC-BY-SA • PID_00178132
86
donde ESC corresponde al código ASCII del carácter de escape 27 decimal o 1Bh, F corresponde a la fila donde queremos colocar el cursor, expresada como un valor decimal, y C corresponde a la columna donde queremos colocar el cursor, expresada como un valor decimal. Ejemplo Podemos mover el cursor a la fila 5 columna 10, escribiendo la secuencia ESC[05;10H. section .data escSeq db 27,"[05;10H" escLen equ 8 section .text mov rax,4 mov rbx,1 mov rcx, escSeq mov rdx, escLen int 80h
2)�Limpiar�la�consola. Para limpiar la consola debemos escribir la secuencia ESC[2J. section .data escSeq db 27,"[2J" ;ESC[2J escLen equ 4 ; tamaño de la cadena escSeq section .text mov rax,4 mov rbx,1 mov rcx, escSeq mov rdx, escLen int 80h
3)�Secuencias�de�escape�en�C. En lenguaje C podemos conseguir el mismo resultado escribiendo la secuencia que emplea la función printf; el carácter ESC se puede escribir con su valor hexadecimal 1B. Ejemplo #include <stdio.h> int main(){ printf("\x1B[2J"); //Borra la pantalla printf("\x1B[5;10H"); //Sitúa el cursor en la posición (5,10) }
5.7. Funciones del sistema operativo (system calls) Desde un programa en ensamblador podemos hacer llamadas a diferentes funciones del núcleo (kernel) del sistema operativo; es lo que se conoce como system calls o kernel system calls. El lenguaje de ensamblador proporciona dos mecanismos para poder hacer llamadas al sistema operativo: 1)� int� 80h: este es el mecanismo tradicional en procesadores x86 y, por lo tanto, también está disponible en los procesadores con arquitectura x86-64.
Programación en ensamblador (x86-64)