Question

Je travaille sur le portage de uc/OS-II de DOS vers x86 (mode réel).J'ai besoin:

  1. Un compilateur pour générer un assemblage x86 16 bits en mode réel

  2. Un assembleur pour assembler l'assembly généré dans un fichier objet

  3. Un linker pour lier les fichiers d'objet ensemble et sortir un exécutable (les formats binaires, coffre, PE ou ELF bruts sont bien)

  4. Une bibliothèque standard sans faire appel à aucun service DOS (int 21h), dépendent uniquement du service du BIOS.

Je me demande s'il existe une chaîne d'outils qui pourrait le faire.

Était-ce utile?

La solution

Vérifiez DOS gratuit projet.Ils ont outils de développement qui incluent des compilateurs, des assembleurs et des éditeurs de liens.Cependant, vous devrez probablement modifier la bibliothèque standard pour qu'elle utilise les appels du BIOS plutôt que int 21h.

Autres conseils

Des compilateurs 16 bits ?Plusieurs d’entre eux sont mentionnés ici :

Existe-t-il un compilateur C qui cible le 8086 ?

Généralement, ils sont utilisés pour des exercices académiques, donc si vous ciblez un établissement d'enseignement, vous pouvez également trouver de nombreux exemples :

http://www.google.com.sg/search?q=site%3Aedu+C+compiler+8086

Lors d'un précédent emploi, nous avions un projet basé sur uc/OS fonctionnant sur une plate-forme x86 en mode réel.Nous avons utilisé TopSpeed ​​C plutôt que les compilateurs Borland ou Microsoft plus connus, car TopSpeed ​​C était le seul de l'ensemble disponible et viable à l'époque. volatile droite.Dont vous avez grandement besoin lors de la construction de uc/OS.Turbo C et Microsoft C (et je pense que c'est aussi QuickC) ont mal compilé les accès à volatile variables - mettant généralement en cache les valeurs dans les registres et les ruptures similaires.

Cependant, vous auriez du mal à vous procurer TopSpeed ​​C.Et sa syntaxe assembleur est...unique.(Je pense que c'est basé sur Modula-2 ou quelque chose du genre ;cela finit par être très différent de MASM/TASM/nasm avec lequel vous êtes peut-être 100 fois plus familier.)

Découvrez n'importe quel projet de chargeur de démarrage, tel que GRUB.Il devrait être évident qu'ils ont également besoin de tout ce que vous avez mentionné.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top