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
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
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 !!!!!
Merci pour ta réponse !
Qu'est ce que ca change dans notre code ?y compte vendre que ca en 2004 donc faut pa avoir peur !!!!!
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 ????
++
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)Qu'est ce que ca change dans notre code ?
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
Cela me semble bizarre car un mov EAX,0 ne possede pa le meme code machine en 16,32 ou 64 bitssous Nasm,on indique plus dans le code si c'est du 16, du 32... ou du 64 ????
si tu veux plus d'inf tech, fait une recherche sur le site d'amd, ya tout!
Merci pour le site d'AMD !
C'étais par opposition a Tasm, ou on déclare les segments comme suit :sous Nasm,on indique plus dans le code si c'est du 16, du 32... ou du 64 ????
Sous Nasm, la déclaration de segments semble différente...
Code : Sélectionner tout - Visualiser dans une fenêtre à part data segment para public use16
Mais c'est pas le sujet, je le note résolu...
Merci !++
Bien sur que si !!!sous Nasm,on indique plus dans le code si c'est du 16, du 32... ou du 64 ????
Je crois que ca s'arrete la
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [BITS 16] [BITS 32] [BITS 64]
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.
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 ++
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.
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
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 ??
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
merci pour la doc.. j'm'enterre et j'lis...
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'
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...
Le sujet n'est pas abandonné ! Je débarque :
Blustuff, vraiment plus haut...dsl.Tout cela dépends de l'os, cf registres de contrôles
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...
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager