Bonjour,
je voudrais connaître le code qui s'exécute lorsqu'on écrit la fonction Write en Pascal, c'est-à-dire le code source écrit par le développeur du langage.
Merci
Bonjour,
je voudrais connaître le code qui s'exécute lorsqu'on écrit la fonction Write en Pascal, c'est-à-dire le code source écrit par le développeur du langage.
Merci
salut
la methode "write" utilise la fonction système 40h interruption 21h
le code est compilé personne n'a les sources mais au lieu d'écrire dans un fichier elle écrit sur le périphérique écran
merci pour la réponse,
connaissez vous un langage ou on a accès au code source
je veux apprendre comment les choses sont faites.
merci
Bonsoir
Free Pascal est un logiciel libre, et donc les sources sont disponibles: https://www.freepascal.org/down/source/sources.var
Par contre pour tout ce qui se rapporte au système (les fonctions de bas niveau) cela risque d'être assez obscure.
Et c'est bien un endroit où j'ai jamais mis les pieds.
Delias
ce code est différent en fonction de l'OS cible...mais dans tous les cas, un debug pas à pas au niveau assembleur donnera tout le détail
le code source doit se trouver dans l'unité System
ça c'est uniquement sous DOS
sous Windows (et sous Delphi), c'est WriteFile vers STD_OUTPUT_HANDLE
oui et non![]()
pour tout ce qui est pc le write ou writefile utilise la meme interuption et fonction matériel (bios)
pour ce qui est de iPhone et autre nouveaux matériel je ne sais pas mais je suppose que pour beaucoup ils ont gardé les mêmes fonctionnalités
l'os n'est qu'une surcouche du bios que se sois du linux,windows,...
d’après toi, il fait quoi le writeFile ou le write sur un pc sous Windows ?
pour moi c'est la même fonction sauf que l'une a été dédié a l'affichage
mais j'ai un souvenir ou il y avait un moyen de détourner la sortie standard écran sous tout autres fichier
PS après vérification 21h est une interruption logiciel et correspond a l’interruption 80h sous linux
effectivement les interruption logiciel diffère selon l'os
alors, on reprend, le BIOS de base utilise l'interruption 10h pour afficher une chaîne de caractère à l'écran.
l'Int 21h est celle du DOS
en effet le noyau Linux utilise l'interruption 80h
mais 21 et 80 sont des interruptions logicielles qui sont donc liées à l'OS.
l'int 10h du BIOS elle, n'est utilisable qu'en mode réel, c'est à dire dans l'état d'un PC à l'allumage, dès que l'on bascule en mode protégé (Windows, Linux, etc...) plus aucune fonction du BIOS n'est disponible.
Linux en mode console écrit directement dans la mémoire vidéo.
Windows (et Linux en mode graphique) utilise de toute façon des fonctions de rendu de police en mode graphique et on est très très loin de la fonction du BIOS.
J'avais fait un article sur le mode protégé d'ailleurs
http://tothpaul.developpez.com/boot/
salut
si tu regarde l’unité System pour D7![]()
tu vois clairement que pour windows il utilise la fonction writeFile
et pour linux la fonction __write
j'ai dans l'idée que c'est deux fonction appelle un fonction défini dans l'os qui déclenche une action matériel, non ?
que l'os utilise des surcouche pour protéger l’accès direct on est d'accord mais au final c'est bien une interruption matériel qui est utilisé
maintenant il est vrai que l'api Windows cache les appels de bas niveaux donc effectivement ce n'est peut être plus l’interruption 21h et la fonction 40h qui est utilisé derriere mais le principe reste toujours le même ... d’ailleurs je me demande comment fonctionne les accélérateur vidéo
Partager