Débuter en assembleur

cs_mat77400 Messages postés 34 Date d'inscription vendredi 16 juillet 2010 Statut Membre Dernière intervention 4 septembre 2010 - 22 juil. 2010 à 13:59
cs_mat77400 Messages postés 34 Date d'inscription vendredi 16 juillet 2010 Statut Membre Dernière intervention 4 septembre 2010 - 3 août 2010 à 18:43
Bonjour, cela fait longtemps que je souhaite apprendre l'assembleur mais le peu de cours que j'ai vu jusqu'à présent sont fait pour les gens ayant déjà quelques connaissances.
Or je n'ai jamais pratiqué l'assembleur; les seuls langages que j'ai pratiqué sont : PHP, CSS, (X)HTML, unpeu de JavaScript, les baes en C, un tout petit peu de C++.
Donc je souhaiterais apprendre l'assembleur mips; mais je ne sais pas comment m'y prendre;
pour commencer je souhaiterais que l'on m'explique si ce code se compile, si oui avec quel(s) logiciel(s)?Et si possible des liens.
De plus afin que j'essaye de comprendre un code avec ce langage, il serait gentil de me faire un HelloWorld juste pour que j'ai un exemple concret sur lequel m'appuyer lorsque je commencerais à apprendre.
Merci d'avance.

41 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
25 juil. 2010 à 21:33
salut,


Assembleur MIPS

@++
0
cs_mat77400 Messages postés 34 Date d'inscription vendredi 16 juillet 2010 Statut Membre Dernière intervention 4 septembre 2010
26 juil. 2010 à 00:08
Comme accueil pour un débutant j'ai vu mieux... Si je poste ici il faut bien se douter que c'est parce que je n'ai pas trouvé mon bonheur en cherchant, les seules choses que j'ai trouvé sont trop complexes; sinon à part ça j'ai trouvé un PDF sur ce site qui est très intéressant; donc il va me servir à apprendre les bases mais il n'est pas pour MIPS donc je suis toujours à la recherche d'un tutoriel pour assembleur MIPS.
Merci d'avance aux personnes qui ne me mettront pas de lien du même genre que patalo.
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
27 juil. 2010 à 11:55
re,


désolé, je ne suis pas spécialiste du MIPS.

As-tu suivi les liens, certains paraissent interessant pourtant.


@++
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
27 juil. 2010 à 11:57
0

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

Posez votre question
cs_mat77400 Messages postés 34 Date d'inscription vendredi 16 juillet 2010 Statut Membre Dernière intervention 4 septembre 2010
27 juil. 2010 à 14:14
Disons que je ne comprend pas les helloworld que je trouve, vu que tu ne t'y connais pas non plus en MIPS.
Il est vrai que certains paraissent bien mais je ne suis qu'un gros débutant en assembleur, j'en suis juste à connaitre certaines choses tel que le fonctionnement des processeurs avec les registres, aussi que EAX sert à additionner de cette manière :
MOV EAX, 12
ADD EAX, 5

Sinon CX (je crois) sert pour les boucles, jne : sauts conditionnels et quelques autres petites choses.
C'est pour ça que par exemple le 1er lien dans google en tapant "apprendre assembleur mips" est bien mais pour les gens avec plus de connaissance.
J'aurais une question : est-ce que tout ce qui est les registres tel que EAX, CX, BEX, les FLAGS ça change en MIPS?
Ou il n'y a que certaines choses qui changent; puisque d'après le cour que j'ai suivi les processeur en progressant gardent toujours les mêmes "choses"(je ne trouve pas le mot approprié), donc si par exemple j'apprends l'assembleur pour Win32 est ce que je devrais recommencer à zéro avec de nouvelles choses pour le MIPS où bien est ce que le fait d'apprendre l'ASM pour Win32 m'aura aidé?
Merci d'avance.
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
27 juil. 2010 à 18:41
re,


Le fait de connaître un autre assembleur aide certainement car il y avait plusieurs choses que je comprenais a peu près sur les liens précedents.

Si vraiment tu débutes, je pense que le mieux est de trouver la doc du processeur et d'essayer de comprendre au mieux les petits programmes glanés à droite à gauche.

Bien souvent, ils sont commentés en plus. Maintenant, même si des points communs existent entre les différents processeurs, le language est différent pour ce que j'en ai vu.

De plus, les exemple où il y a des syscalls sont pour linux. C'est le moyen d'appeler les fonctions du système d'exploitation. Ca doit être une macro mais en mips, je ne sais pas comment linux gère les appels système.

@++
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
27 juil. 2010 à 18:54
re,

Déjà, tu as beaucoup plus de registres que sur un processeur 80x86. C'est une architecture RISC et non CISC.

ce truc à l'air pas mal

@++
0
cs_mat77400 Messages postés 34 Date d'inscription vendredi 16 juillet 2010 Statut Membre Dernière intervention 4 septembre 2010
27 juil. 2010 à 20:39
Vraiment merci beaucoup, cette doc va me rendre grand service, je m'y met dès à présent.

Sinon je vais chercher pour le processeur; pour info c'est un MIPS R4000, peut-être reconnaitras-tu dans quoi il est utilisé; c'est connu comme appareil...

Si quelqu'un (ou toi) aurait d'autres liens ils sont tout de même les biens venus, de mon côté je continue à chercher.

à+
0
cs_mat77400 Messages postés 34 Date d'inscription vendredi 16 juillet 2010 Statut Membre Dernière intervention 4 septembre 2010
27 juil. 2010 à 20:45
Ah oui j'avais oublié, peut-être va t-on dire que je ne sais pas chercher mais j'aurais également besoin d'un compilateur.
J'ai vu qu'apparemment il existait GCC pour le MIPS mais je ne sais pas où le télécharger...
0
cs_mat77400 Messages postés 34 Date d'inscription vendredi 16 juillet 2010 Statut Membre Dernière intervention 4 septembre 2010
27 juil. 2010 à 20:48
Je sais que ça fait mon 3eme post d'affilé mais j'ai trouvé ce lien et donc je souhaiterais que l'on me dise s'il est bien ou pas histoire que je n'apprenne pas n'importe quoi.

Merci d'avance.
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
28 juil. 2010 à 11:47
re,


Pour les recherches, ajoute simplement le nom exacte du processeur dans le moteur de recherche.

Ton lien est une liste des options de compilation de GCC pour le processeur MIPS. Cela pourra t'être utile, surtout si tu utilises une architecture differente de MIPS pour travailler.

GCC est un compilateur C logiquement mais tu devrais pouvoir y integrer de l'assembleur. GCC appelera "gas" (GNU assembler) pour compiler les parties assembleur. Peut-être devrait tu rechercher des infos directement sur GAS.

@++
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
28 juil. 2010 à 11:56
re,


Wiki donne des infos interessantes

MIPS R4000 user's manual Ne te laisse pas impressionner par des trucs que tu ne comprends pas forcement. Survole déjà un peu en laissant de côté ce qui te dépasse. Petit à petit tu reviendras dessus.

@++
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
28 juil. 2010 à 12:12
ici une liste des émulateurs MIPS pour linux.

Des infos concernant PSP. Je ne sais pas si cela peut t'interesser.

Je n'ai pas trouvé grand chose concernant l'assemblage pour MIPS.
0
cs_mat77400 Messages postés 34 Date d'inscription vendredi 16 juillet 2010 Statut Membre Dernière intervention 4 septembre 2010
28 juil. 2010 à 15:51
Re,

merci pour ton aide qui m'est précieuse.

Pour ce qui est des émulateur il y a simOS qui correspond car il est compatible r4000, j'ai donc mis du temps à le trouver(plusieurs heures) et je me retrouve avec des fichiers à compiler des .c et tout; je vais donc essayer avec Visual C++ sans garantie de réussite.

Par contre comme c'est un émulateur y aura t-il un moyen de récupérer les fichiers assemblés?

Et à mon avis il doit bien y avoir un moyen de compiler de l'ASM pour processeurs R4000, vu que que certains développeurs programment en ASM.

Merci.
0
cs_mat77400 Messages postés 34 Date d'inscription vendredi 16 juillet 2010 Statut Membre Dernière intervention 4 septembre 2010
28 juil. 2010 à 15:58
Sinon là je me retrouve avec un readme; voici ce qu'il dit :
To make simos first set the following environment variables:

CPU - This is the target platform that the simos binary
will be built for. The current choices are:
SGI,SGIN32,SGIM4,SUN,ALPHA,X86

Then type gmake in the src directory (the directory you are in right now).
Note that gmake is called "gnumake" on some systems.


Google traduction ne m'a pas tant aidé que ça :/
Donc si tu peux m'éclairer ça serait gentil.

Et comme les seuls programmes que j'ai fait en C étaient petits là je suis perdu dans tous ces fichiers et dossiers; donc serait-il possible de m'indiquer la marche à suivre pour compiler le tout.

Merci d'avance.
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
28 juil. 2010 à 16:00
Je ne pense pas que tu puisses le compiler avec visual c++ etant donné que c'est un soft linux. Il te faut utiliser les compilateurs linux. Je ne sais pas comment il fonctionne mais tu auras peut-être la possibilité de créer une partition d'un format que je ne connais pas mais que linux devrait pouvoir te permettre d'acceder en lecture/ecriture.
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
28 juil. 2010 à 16:03
en général, sous linux:
tu va dans le repertoire des sources.
puis:
make
make install

il te faudra les binutils, make, ... les versions min doivent être indiquées (peut-être un fichier readme ou install fourni avec les sources.)
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
28 juil. 2010 à 16:04
peut-être aussi "./configure" a lancer.

Je ne me rappelles plus trop, ça fait un moment que je n'ai pas travaillé sous linux.

@++
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
28 juil. 2010 à 16:13
Essai également de te forcer à lire les docs en anglais et d'en comprendre le plus possible le sens avant de tenter une traduction qui ne sera peut-être pas très perspicace avec un traducteur logiciel.

Tu auras besoin de l'anglais pour beaucoup de docs qui n'existeraient pas en français.
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
28 juil. 2010 à 16:24
Si tu est sous Windows, tu peux utiliser un ordi virtuel et y installer un linux. Sous ce linux, ajouter l'emulateur. Ca va peut-être ramer mais pour des petits progs, ça devrait aller.

Ton problème ne sera pas de récuperer les fichiers assemblés car tu devras les faire dans ton environnement de travail principal. Il te faudra plutôt savoir comment passer le fichier assemblé à l'emulateur.

@++
0
Rejoignez-nous