add inb function and doc
This commit is contained in:
parent
0f77e1a450
commit
84c5da93a7
2 changed files with 33 additions and 3 deletions
21
include/io.h
21
include/io.h
|
@ -1,6 +1,27 @@
|
||||||
|
/** @file io.h
|
||||||
|
* Fichier d'en-tête pour les entrées sorties.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef IO_H
|
#ifndef IO_H
|
||||||
#define 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);
|
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
|
#endif
|
||||||
|
|
9
src/io.s
9
src/io.s
|
@ -1,4 +1,5 @@
|
||||||
global outb
|
global outb
|
||||||
|
global inb
|
||||||
|
|
||||||
; permet de communiquer avec des ports
|
; permet de communiquer avec des ports
|
||||||
; pile : [ esp + 8 ] la valeur à écrire
|
; pile : [ esp + 8 ] la valeur à écrire
|
||||||
|
@ -9,3 +10,11 @@ outb:
|
||||||
mov dx, [esp + 4]
|
mov dx, [esp + 4]
|
||||||
out dx, al
|
out dx, al
|
||||||
ret
|
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
|
||||||
|
|
Loading…
Reference in a new issue