petite conversion asm -> hexa

petite conversion asm -> hexa - ASM - Programmation

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 :jap:

Reply

Marsh Posté le 17-03-2004 à 18:53:03   

Reply

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]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

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.


Message édité par printf le 17-03-2004 à 20:26:08

---------------
Un matin je me lèverai et il fera beau.
Reply

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 :D
 
bon au pif:

Code :
  1. MOV EDI, 0


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

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 :D
 
bon au pif:

Code :
  1. MOV EDI, 0




 
Ben c'est la notation AT&T. Perso j'aime pas trop (enfin, c'est plus une question d'habitude).


---------------
Un matin je me lèverai et il fera beau.
Reply

Marsh Posté le 17-03-2004 à 20:37:27    

ah oui voilà, AT&T, faut que je le retienne :/


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

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.

Reply

Marsh Posté le 17-03-2004 à 22:03:09    

Reply

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)


Message édité par bjone le 18-03-2004 à 00:25:36
Reply

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]
 
euh je les avais au cours :??:
 
la doc officielle Intel donne ça, faut aller voir sur le topic bibliolink consacré à l'ASM :o


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 17-03-2004 à 22:06:49   

Reply

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)

Reply

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:
mov di,0
 
et ça donne  
BF 00 00
 
vu qu'on est en mode réel, en mode protégé instruction , le 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)


 
TDC utilise l'instruction movl.
 
Sinon, http://www.sandpile.org est effectivement une très bonne piste :jap:
http://developer.intel.com/design/pentium/manuals/ également.
 
Sinon, merci pour ton dernier lien :hello:


Message édité par printf le 17-03-2004 à 22:48:27

---------------
Un matin je me lèverai et il fera beau.
Reply

Marsh Posté le 18-03-2004 à 00:23:55    

movl = mov long = move 32bits

Reply

Marsh Posté le 18-03-2004 à 08:18:22    

bjone a écrit :

movl = mov long = move 32bits


 
Je savais pas :jap:
Je pensais que c'était un mov spécial pour accéder à certains registres spéciaux ;)


---------------
Un matin je me lèverai et il fera beau.
Reply

Marsh Posté le 18-03-2004 à 11:07:23    

c'est la synthaxe at&té :D
 
chez motorolla ça aurait move.l

Reply

Marsh Posté le 18-03-2004 à 12:27:11    

printf a écrit :


 
Je savais pas :jap:
Je pensais que c'était un mov spécial pour accéder à certains registres spéciaux ;)


non non, c'est cette foutue syntaxe AT&T de merde [:benou]
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])


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 18-03-2004 à 12:29:44    

bjone a écrit :


chez motorolla ça aurait move.l


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 :love: :love: Motorola


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 18-03-2004 à 15:08:18    

Harkonnen 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 :love: :love: Motorola


 
On m'a dit énormément de bien de la programmation Motorola, en particulier PowerPC (je connais de véritables fans :D).
Qu'est-ce que ça a de si particulier ?


---------------
Un matin je me lèverai et il fera beau.
Reply

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 :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed