From 84c5da93a755ef1f34e3284bb9e879f12e29bcc7 Mon Sep 17 00:00:00 2001 From: rick Date: Thu, 14 Sep 2023 20:37:04 +0200 Subject: [PATCH] add inb function and doc --- include/io.h | 21 +++++++++++++++++++++ src/io.s | 15 ++++++++++++--- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/include/io.h b/include/io.h index 8b3ea10..f0fb83c 100644 --- a/include/io.h +++ b/include/io.h @@ -1,6 +1,27 @@ +/** @file io.h + * Fichier d'en-tête pour les entrées sorties. + */ + #ifndef IO_H #define IO_H +/** + * Fonction pour pouvoir envoyer des données à un port. + * + * Elle est définie dans le fichier @c io.s. + * + * @param port le port où envoyer les données + * @param data les données + */ void outb(unsigned short port, unsigned char data); +/** + * Fonction pour pouvoir lire une donnée d'un port. + * + * Elle est définie dans le fichier @c io.s. + * + * @param port le port où envoyer les données + * @return la valeur lue + */ +unsigned char inb(unsigned short port); #endif diff --git a/src/io.s b/src/io.s index 8e7697e..c624a31 100644 --- a/src/io.s +++ b/src/io.s @@ -1,11 +1,20 @@ global outb +global inb ; permet de communiquer avec des ports -; pile : [ esp + 8 ] la valeur à écrire -; [ esp + 4 ] le port -; [ esp ] l'adresse de retour +; pile : [ esp + 8 ] la valeur à écrire +; [ esp + 4 ] le port +; [ esp ] l'adresse de retour outb: mov al, [esp + 8] mov dx, [esp + 4] out dx, al ret + +; permet de récupérer la valeur d'un port +; pile : [ esp + 4 ] le port +; [ esp ] l'adresse de retour +inb: + mov dx, [esp + 4] + in al, dx + ret