Existe-t-il un moyen d'imprimer des données à l'aide de bios dans c. Je sais que dans l'assemblage, vous pouvez utiliser int 0x10
, mais y a-t-il un équivalent pour C?Affichage de données à l'aide du BIOS dans C
Répondre
Cela dépend si un système d'exploitation est déjà en cours d'exécution ou non.
Si oui, cela dépend du système d'exploitation en cours d'exécution. Mais généralement, si vous utilisez C, un C stdlib devrait être disponible. Utilisez donc printf() et/ou stdout ...
Si aucun système d'exploitation n'est disponible, cela dépend du mode de la CPU.
Si la CPU fonctionne en mode réel, utilisez l'interruption BIOS 10h.
Vous pouvez le faire même en C. La plupart des compilateurs C permettent l'assemblage en ligne.
Pour GCC, par exemple, utilisez le mot-clé __asm.
Si vous êtes en mode protégé 32 bits, vous devez gérer la vidéo manuellement, car les interruptions du BIOS ne sont plus disponibles.
Dans un tel cas, les données d'impression sont en train d'écrire dans la zone de mémoire qui contient le tampon vidéo. Vous devez savoir dans quel mode vidéo vous êtes, de sorte que vous pouvez écrire des données dans le bon format, et quelle est l'adresse mémoire du tampon mémoire.
Dans un tel cas, déclare simplement un pointeur char dans la zone de mémoire et écrit des caractères ...
Pour quel système d'exploitation? –
Voulez-vous dire "afficher des données _utiliser le BIOS en C"? – ninjalj
Lors de l'assemblage d'un système d'exploitation, vous pouvez utiliser 'int 0x10' pour afficher les données à l'aide du BIOS. Y a-t-il un moyen de faire la même chose en C? – None