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.

This article is from: