IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Assembleur Discussion :

Centrino : quel Assembleur ? Opcodes 16-32-64 bits


Sujet :

Assembleur

  1. #1
    Membre du Club Avatar de Arnaudv6
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Points : 63
    Points
    63
    Par défaut Centrino : quel Assembleur ? Opcodes 16-32-64 bits
    Le centrino m'interroge bcp :
    vais-je pouvoir continuer a programmer Asm comme avant ?
    Je crois qu'il utilise les instructions MX ?
    On la programme en 64 bits ? Avec quoi ?
    Dsl, ca fait bcp de questions Bonn' prog

  2. #2
    Membre habitué
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Points : 168
    Points
    168
    Par défaut
    tu cofond un peu je croi
    le centrino c juste une norme qui oblige un pc portable d'avoir un proc intel un chipset intel et équipé du wifi mais c tjrs du 32 bits classiques

    tu confend je pense avec la technologie 64 bits de chez intel qui change de nom tous les 6 mois parce qu'il arrive pas a realisez un proc qui tourne correct

    AMD ont choisi la continuité avec un systeme compatible x86 (avec des rax des mov et tout ...!)et en plus y compte vendre que ca en 2004 donc faut pa avoir peur !!!!!

  3. #3
    Membre du Club Avatar de Arnaudv6
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Points : 63
    Points
    63
    Par défaut
    Merci pour ta réponse !
    y compte vendre que ca en 2004 donc faut pa avoir peur !!!!!
    Qu'est ce que ca change dans notre code ?
    Je suis en train de passer de tasm à Nasm...
    Je crois que de toute manière, sous Nasm,on indique plus dans le code si c'est du 16, du 32... ou du 64 ????
    ++

  4. #4
    Membre habitué
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Points : 168
    Points
    168
    Par défaut
    Qu'est ce que ca change dans notre code ?
    Rien si tu continu a programme en 16 ou 32 bits car le x86 possede tous ces modes ce la depend donc de l'os. si tu utilise xp, c tjrs du 32 bits, si tu utilise linux, tu a le choix entre compilé ton noyeaux en 32 ou 64 bits . si tu choisi le 64 bits, apres tu programme tes appli en 64 bits (pour le cas du language assembleur)
    Si tu code en 64 bits alors la ca change
    les registres 32 bits sont accesible en 64 bits (eax > rax)
    ya plus de registres(rax,rbx,rcx,rdx,rbp,rsp,rbi,rdi,r8,r9;r10,r11,r12,r13,r14,r15)
    et d'autre petits changement ds le genres
    le nbr de registre plus grand permet une diminution de l'acces a la memoire puisque plus de place

    sous Nasm,on indique plus dans le code si c'est du 16, du 32... ou du 64 ????
    Cela me semble bizarre car un mov EAX,0 ne possede pa le meme code machine en 16,32 ou 64 bits

    si tu veux plus d'inf tech, fait une recherche sur le site d'amd, ya tout!

  5. #5
    Membre du Club Avatar de Arnaudv6
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Points : 63
    Points
    63
    Par défaut
    Merci pour le site d'AMD !
    sous Nasm,on indique plus dans le code si c'est du 16, du 32... ou du 64 ????
    C'étais par opposition a Tasm, ou on déclare les segments comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data segment para public use16
    Sous Nasm, la déclaration de segments semble différente...
    Mais c'est pas le sujet, je le note résolu...
    Merci !++

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 96
    Points : 116
    Points
    116
    Par défaut
    sous Nasm,on indique plus dans le code si c'est du 16, du 32... ou du 64 ????
    Bien sur que si !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [BITS 16]
    [BITS 32]
    [BITS 64]
    Je crois que ca s'arrete la
    on ne peut donc pas programmer un processeur optique (256 bits) avec nasm lol
    Responsable du projet SKAN (OS à but didactique)
    Contactez moi pour toutes questions ou remarques sur le projet.

  7. #7
    Membre du Club Avatar de Arnaudv6
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Points : 63
    Points
    63
    Par défaut
    Merci !
    Ca fait plaisir d'etre suivi...
    Nasm va me plaire, je le sens : il est bien plus dans l' "esprit programmation" que Tasm...
    Et je trouve génial qu'il permette de faire des binaires et non des PE avec de simples options...
    bon code ++

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    L'opcode de mov eax, 0 et mov ax, 0 est EXACTEMENT le même. Ce qui change, c'est la présence ou non du prefixe. Le préfixe inverse la taille d'opérande courante. On remarque, qu'un programme prévu pour fonctionner entièrement en 16 bits. (Sans aucun préfixe de taille d'opérande) Fonctionne encore si la taille d'opérande passe à 32. (Tout cela dépends de l'os, cf registres de contrôles)

    Par contre, ce qui serait interessant de savoir, c'est si le même phénomêmne existe. Ce qui parrait difficile.

    Sinon, c'est très bien d'avoir pleins de registres en plus, seulement, il faut que les programmes soient prévus pour les processeurs qui en ont. Pour les langages évolués, c'est très pratique, parce qu'il suffit de recompiler. Cela dit, les compilateurs, ne sont jamais très performants dans l'optimisation, il n'utilisent jamais de manière optimale les registres.

  9. #9
    Membre habitué
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Points : 168
    Points
    168
    Par défaut
    voici des codes machine en vrac
    je suis pas totalement sur de moi pour le code en 64 bits
    mais ci c ca, c pa tre naturel !
    j'vai continuer a cherché
    (pour les '??' g rien trouvé)

    -->16 bits
    Mov AH, 0 #B4 00
    Mov AL, 0 #B0 00
    Mov AX, 0 #B8 00 00
    Mov EAX, 0 #66 B8 00 00 00 00
    Mov RAX, 0 #??

    -->32 bits
    Mov AH, 0 #B4 00
    Mov AL, 0 #B0 00
    Mov AX, 0 #66 B8 00 00
    Mov EAX, 0 #B8 00 00 00 00
    Mov RAX, 0 #??

    -->64 bits
    Mov AH, 0 #??
    Mov AL, 0 #??
    Mov AX, 0 #66 B8 00 00
    Mov EAX, 0 #B8 00 00 00 00
    Mov RAX, 0 #48 B8 00 00 00 00 00 00 00 00

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    Tu as trouvé ou les codes 64 bits ?? Le mov 8bits n'est pas cencé changer. 48, c'est bozzare c'est l'opcode de DEC. Tu es sur que c'est ca ??

  11. #11
    Membre habitué
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Points : 168
    Points
    168
    Par défaut
    pour l'instant ma seul doc vient du site amd (sur les document du type white paper ya qqe gouttes d'info)
    en mode 64 bits ya eu pa mal d'inst de supprimer tel que aaa et autres instructions inutiles
    pour dec g pa verifier mais g vu que les opcodes 48h a 4Fh sont reservé aux prefixes 64 bits

  12. #12
    Nouveau membre du Club
    Inscrit en
    Juin 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 24
    Points : 28
    Points
    28

  13. #13
    Membre habitué
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Points : 168
    Points
    168
    Par défaut
    merci pour la doc.. j'm'enterre et j'lis...

  14. #14
    Membre habitué
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Points : 168
    Points
    168
    Par défaut
    premiere deduction apres lecture : c vraiment la jungle des prefixes !
    a mon avis ca va etre source d'erreur pour les lcompilateur/linker exotiques !!

    sinon j'me suis pas trompé plus haut dans mon code machine
    pour le 8 bit (AH,AL) c pareil que ds les autres modes
    et toujours rien sur la manipulation des registres 64 bits en mode 16 ou 32 bits (mais a mon avis on peut pas puique les prefixes 64 bits ont deja une significations ds les autre modes)

    enfin tou ca pour dire merci a executter

    bon dev'

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    Yep ca doit être ca. C'est plutot astucieux. D'autant que restreindre l'utilisation des registres 64bits qu'au mode d'adressage 64bits, n'ai pas vraiment un problème. Les seuls programmes utilisant le 64 bits auront à faire dans ce mode d'adressage, en plus ca permet d'éviter les incompatibilités. Seulement, si Intel et AMD font chacun leur sauce dans leur coin, c'est pas bon, c'est pas bon...

  16. #16
    Membre du Club Avatar de Arnaudv6
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Points : 63
    Points
    63
    Par défaut
    Le sujet n'est pas abandonné ! Je débarque :
    Tout cela dépends de l'os, cf registres de contrôles
    Blustuff, vraiment plus haut...dsl.
    Pourquoi de l'OS ? Si ces informations étaient contenues dans les PE,
    comment l'ordi si repèrerait-il avec un binaire ?
    Ou alors, on a encore plus interet a compiler pour un OS précis...

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    Eh bien, il y a des headers personnalisés pour Win32. Mais Windows reconnait à un executable, si il doit émuler un dos, ou si il peut l'executer. Mais c'est windows qui va dire, "ton programme marche en 32 bits !". Ensuite avec le Header de ton exe, il pourra dire aussi : "Ton programme marche en 64 bits". Sinon, on compile très souvent pour un os précis, sous unix, on a tendence à donner les sources plutot que les excecutables.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quel type de variable pour 20 bits?
    Par The_72 dans le forum MATLAB
    Réponses: 1
    Dernier message: 23/04/2010, 12h08
  2. [Débutant] Quel assembleur me conseillez-vous ?
    Par saw-next dans le forum x86 32-bits / 64-bits
    Réponses: 7
    Dernier message: 17/11/2009, 10h15
  3. [Débutant] Quel Assembleur utiliser avec mon processeur AMD Athlon 64 ?
    Par cryosore94 dans le forum x86 32-bits / 64-bits
    Réponses: 19
    Dernier message: 11/03/2009, 09h38
  4. [PIC 16F876] Quel Assembleur ?
    Par kaw dans le forum MPLAB
    Réponses: 5
    Dernier message: 04/04/2006, 19h39
  5. Quel assembleur/désassembleur pour PDA Windows 2003 ?
    Par keskinvapa dans le forum Autres architectures
    Réponses: 2
    Dernier message: 06/04/2004, 04h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo