2016-06-03 4 views
0

Je fais mon propre langage de programmation, et comment puis-je imprimer des caractères à l'écran? Lorsque j'essaie d'imprimer en utilisant la mémoire vidéo (0xB8000) programme se bloque ...Comment sont faites les fonctions d'impression?

+0

Écrire directement dans la mémoire vidéo est ce qui se faisait autrefois, avant que les systèmes d'exploitation en mode protégé ne deviennent communs. Si vous voulez vraiment essayer des choses comme ça, vous pouvez utiliser 'dosemu' sous Linux. Peut-être 'VirtualBox' avec une version gratuite de' DOS' installée .. Mais si vous voulez des réponses ici, vous feriez mieux de dire quel système d'exploitation vous prévoyez de lancer – infixed

+0

En fait, si vous travailliez vraiment sur un PC nu. La façon «officielle» d'imprimer sur l'écran en mode bare-metal, pré-OS, serait d'utiliser les appels BIOS via INT 10 H. https://en.wikipedia.org/wiki/INT_10H Pas exactement la façon la plus amusante faire des choses – infixed

Répondre

1

Erm, non, ne le faites pas. C'est ainsi qu'un système d'exploitation peut imprimer des choses à l'écran, mais je doute qu'il vous permettrait de faire la même chose sans une sorte de violation de segmentation. Si vous voulez simplement imprimer du texte à l'écran et que vous utilisez un système UNIX, utilisez l'appel système write [1] ou ouvrez simplement le fichier de sortie standard (stdout, en supposant que votre langue vous le permette) pour ouvrir les fichiers) et écrire là.

[1]: Ceci est la signature pour écrire: ssize_t write(int fd, const void *buf, size_t nbytes);. Pour en savoir plus,