Compiller un programme assembleur pour windows
Résolu
thyma2
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
thyma2 Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
thyma2 Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Compiller un programme assembleur pour windows
- Programme demarrage windows 10 - Guide
- Clé windows 8 - Guide
- Windows ne démarre pas - Guide
- Montage video windows - Guide
- Windows movie maker - Télécharger - Montage & Édition
3 réponses
'lut,
ça crash pour la simple raison que tu utilises des interruptions BIOS directement, et que là où DOSBOX (émulant DOS, qui n'est pas un "vrai" OS dans le sens où il n'a pas de noyau) ou VirtualBox émulent un BIOS et du matériel indépendant, Windows ne te laissera absolument jamais faire ça avec un simple programme tournant en espace utilisateur.
Dans l'état tu es obligé de faire de l'émulation ou de booter réellement dessus, la manipulation graphique étant toute autre sur Windows.
from human import idiocy
del idiocy
ça crash pour la simple raison que tu utilises des interruptions BIOS directement, et que là où DOSBOX (émulant DOS, qui n'est pas un "vrai" OS dans le sens où il n'a pas de noyau) ou VirtualBox émulent un BIOS et du matériel indépendant, Windows ne te laissera absolument jamais faire ça avec un simple programme tournant en espace utilisateur.
Dans l'état tu es obligé de faire de l'émulation ou de booter réellement dessus, la manipulation graphique étant toute autre sur Windows.
from human import idiocy
del idiocy
EDIT j'y suis enfin arriver, j'ai trouver comme un grand et dans mon extrême générosité je poste la solution pour ceux qui comme moi galères :
bon de base l'objectif était de crée un noyau qui charge un kernel le tout dans un .img qu'on met dans une clef usb ou sur virtual box puis on se la pète devant les copains qui vous prennent pour un gros taré
bon alors le noyau il est ici : http://a.michelizza.free.fr/pmwiki.php?n=TutoOS.Bootloader
et vous pouvez virez tout ce qui est en rapport avec l'affichage de texte parce qu'en vrai ça sert à rien ^^
ensuite le kernel vous le faites vous même hein ^^ (sinon quel intérêt?) mais vous pouvez toujours prendre un scripte en ligne pour tester)
et enfin vous avez vos deux fichiers sources en .asm
ce qu'il faut faire :
bon ban en premier (j’espère que vous savez déjà) vous compilez en .exe le kernel et le noyau :
nasm noyau.asm -f bin -o noyau.exe
nasm kernel.asm -f bin -o kernel.exe
puis TOUT CON MAIS J'AI GALÉRER 3 HEURS: vous crée le .img :
copy noyau.exe/B+kernel.exe/B disk.img /Y
et enfin deux chois :
vous testez sur une vm comme bosh, quému, ou virutalbox
ou alors avec rawrite vous foutez le .img sur votre clef usb préférer pour booter réellement sur votre os
bon de base l'objectif était de crée un noyau qui charge un kernel le tout dans un .img qu'on met dans une clef usb ou sur virtual box puis on se la pète devant les copains qui vous prennent pour un gros taré
bon alors le noyau il est ici : http://a.michelizza.free.fr/pmwiki.php?n=TutoOS.Bootloader
et vous pouvez virez tout ce qui est en rapport avec l'affichage de texte parce qu'en vrai ça sert à rien ^^
ensuite le kernel vous le faites vous même hein ^^ (sinon quel intérêt?) mais vous pouvez toujours prendre un scripte en ligne pour tester)
et enfin vous avez vos deux fichiers sources en .asm
ce qu'il faut faire :
bon ban en premier (j’espère que vous savez déjà) vous compilez en .exe le kernel et le noyau :
nasm noyau.asm -f bin -o noyau.exe
nasm kernel.asm -f bin -o kernel.exe
puis TOUT CON MAIS J'AI GALÉRER 3 HEURS: vous crée le .img :
copy noyau.exe/B+kernel.exe/B disk.img /Y
et enfin deux chois :
vous testez sur une vm comme bosh, quému, ou virutalbox
ou alors avec rawrite vous foutez le .img sur votre clef usb préférer pour booter réellement sur votre os
mais du coup peut tu m'envoyer un tuto qui me donne la syntaxe assembleur autoriser par windows parce que bon si je dois rebooter mon ordie sur ma clef pour lancer mes programmes c'est pas top ^^
j’espère que la syntaxe windows ne complique pas bon au bout de 2 semaines à tous mettre en place j'arrive enfin à m'y retrouver ^^
Il y a sans doute d'autre solutions mais tu vas devoir coder beaucoup toi-même.
mais j'ai un autre problème pourrais tu m'aider stp
enfaite j'ai décider de crée un mini os (pas un vrai genre windows hein juste deux trois programmes) et je me dit que je peut pas le coder en une fois cette os alors pour me faciliter je vais le fragmenter en pleins de fonctions (genre la fonction ligne que j'ai améliorer depuis) et que quelques programmes principaux vont appeler ces fonctions.
mais je n'arrive pas a ouvrir un programme à partir d'un autre
je m'explique
j'aimerai faire ceci:
[code]
ORG 0x7C00
;ceci est mon noyau ici j'aimerai charger un programme du nom de clavier.exe comment je fait ?
times 510 - ($ - $$) db 0
dw 0xAA55
[/code]
comment à partir de mon noyau je lance un autre programme ?
je compile mes programmes comme ça (code batch) :
nasm -o test.o test.asm
nasm test.asm -f bin -o test.exe
copy test.exe disk.img /Y (ça c'est la création du disque pour virtual box mais malheureusement la commande ne marche que si il n'y a qu'un seul exe exactement ce que je ne veut pas)
vraiment je suis débutant en asm ne pas trop me bousculer merci ^^ la preuve je me suis limité au mode graphique 13h parce que j'arrivais pas à lancer ceux au dessus^^