fbpx
Wikipedia

Int 80h

La instrucción int 80h es utilizada en lenguaje ensamblador x86 para provocar una interrupción de software e invocar los servicios de GNU/Linux. En Linux existen llamadas (system calls) que proveen funciones básicas para acceder al hardware: los discos, el teclado, el video, los puertos, etc. Estas funciones básicas se llaman servicios a programas o APIs (Application Programming Interface).

Introducción

Existen aproximadamente 250 servicios que brinda esta interrupción. El número del servicio se pone en EAX y luego se ponen los demás parámetros en los restantes registros del microprocesador: EBX, ECX, EDX, ESI, EDI y EBP.

Ejemplos

Servicio 1: salida del proceso actual y retorno al sistema que lo invocó. En EBX se coloca el modo de salida, generalmente ponemos 0 para indicar que la salida se produjo normalmente (es decir, no fue causada por un error).

En NASM

mov eax,1 mov ebx,0 int 80h 

En Gas

movl $0, %ebx movl $1, %eax intl $0x80 

Servicio 3: lectura (read). Los parámetros necesarios son:

EBX: unidad de entrada (0: entrada estándar).
ECX: Puntero a un área de memoria donde se dejarán los caracteres obtenidos.
EDX: Número máximo de caracteres a leer.

En NASM

mov eax,3 mov ebx,0 mov ecx,oración mov edx,100 int 80h 

En Gas

movl $100, %edx movl $oración, %ecx movl $0, %ebx movl $3, %eax intl $0x80 

Servicio 4: escritura (write). Los parámetros necesarios son:

EBX: unidad de salida (1: salida estándar).
ECX: Puntero a un área de memoria donde se encuentran los caracteres a mostrar.
EDX: Número máximo de caracteres a mostrar.

En NASM

mov eax,4 mov ebx,1 mov ecx,oración mov edx,100 int 80h 

En Gas

movl $100, %edx movl $oración, %ecx movl $1, %ebx movl $4, %eax intl $0x80 

Servicios para el trabajo con archivos

Servicio 5: apertura (open). Los parámetros necesarios son:

EBX: la dirección de una cadena de caracteres terminada en nulo.
ECX: Modo de acceso.
EDX: permisos al archivo, si se abre creándolo.

Modos de acceso:

O-RDONLY 0: El archivo se abre sólo para leer de él.
O-WRONLY 1: El archivo se abre sólo para escribir en él.
O-RDWR 2: El archivo se abre para lectura y escritura.
O-CREAT 256: Crear el archivo en caso de que no exista.
O-APPEND 2000h: El archivo se abre sólo para escritura al final, añadiendo información.

Permisos:

S-IRUSR 400H: El archivo puede ser leído por el dueño.
S-IWUSR 200h: El archivo puede ser escrito por el dueño.
S-IROTH: El archivo puede ser leído por otros usuarios.
S-IWOTH: El archivo puede ser escrito por otros usuarios .

En NASM

mov eax,5 mov ebx,pepito.txt,0 mov ecx,1 mov edx,0 int 80h 

En Gas

movl $0, %edx movl $1, %ecx movl $pepito.txt, %ebx movl $5, %eax intl $0x80 

Como alternativa para crear archivos se puede usar el servicio 8 (create).

Para lectura y escritura del archivo se utilizan los servicios 3 y 4 mencionados anteriormente, pero se les cambia el valor de EBX por la dirección del archivo a leer/escribir o el descriptor del mismo.

Para manipular el puntero en el archivo se utiliza el servicio 13h (lseek). Los parámetros necesarios son:

EBX: Descriptor del archivo cuyo puntero va a manipularse
ECX: Número de bytes a desplazarse desde el punto que es indicado como referencia.
EDX: Punto de referencia para el desplazamiento. 0 inicio, 1 posición actual, 2 final

Ej: posicionarse al inicio del archivo

En NASM

mov eax,13h mov ebx, descriptor mov ecx,0 mov edx,0 int 80h 

En Gas

movl $0, %edx movl $0, %ecx movl $descriptor, %ebx movl $0x13, %eax intl $0x80 

Después de trabajar con el archivo, éste se debe cerrar. Para eso existe el servicio 6 (close), para el cual basta poner en EBX el descriptor del archivo a cerrar.

Existen muchos más servicios, por ejemplo para el trabajo con el reloj del PC, para el trabajo con directorios, para eliminar procesos, etc.

Referencias

Unix Assembly Language Programming (En inglés)

Véase también

Linux System Call Table (En inglés)

Linux Syscall Reference (En inglés)

  •   Datos: Q5918543

instrucción, utilizada, lenguaje, ensamblador, para, provocar, interrupción, software, invocar, servicios, linux, linux, existen, llamadas, system, calls, proveen, funciones, básicas, para, acceder, hardware, discos, teclado, video, puertos, estas, funciones, . La instruccion int 80h es utilizada en lenguaje ensamblador x86 para provocar una interrupcion de software e invocar los servicios de GNU Linux En Linux existen llamadas system calls que proveen funciones basicas para acceder al hardware los discos el teclado el video los puertos etc Estas funciones basicas se llaman servicios a programas o APIs Application Programming Interface Indice 1 Introduccion 1 1 Ejemplos 2 Referencias 3 Vease tambienIntroduccion EditarExisten aproximadamente 250 servicios que brinda esta interrupcion El numero del servicio se pone en EAX y luego se ponen los demas parametros en los restantes registros del microprocesador EBX ECX EDX ESI EDI y EBP Ejemplos Editar Servicio 1 salida del proceso actual y retorno al sistema que lo invoco En EBX se coloca el modo de salida generalmente ponemos 0 para indicar que la salida se produjo normalmente es decir no fue causada por un error En NASM mov eax 1 mov ebx 0 int 80 h En Gas movl 0 ebx movl 1 eax intl 0x80 Servicio 3 lectura read Los parametros necesarios son EBX unidad de entrada 0 entrada estandar ECX Puntero a un area de memoria donde se dejaran los caracteres obtenidos EDX Numero maximo de caracteres a leer En NASM mov eax 3 mov ebx 0 mov ecx oracion mov edx 100 int 80 h En Gas movl 100 edx movl oracion ecx movl 0 ebx movl 3 eax intl 0x80 Servicio 4 escritura write Los parametros necesarios son EBX unidad de salida 1 salida estandar ECX Puntero a un area de memoria donde se encuentran los caracteres a mostrar EDX Numero maximo de caracteres a mostrar En NASM mov eax 4 mov ebx 1 mov ecx oracion mov edx 100 int 80 h En Gas movl 100 edx movl oracion ecx movl 1 ebx movl 4 eax intl 0x80 Servicios para el trabajo con archivosServicio 5 apertura open Los parametros necesarios son EBX la direccion de una cadena de caracteres terminada en nulo ECX Modo de acceso EDX permisos al archivo si se abre creandolo Modos de acceso O RDONLY 0 El archivo se abre solo para leer de el O WRONLY 1 El archivo se abre solo para escribir en el O RDWR 2 El archivo se abre para lectura y escritura O CREAT 256 Crear el archivo en caso de que no exista O APPEND 2000h El archivo se abre solo para escritura al final anadiendo informacion Permisos S IRUSR 400H El archivo puede ser leido por el dueno S IWUSR 200h El archivo puede ser escrito por el dueno S IROTH El archivo puede ser leido por otros usuarios S IWOTH El archivo puede ser escrito por otros usuarios En NASM mov eax 5 mov ebx pepito txt 0 mov ecx 1 mov edx 0 int 80 h En Gas movl 0 edx movl 1 ecx movl pepito txt ebx movl 5 eax intl 0x80 Como alternativa para crear archivos se puede usar el servicio 8 create Para lectura y escritura del archivo se utilizan los servicios 3 y 4 mencionados anteriormente pero se les cambia el valor de EBX por la direccion del archivo a leer escribir o el descriptor del mismo Para manipular el puntero en el archivo se utiliza el servicio 13h lseek Los parametros necesarios son EBX Descriptor del archivo cuyo puntero va a manipularse ECX Numero de bytes a desplazarse desde el punto que es indicado como referencia EDX Punto de referencia para el desplazamiento 0 inicio 1 posicion actual 2 finalEj posicionarse al inicio del archivoEn NASM mov eax 13 h mov ebx descriptor mov ecx 0 mov edx 0 int 80 h En Gas movl 0 edx movl 0 ecx movl descriptor ebx movl 0x13 eax intl 0x80 Despues de trabajar con el archivo este se debe cerrar Para eso existe el servicio 6 close para el cual basta poner en EBX el descriptor del archivo a cerrar Existen muchos mas servicios por ejemplo para el trabajo con el reloj del PC para el trabajo con directorios para eliminar procesos etc Referencias EditarUnix Assembly Language Programming En ingles Vease tambien EditarLinux System Call Table En ingles Linux Syscall Reference En ingles Datos Q5918543Obtenido de https es wikipedia org w index php title Int 80h amp oldid 125249050, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos