Accueil > Forum > > > > Secteur de boot : comment ordonner des commandes ???
Secteur de boot : comment ordonner des commandes ???
jeudi 2 septembre 2004 à 22:37:15 |
Secteur de boot : comment ordonner des commandes ???

Foub12
|
Bonjour, j'ai une question qui me turlupine depuis un petit moment et j'aimerais bien connaître la réponse... Le secteur de boot (d'une disquette par exemple) peut-etre contenu dans un tableau de 512 octets donc déclarés comme suit : « unsigned char Buffer[512] ». Mais là, où je comprends pas, c'est comment dans un tableau de caractères, on peut entrer des instructions qu'interprètera le processeur ???? Pour faire afficher un 'A' avec l'assembleur, on écrirait : « mov ah, 0eh mov al, 41h int 10h » Je vais pas écrire lol : « Buffer[0] = asm { mov ah, 0eh; }; Buffer[1] = asm { mov al, 41h; }; Buffer[2] = asm { int 10h }; » Comment cela fonctionne ? Expliquez-moi ? Comment s'y prendrai-ton pour faire écrire un secteur de boot qui fasse afficher juste un 'A'... Merci pour votre aide. Fabien
|
|
jeudi 2 septembre 2004 à 23:04:06 |
Re : Secteur de boot : comment ordonner des commandes ???

ymca2003
|
le code assembleur doit être transformé en binaire (suite d'octet) que le processeur va décoder et exécuter. le secteur de boot contient 512 octets qui peuvent effectivement être représentés dans un tableau de caractères (car 1 char = 1 octet) mais son contenu ne sera pas humainement lisible
|
|
jeudi 2 septembre 2004 à 23:13:59 |
Re : Secteur de boot : comment ordonner des commandes ???

BruNews
|
unsigned char Buffer[512]; __asm { mov edx, offset Buffer mov byte ptr[edx], 0Eh mov byte ptr[edx+1], 41h ; etc... }
A toi de mettre les bonnes valeurs dans les octets.
ciao... BruNews, Admin CS, MVP VC++
|
|
jeudi 2 septembre 2004 à 23:27:40 |
Re : Secteur de boot : comment ordonner des commandes ???

Foub12
|
Re,
je comprends pas BruNews...
Ton code : « unsigned char Buffer[512]; __asm { mov edx, offset Buffer mov byte ptr[edx], 0Eh mov byte ptr[edx+1], 41h ; etc... } » reviens à écrire : «
unsigned char Buffer[512]; Buffer[0] = 0x0E; Buffer[1] = 0x41; »
Mais explique moi, où tu lui dis qu'il faut qu'il mette 0Eh dans ah, 41h dans Al et qu'est-ce que tu écris comme caractère pour lui ordonner d'exécuter : int 10h ???????? Là, tu n'as fait que mettre des valeurs dans le tableau...
En tout cas, merci pour votre aide... Fabien
|
|
jeudi 2 septembre 2004 à 23:28:39 |
Re : Secteur de boot : comment ordonner des commandes ???

djl
|
BruNews > est-ce que on pourrait faire une fonction en asm pur et copier dans le buffer à partir de l'adresse de la fonction,ca marcherais comme ca ?
|
|
jeudi 2 septembre 2004 à 23:45:27 |
Re : Secteur de boot : comment ordonner des commandes ???

BruNews
|
djl> tout ce qui sera dans le bloc __asm {
} sera en asm, pas besoin que soit ailleurs, ou alors je ne saisis pas le prob.
Foub12> je ne fais effectivement que mettre des valeurs aux octets, je pensais que c'etait ce que tu voulais. La zone de boot est lue depuis une interruption bios qui donnera la main au systeme si le boot est valide. A toi de mettre une zone boot correcte.
ciao... BruNews, Admin CS, MVP VC++
|
|
jeudi 2 septembre 2004 à 23:52:10 |
Re : Secteur de boot : comment ordonner des commandes ???

Foub12
|
donc si je comprends bien, c le système qui tout seul, saura qu'il faut qu'ils mettent ces valeurs dans le bon registre et et qui de lui même fera appel aux interruptions...
????
|
|
jeudi 2 septembre 2004 à 23:57:32 |
Re : Secteur de boot : comment ordonner des commandes ???

BruNews
|
va voir exemples de sector boot sur asmfr, tu verras de quoi il retourne. Si tu veux regarder ce qu'il y a dans la zone boot d'un disque, tu prends mon prog (toujours sur asmfr) qui fait des 'ISO' et tu en fais un depuis un CD bootable par exemple. Te suffira d'afficher ensuite les octets du iso, ce n'est rien d'autre que la zone boot.
ciao... BruNews, Admin CS, MVP VC++
|
|
vendredi 3 septembre 2004 à 02:23:39 |
Re : Secteur de boot : comment ordonner des commandes ???

Foub12
|
soit le code suivant :
« unsigned char Buffer[512];
void test() { //affiche un A asm { mov ah, 0eh; mov al, 41h; int 10h; } } »
Comment puis-je écrire en C pour que mon Buffer contiennent les instructions machines de ma fonction test ??? Naturellement, si j'écris Buffer = test, mon code refuse de compiler...
J'aimerais en fait que Buffer égale : Buffer[0] = b4 Buffer[1] = 0e Buffer[2] = b0 Buffer[3] = 41 Buffer[4] = cd
Vous voyez ce que je veux dire ???
Merci pour votre aide.
Fabien
|
|
vendredi 3 septembre 2004 à 03:37:20 |
Re : Secteur de boot : comment ordonner des commandes ???

aardman
|
Salut, memcpy(Buffer, test, 5); // non ?
|
|
Cette discussion est classée dans : buffer, mov, asm, secteur, boot
Répondre à ce message
Sujets en rapport avec ce message
PB avec de l'ASM dans VC++ 6 .... [ par Foub12 ]
Bonjour...Je programme sous VC++ 6 et j'ai trouvé sur Internet, la fonction suivante mais elle ne marche pas... Il compile parfaitement mais lors de l
ASM et C++ [ par sebastienbro ]
Bonjour, j'aimerais savoir ce qui ne vas pas dans le code suivant. J'ai une erreur "error C2400: inline assembler syntax error in 'opcode'; found 'con
Problème ac du inline asm [ par oceax ]
Bonjour,je suis débutant en c++ et n'y connais pas encore énormément gd chose...Sur mon dernier programme (un keygen pr crack me que j'ai créé par mes
Code ASM dans projet CPP [ par FearBlue ]
Slt a tous !!!$Je dev une appli en Cpp et je desire inclure de L'asm dedansJe compile avec gccVoici ce que je fais et ca fait grosse erreur :(:(:(:(
VC++ fait chier [ par GoldenEye ]
Qui peut me dire comment on place le curseur où on veut et ce sans Borland ( conio.h et gotoxy aux chiottes donc ) sous DOS et avec VC++ 6.0 ( ça fait
asm sous Dev-C++ [ par bolbtb ]
Bonjour,J'ai trouvé çà sur cppfrance (à propos lire/écrire sur le port parallèle):ASM { mov dx,adr }sous Dev-Cpp je l'ai transformé en asm("mo
[Asm][Devc++] [ par Gonath ]
Bon voilà, je programme sur devc++ depuis peu. Je voudrais y insérer des codes en assembleur vu que je connais l'assembleur. Mais le prob, c qu'il n'a
C++ et asm [ par Chouchou182 ]
BonjourVoilà un extrait : __asm{ mov ah, 00h mov al, 13h int 10h }Aucun bug a la compilationAcess violation
[EXPERTS]optimisation du c/asm [ par MrdJack ]
Bonsoir, je suis en train de me renseigner sur le c et l'asm niveau vitesse d'execution. en detail je me demande comment créer un code en c pour que s
Asm ou SM [ par Joky ]
Et oui on voit pas trop la différence entre ces 2 choses lol :) Donc je suis entrain de lire un Tuto sur l'asm avec des ptits exemples n'ayant pas de
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|