petite conversion asm -> hexa - ASM - Programmation
Marsh Posté le 17-03-2004 à 20:16:40
chuis pas sûr d'avoir compris, tu veux l'équivalent MASM de cette notation?  Je sais déjà pas ce qu'est le movl ![[:joce] [:joce]](https://forum-images.hardware.fr/images/perso/joce.gif)
Marsh Posté le 17-03-2004 à 20:25:34
Les bouquins Intel non  
 
 
Heu... sinon ce que tu donne c'est déjà de l'asm.
Marsh Posté le 17-03-2004 à 20:28:57
c'est l'ASM GNU je crois non? je sais que Harko déteste cette notation en tout cas  
 
 
bon au pif: 
| Code : 
 | 
Marsh Posté le 17-03-2004 à 20:32:24
| drasche a écrit : c'est l'ASM GNU je crois non? je sais que Harko déteste cette notation en tout cas  
   | 
 
 
Ben c'est la notation AT&T. Perso j'aime pas trop (enfin, c'est plus une question d'habitude).
Marsh Posté le 17-03-2004 à 20:37:27
ah oui voilà, AT&T, faut que je le retienne 
Marsh Posté le 17-03-2004 à 22:01:48
je crois qu'il veux les octets de code x86 qui seront générés par l'assembleur.
Marsh Posté le 17-03-2004 à 22:04:56
je viens de générer un .com à l'arrache avec a86, d'un: 
mov di,0 
 
et ça donne  
BF 00 00 
 
vu qu'on est en mode réel, en mode protégé l'instruction "mov edi,0" doit donner: 
BF 00 00 00 00 
 
par contre un mov edi,0 en mode réel, ça doit donner: 
66 BF 00 00 00 00 
Vu que je crois que c'est 66h l'octet de préfixe pour basculer les opérandes entre le mode 16/32 bits. 
 
en mode protégé une instruction 32bits s'écrit de la même manière qu'une 16bits en mode réel, sauf pour les immédiats/adresses/offsets qui peuvent prendre 4 octets à la place de 2 (32bits vs 16bits forcément)
Marsh Posté le 17-03-2004 à 22:06:49
| bjone a écrit : je crois qu'il veux les octets de code x86 qui seront générés par l'assembleur.  | 
 
ouch, coton ça ![[:joce] [:joce]](https://forum-images.hardware.fr/images/perso/joce.gif) 
 
 
euh je les avais au cours  
 
 
la doc officielle Intel donne ça, faut aller voir sur le topic bibliolink consacré à l'ASM 
Marsh Posté le 17-03-2004 à 22:08:53
si tu veux un assembleur le plus simple du monde: 
 
http://eji.com/a86/ 
 
tu mets tes instructions sont aucunes déclaration de segment ou de modèle mémoire etc, il te donne un .com (genre un super debug)
Marsh Posté le 17-03-2004 à 22:47:58
| bjone a écrit : je viens de générer un .com à l'arrache avec a86, d'un:  | 
 
 
TDC utilise l'instruction movl. 
 
Sinon, http://www.sandpile.org est effectivement une très bonne piste  
 
http://developer.intel.com/design/pentium/manuals/ également. 
 
Sinon, merci pour ton dernier lien 
Marsh Posté le 18-03-2004 à 08:18:22
| bjone a écrit : movl = mov long = move 32bits  | 
 
 
Je savais pas  
 
Je pensais que c'était un mov spécial pour accéder à certains registres spéciaux 
Marsh Posté le 18-03-2004 à 12:27:11
| printf a écrit :   | 
 
non non, c'est cette foutue syntaxe AT&T de merde ![[:benou] [:benou]](https://forum-images.hardware.fr/images/perso/benou.gif) 
 
comme le dit bjone, ça veut dire que tu transfères 32 bits directement (ce qu'il est totalement inutile de spécifier au passage, vu qu'edi est déjà un registre 32 bits ![[:kiki] [:kiki]](https://forum-images.hardware.fr/images/perso/kiki.gif) )
) 
Marsh Posté le 18-03-2004 à 12:29:44
| bjone a écrit :   | 
 
là c'est effectivement indispensable de spécifier la taille, vu que les registres ne sont pas fractionnés comme c'est le cas sur Intel (c'est d0, d1, d2, etc... que ce soit 8, 16 ou 32 bits) 
 
et puis  
  Motorola
 Motorola
Marsh Posté le 18-03-2004 à 15:08:18
| Harkonnen a écrit :   | 
 
 
On m'a dit énormément de bien de la programmation Motorola, en particulier PowerPC (je connais de véritables fans  ).
). 
Qu'est-ce que ça a de si particulier ?
Marsh Posté le 18-03-2004 à 15:34:11
bah ça se vaux c'est qu'une question d'habitude... 
 
seulement, juste que motorolla a fait du 32 bits plus tôt qu'intel 
Marsh Posté le 17-03-2004 à 18:53:03
je n'arrive plus a trouver les regles pour convertir...

il me faudrait l'equivalent de :
"movl $0x0, %edi"
en asm
mon OS vous en sera tres reconnaissant