1 minute read
5.7. Funciones del sistema operativo (system calls
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.
Advertisement
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.