Les registres 64 bits

Pour discuter de l'assembleur
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Les registres 64 bits

Message par Ollivier »

Après une petite lecture sur MSDN,

j'ai pu trouver un récap des registres CPU 64 bits pour les futurs champions du Long Mode (V.O. de l'article) !

L'accumulateur (le plus cool des registres) nommé AX en 16 bits, puis EAX en 32 bits, s'appelle désormais soit RAX, soit R0

Je n'ai pas l'ordre exact... Eh oui, sous XP HE, c'est en Legacy Mode... Les chanceux sont sous Vista ou XP Pro sous µsoft et tous les OS sous Linux. Si quelqu'un pouvait compléter cette liste exhaustive de manière préciser (savoir si RBX c'est R1 ou R3, etc...)

Woilà!
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

De mémoire :

- EAX --> RAX,
- EBX --> RBX,
- ECX --> RCX,
- EDX --> RDX,
- ESP --> RSP,
- EBP --> RBP,
- ESI --> RSI,
- EDI --> RDI,
- EIP --> RIP.

Apres tu as les registres numérotés (R8, R9 etc) et la, tout dépend de ce que tu comptes faire des tes registres, tu as dans ce PDF la convention d'appel et les registres à utiliser.
"Qui baise trop bouffe un poil." P. Desproges
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

@KarlKox

Salut, merci pour le lien.

Pour les registres, le petit souci c'est ma méconnaissance de l'ordre des registres généraux (RAX, RBX, RCX, RDX, RSI, RDI, RSP et RBP). Ces derniers sont remplacés par Rn (n entre 0 et 7).

J'ai fait un sujet sur le désassemblage dynamique. Si quelqu'un qui a Vista peut tester ce code avec une instruction au pif pour déduire cet ordre, s'il pouvait me poster ces 8 registres dans l'ordre machine (de R0 à R7).

Ollivier
tonton
Messages : 315
Inscription : mar. 26/avr./2005 15:19

Message par tonton »

Ou t' as vu qu ils étaient remplacé par R0-R7?

comme le dit karlkox
leur noms sont:
- EAX --> RAX
- EBX --> RBX
- ECX --> RCX
- EDX --> RDX
- ESP --> RSP
- EBP --> RBP
- ESI --> RSI
- EDI --> RDI

bah non pas de sauf

EIP --- RIP.


cela pour savoir dans quel registre on travail pour des longeurs inferieur..

si le compilateur accepte les noms R0.... ,il sont aussi dans cet ordre.

imagine si tu l' apelle r3 et qu' ensuite tu dois travailler sur 32 bits, soit RDX.. c' est deja assez tordu comme ca!
Anonyme

Message par Anonyme »

Haaa Tonton n'est pas mort !!! :D
je me colle sérieusement à l'asm , donc j'espère que tu es dans le secteur :D
tonton
Messages : 315
Inscription : mar. 26/avr./2005 15:19

Message par tonton »

J' ai toujours été dans le secteur :D
je visite presque tous les jours.
mais comme je programme plus , je ferme ma gueulle :roll:
si je comprend tes questions , je me fairai un plaisir d' y repondre..
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

Ou t' as vu qu ils étaient remplacé par R0-R7?
J'ai vu ça dans les liens que j'ai mis là-haut, en haut de la page.

Tiens! Je te le remets ici : «ICI».

(C'est dans le tableau bleu, l'ascenseur de défilement vertical à environ 55%, c'est incopiable...)

Chez µsoft, ils ont été capable de dire que R0 c'était RAX. Bon, c'est peut-être pour ça que Vista a planté dans tous les sens, qu'en sais-je...

Mais, justement, moi, ça m'intrigue (je tourne en 32 bits mais ça risque bien de changer tôt ou tard). Donc je voulais savoir si les fabricants de CPU, ils ont pris la même logique qu'à l'accoutumée, à savoir comme l'ordre d'explosion des moteurs 4 cylindres de voiture : 1-3-4-2. Ce qui donne, sur les bons vieux PC de la taille d'un rameur et aussi bruyant qu'une climatisation, l'ordre machine suivant:
AX, CX, DX, BX

Ce qui donnerait sur un 64 bits:
R0 = RAX
R1 = RCX
R2 = RDX
R3 = RBX

Ou bien s'il se sont dits "Bon, on va changer : un CPU c'est pas un moteur de bagnole!". Et dans ce cas-là, on retrouve:
R0 = RAX
R1 = RBX
R2 = RCX
R3 = RDX

Woilà Tonton! Et pis content de te causer aussi!

Ollivier
tonton
Messages : 315
Inscription : mar. 26/avr./2005 15:19

Message par tonton »

Justement par obligation de compatibitée le registre principaux
ne changent pas trop
et sont toujours utilisable en 32 ,16 ,et 8 bits


les 8 autres R8 a R15 sont seulement 64 bits

mais! bon on peut tres bien les nommer comme on veux
perso mon desasembleur les inscrit comme suit...


EAX --- D2R2
EBX --- 6PO
ECX --> K2000
EDX --> T1000
ESP --> Nicole Croisille
EBP --> Sarkozy
ESI --> ANPE
EDI --> ASEDIC
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

Tonton a écrit :Justement par obligation de compatibitée le registre principaux
ne changent pas trop
Bon, ok je prends note. ça doit sûrement rester dans l'ordre un peu tordu ACDB...

T'aurais pas le source de ton désassembleur, je crois qu'il y a un pépin...
Anonyme

Message par Anonyme »

on desasembleur les inscrit comme suit...
Hé ouais , tonton , partage ton savoir , j'arrive à lire les instructions machine
d'un ELF , mais les "legacy prefix" m'échappe un peu...
tonton
Messages : 315
Inscription : mar. 26/avr./2005 15:19

Message par tonton »

une doc recente pour se faire la main.
j ai regardé, ca explique tres bien la base

http://neitsa.developpez.com/tutoriel/a ... odageI.pdf
Anonyme

Message par Anonyme »

Merci , j'ai les 2 parties ^^

Vu ton niveau , tu serais capable de faire un compilateur ?
tonton
Messages : 315
Inscription : mar. 26/avr./2005 15:19

Message par tonton »

Drole de question mon caporal!!
j ai fait un desassembleur pour Atari 520 y a 20 ans.
c'est un travail de "traduction" assez long
un compilteur c'est l'inverse.
donc je répond oui ou non car je n' ai plus la foi.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

tonton a écrit :Drole de question mon caporal!!
j ai fait un desassembleur pour Atari 520 y a 20 ans..
dis moi , tu bossais pas dans l'arrière boutique de chez Infomanie
(rue de Rivoli) par hasard ?
tonton
Messages : 315
Inscription : mar. 26/avr./2005 15:19

Message par tonton »

heu!! nonnon!!! j ai jamais bossé dans l informatique

vous allez etre tres fort en ASM avec toutes ces question!!! :lol:
Répondre