Hier (http://www.lowlevel.eu/wiki/Textausgabe) ist beim Cursor-Verschieben-Beispiel eine Funktion "outb" angegeben, die ich 1. nicht verstehe und die 2. nicht vorhanden ist...
Woher bekomme ich die?
mfg!
Woher bekomme ich die?

mfg!

09. November 2026, 18:31


.#include<stdint.h>
#include<drv/io/ioport.h>
/* writes a byte into an I/O-Port */
void outb(uint16_t port, uint8_t data)
{
asm volatile ("outb %0, %1" : : "a" (data), "Nd" (port));
}
/* reads a Byte from an I/O-Port */
uint8_t inb(uint16_t port){
uint8_t result;
asm ("inb %1, %0" : "=a" (result) : "Nd" (port));
return result;
}

#ifndef STDINT_H
#define STDINT_H
typedef unsigned long long uint64_t;
typedef unsigned int uint32_t;
typedef unsigned short uint16_t;
typedef unsigned char uint8_t;
typedef signed long long int64_t;
typedef signed int int32_t;
typedef signed short int16_t;
typedef signed char int8_t;
// size
typedef unsigned int size_t;
// Signed pointer-sized integer
typedef long intptr_t;
// Unsigned pointer-sized integer
typedef unsigned long uintptr_t;
#endif



push ARG1
push ARG2
call outb
add esp, 8vs.mov al, ARG1
outb ARG2, alalso "static inline" hat bei mir auch in C-Dateien funktioniert.Aber das ist dann keine C-Datei, die per #include in eine andere C-Datei eingebunden wird, oder?
Ich schreibe grundsätzlich keinen Code in Header - oder gibt es Gründe dafür?Ein gutes Beispiel für einen Grund Inline-Funktionen in Header zu tun, sind inb/outb-Funktionen: Mehrere Übersetzungseinheiten (z.B. Timerfunktionen, Tastaturtreiber, PIC, CMOS, ...) können diese Funktionen verwenden und um Code-Duplikation zu vermeiden wird die Funktion in dem gemeinsam genutzten Header definiert.
Ist es nicht. Gibt es sonst noch gute Gründe, Code in Headern zu haben (also abgesehen von "static inline")?also "static inline" hat bei mir auch in C-Dateien funktioniert.Aber das ist dann keine C-Datei, die per #include in eine andere C-Datei eingebunden wird, oder?
Ist es nicht. Gibt es sonst noch gute Gründe, Code in Headern zu haben (also abgesehen von "static inline")?Mir fallen auch keine anderen Sachen mehr ein, außer die von MNemo genannten.