DEBUTANT

Résolu
tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 - 22 févr. 2006 à 16:09
tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 - 26 févr. 2006 à 14:55
Bonjour,
Je programme C++/C et VB, et j'aimerais étendre mon champ de language à l'assembleur, seul probleme :
Je ne suis pas en age d'apprendre la programmation à l'école (classe de 3°...) ! Pour apprendre le VB le C et le C++, j'ai du beaucoup investir de mon argent dans des bouquin parfois fort couteux, alors j'aimerais savoir si des personnes connaitrait des addresses de site, tuto, ou des references des meilleurs bouquins (meme s'il sont chers, ça peut toujours m'etre utile de savoir au cas où...), ou meme si cela existe, un myen de pouvoir prendre des cours ou des lycees enseignant la programation dès la seconde...

Pouvez vous m'expliquer aussi les differents types de processeurs, les plus repandus, ainsi les plus importants à connaitre le fontcionnement, etc...

MERCI BEAUCOUP ! j'espere avoir été humainement comprehensible, et ne pas etre trop exigeant...

10 réponses

cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
23 févr. 2006 à 00:52
salut,

voila des mots a utiliser dans google:
pour le 64 bits, "Yasm" ( retouche de Nasm ).
pour le 32 bits, "Nasm","masm32","Iczelion","Elicz","intel386"
pour le 16 bits, "Nasm","mbr"

les sources peuvent aussi contenir des informations...

@++
3
cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 3
23 févr. 2006 à 09:01
Bonjour tekila_bandita,

Le langage assembleur est le plus proche de la machine, en fait des microprocesseurs, et par conséquent permet les exécutions les plus rapides ; c'est d'ailleurs le seul langage compris par la machine. En fait du binaire (suite de zéro et de un) condensé en hexadécimal (base seize) pour des questions de place.
Les opérations réalisables par le processeur sont très sommaires, elles consistent à effectuer des lectures de zones de mémoire dans des registres, à écrire dans d'autres endroits, à effectuer des opérations de base (additions, soustractions, multiplications...) ou plus soffistiquées grâce au coprocesseur mathematique. Sont également disponible des tests et des branchements conditionnels, des sauts, des appels de sous programmes (fonctions).
Ces opérations peuvent porter sur un octet (8 bits - de 0 à 255), sur deux octets (un word=16 bits - de 0 à 65535) sur quatre octets (dword=32 bits -de 0 à 4294967295) ou plus pour les opérations 64 bits.
En mode 32 bits, la même opération sera plus rapide que 2 opérations en mode 16 bits.
Le langage assembleur est en fait une transcription en un langage plus compréhensible qu'une suite de un et de zéros ou d'octets.

Exemple:01101010000000000110100000000000001000000100000000000000
ou 6A006800204000
ou push byte 0
push dword 0x00402000
la première instruction empile zéro sur la pile, la deuxième l'adresse 32 bits 00402000

En pratique tu n'indiqueras pas l'adresse mais la référence à une étiquette.

Selon l'assembleur que tu utiliseras le fichier assembleur "la source" seras plus ou moins compact surtout avec l'utilisation de macros. Il est même possible d'avoir une sorte de langage structuré - au détriment parfois du code compilé (l'exécutable).

La réalisation se schématise en plusieurs étapes.
Ecriture du code (en général fichier texte)
Compilation par Yasm, Nasm, Masm...(attention à la syntaxe de chacun des assembleurs) pour avoir un fichier objet.
Edition de liens (rassemblement des différents fichiers objects, bibliothèques, ressources) et création de l'en tête de fichier qui fera que le programme tournera sous Windows, Linux...
3
cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 3
23 févr. 2006 à 13:51
Je pense que pour commencer à programmer en assembleur tu peux commencer par le 32 bits qui est le système le plus répandu sur les différentes platte formes.


Le 16 bits, bien que très présent sur les tutoriels que tu pourras trouver est devenu obsolète depuis le 386 et windows 95. A ma connaissance, les systèmes d'exploitation fonctionnent en 32 bits et la majorité des programmes. L'arrivée des processeurs 64 bits nécessite encore que les systèmes d'exploitations suivent afin que les programmes 64 bits fonctionnent au maximum de leurs possibilités.


Quant au 16 bits, je pense que sa place est maintenant au musée - quoique les enseignants sont parfois conservateurs dans leurs cours !!!

De plus l'adressage mémoire est sans doute plus simple en 32 bits

Je pense que tu découvrira de nombreuses sources sur ce site. Elles te permettront de te familiariser progressivement avec les différentes instructions langage machine et avec les différents assembleurs.

Bonne continuation

PS Personnellement j'ai commencé avec Nasm et il me convient.
3
tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 33
22 févr. 2006 à 17:03
PS : Je sais que les manieres de programmer sont différentes en assembleurs selon si on utilise un processeur 32bits, 64, ou autres, mais dans ce cas j'aimerais que l'on me donne des references surtout pour le 64bits et ensuite le 32bits car le 32bits va bientot lui laisser sa place...
Aussi, j'aimerais savoir qu'est-ce que ti89, x86, etc...???

re-MERCI BEAUCOUP !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
23 févr. 2006 à 09:29
re,




tu peux aller sur les sites des constructeurs aussi (amd, intel,... ), ils documentent en général très bien leur materiel.

@++
0
tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 33
23 févr. 2006 à 13:16
Alors en faite, la seul différence entre la programmation 32bits de la 64 (et 16 de la 64 et la 32...) et qu'il faudra passer par un chemin un peu plus abracadabrantesque (lol) pour arriver au meme calcul, instruction...?

En tout cas, merci, tu en as dis beaucoup et tu as été très clair!

Seulement, quel est la différence entre les x86 et les autres? Lesquels sont les plus utilisés? Peus-tu me donner des exemples de chaque...?(Intel, Amd, etc...)

Mais, au final, que dois-je apprendre, assembleur x86, assembleur ti89, etc...? Dois-je plutot apprendre 64bits et m'orienter vers les autres, 32bits et me réorienter, ou 16bits (et me réorienter aussi...)??

Voila, je crois que j'ai demander le plus important...
Parce que en faite, le plus important est que j'apprenne cette notion de x86 et tout, car avant je n'en avais jamais entendu parlé...Tandis que le stoquage j'en avais déja abordé les grands principe en C, C++, mais avec la memoire sequentielle...

MERCI !
0
7atem Messages postés 5 Date d'inscription dimanche 12 février 2006 Statut Membre Dernière intervention 8 mars 2006
23 févr. 2006 à 17:15
FORZA ROMA EST
forza roma EST
0
tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 33
24 févr. 2006 à 12:46
Au faite, si quelqu'un vient encore lire ce post, comment et où avez-vous appris l'asm??
Si c'est au bahu, en quelle classe, avec quel orientation, et avec quel "diplome"??? Et où puis-je trouver une bonne école proche de la haute-savoie (Rhone-Alpes)..?
MERCI BEAUCOUP !
je suis désolé pour ce bombardement de question, mais je suis en pleine orientation alors voila....
0
cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 3
24 févr. 2006 à 14:06
Bonjour tekila_bandita,

Personnellement j'ai appris l'asm en école d'ingénieur de chimie il y a quelques décennies de celà. A l'époque c'était le début du 16 bits. Si je me souviens bien c'était avec un 6809 de Motorola. Dans la réalité c'était du langage machine pur et dur et il fallait calculer les sauts à la main - et saisir les opcodes. J'ai poursuivi avec le langage du 6502 (ou 6510 ?) du Commodore 64, ce qui permettait d'effectuer des taches 1000 fois plus rapidement qu'avec le basic. A cette occasion je m'étais fait (en basic) un programme de transcription des mnémoniques en code décimal que j'implantais avec des poke.

Je suis revenu à l'assembleur que très récemment et j'ai découvert le monde des PCs avec les segments et offsets - que je m'empresse d'oublier depuis que je suis passé au 32 bits. En fait je suis quasiment passé du 8 bits au 32 bits.

Pour l'assembleur je me suis quasiment formé tout seul via les tutoriels que tu pourra trouver sur le net. Par exemple celui de opecheux.free.fr/
C'est essentiellement du 16 bits mais il est en français. Après il te faut disposer des instructions des microprocesseurs, connaitre leur syntaxe et ce qu'ils font, tu auras également besoin d'un assembleur. Par exemple Nasm.

Pour revenir à une école de formation, tu auras peut-être des cours d'asm dans une école d'informatique mais je pense que ce ne sera pas le langage le plus usité.


En asm il faut beaucoup d'instructions pour effectuer peu de choses. L'asm est adapté pour faire très rapidement (du point de vue temps de calcul) des choses simples. Pour des taches complexes un langage plus structuré est préféré.

Bonne chance pour la suite
0
tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 33
26 févr. 2006 à 14:55
Merci beaucoup,c'est très sympa !
Mais oui, jesavais que l'asm est utile dans de petite tachegrace à sa rapidité, mais en revanche, pour ce qui est des plus gros programmes, il n'est pas adapré dans la mesre ou il faudra ecrire des centaines de lignes, etc...
Mais si j'aimerais apprendre l'asm, c'est parce que j'aimerais me lancer dans la programmation systeme, et reussir a faire mon mini OS avec de l'asm et du C...
Pour l'instant j'en suis très loin, mais je fais déja assez bien du C et du C++...

Mais en tout cas, merci beacoup !

et si jamais certaines autres personnes peuvent me faire part de leur experience, etc, elles sont toujours les bienvenues !
0