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
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
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
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 )
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
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