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
|
||||
#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
|
||||
|
|
15
src/io.s
15
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
|
||||
|
|
Loading…
Reference in a new issue