![]()
Je me lance dans l´assembleur(noob total), et j´aimerais savoir quel compilateur vous me conseillez.
Merci d´avance ![]()
c´est quoi ton cours ?
Merci de te moquer
J´y peux rien si je suis un débutant en assembleur
C´est pas un tutoriel sur le net, ce sont de vieilles notes d´un informaticien ![]()
Je me moque pas. Enfin un peu. Mais autant que je me moque de moi en repensant à mes débuts en ASM avec mon bouquin pourri en Anglais.
tu connait quoi comme langage de programmation ?
sinon pour l´assembleur ( ce n´est pas un compilo bien sur, car il n´y a pas besoin de compiler de l´asm, tout juste un peu de traitement de macro et remplacement de nom de variables) prend NASM, c´est ce qu´on fait de meiux car il est supporté aussi bien pas windows que linux.
les 2 autres sont moins bien : TASM manque pas mal de fonctionnalité et MASM est un peu ( inutilement) complexe.
Je ne suis pas d´accord, je trouve MASM excelent pour un débutant ( si tu es sur windoze bien sur). Par contre, pour une raison étrange, MASM ne vient pas avec link16 donc pour faire de . exe ms-doc compatible, je crois Nasm meilleur . .. ( J´ai link16, mais de où je l´ai pris, je n´en sais rien.)
Recherche des info sur Masm32 sur google.
Have phun,
Psy³
Hmmm, ca reste de l´interprétation de chiffe hexadécimo, et la création d´un . exe ou . com, non ?
Sinon, j´ai des bases en pas mal de language... java(débutant), c++, php... et je pense que pour aller plus loin j´aurais besoin de connaitre l´assembleur ![]()
salut
Je suis un petit peu perdu, sur le site, il propose de télécharger des binary win32(doit pas etre ca...), des binary dos(peut être...) et tool.
http://sourceforge.net/projects/nasm/
Si vous pouviez m´aider ![]()
si tu programme sous windows tu prend les binary win32
Sinon, quel genre de différence existe-t´il entre les différents compilateurs ? Par exemple, les boucles, ou autre genre d´instruction?
W.
toutes les mnemoniques sont standards ( cf. les jeux d´instructions P4 par ex. en PDF sur le site de Intel), mais certains compilos supportent plus de choses que d´autres, voire certaines fonctions avancees.
du vieux compilo ne connaissant que le x86 de base, au dernier prenant le SSE3, il y a de tout. Certains proposent des systemes de " macros" qui sont sensees faciliter la programmation ( cf. masm, avec ses @if @else etc. Je deconseille cela dit, ca n´apporte rien et on s´eloigne de l´idee de faire de l´asm pour le plaisir ( je dis bien pour le plaisir, dans 99.9% des cas un bon compilo pour un langage de plus haut niveau pondra du meilleur code que ce qu´on peut faire a la main ; c´est surtout vrai de nos jours, avec les archi tres complexes des CPU -vive l´HT et le netburst, par ex.). C´est comme ca que certain " font" du win32 en asm par ex, a grand coup de @call dans tous les sens... interet ? zero :/
pour t´initier facilement, a commencer a manipuler les registres, les instructions de bases, etc. tu peux aussi envisager l´ASM inline, dans un bon compilo C++ par ex. ( notons au passage que VC++ permet le __declspec(naked) si on veut tout faire a la main en ASM). Dans un second du pur asm te permettra de voir tout ce qui " entoure" le programme lui meme.
Ah cool quelqun comme moi! Il y a deux mois j´étais comme toi je voulais apprendre l´asm mais je ne connaissait rien de ce langage ^^
Pour bien débuter je te conseil de suivre le tutorial sur developez.com et après t´acheter un bon livre sur l´asm. Je te conseil l´assembleur tasm, c´est celui que je prend et il est très simple! Tu peut le trouver gratuit sur internet ou le prendre avec kazaa.
Sa fais 2 mois que je suis sur l´assembleur et je commence a etre bon
Je fais plein de petit programme et c´est pas aussi dur que ce que les gens dise ; )
Non, c´est pas très dur j´ai fait toute la partie théorique ; o)
Maintenant, j´aimerais bien tenter d´installer un compilo
J´arrive pas...
Non, je suis vraiment un pas doué pfff...
watzakamikaze{at]hotmail[.point.point}com mon msn si quelqu´un accepte de m´aider un petit peu en assembleur.(installation compilateur, et une ptite aide... ( : )
D´ailleurs, si quelqu´un pouvait m´expliquer la différence entre pile segment de donné.
A priori, une pile c´est pour des choses temporaires(genre une fonction C qui définit des variables), et un segment de donné le reste.
Merci d´avance.
roger_barry > tu parles de quel tuto de developpez.com?
Je parle du tuto d´assembleur sur les x86 en 16bits.
Pour la pile, c´est pas sa du tout, une pile sa sert a empiller des données ( logik ^^) avec la commande PUSH. Sa sert a sauver une donnée qui est stocker dans un registre ou un accès memoire ( variable).
ex: PUSH ax
PUSH word ptr ds:[TOTO]
Puis pour reprendre ces données tu utilise la commande POP qui dépile la donné qui est au sommet de la pile.
ex: MOV ax, 5 ; Mes 5 dans le registre ax
MOV bx, 8 ; Mes 8 dans le registre bx
PUSH ax ; Empille ax ( ax=5)
PUSH bx ; Empille bx ( bx=8)
POP ax ; Dépile dans ax ( ax=8)
POP bx ; Dépile dans bx ( bx=5)
Pour le segment de donnée c´est juste un endroit ou tu défini tes variable.
ex: data segment use16
roger db " Salut"
var1 dw 45
data ends
Sauf que si tu veut avoir accès a ces variable il faut que tu rajoute au début de ton segment de code:
MOV ax, data ; "data" est le nom du sgement de donnée
MOV ds, ax
Tu ne peut pas faire directement un " MOV ds, data" Car ds est un registre de segment.
Pour le compillateur, en assembleur on appel pas sa un compillateur mais un assembleur
Il ne s´installe pas vraiment tu y va tout simplement en l´appelant avec DOS.
Attend dans mon prochain message je vais te donner un lien ou tu pourra telecherger tasm et tlink.
Aaah! Tripod il ont supprimé mon compte je peut pas te le donner comme sa! Rajoute moi dans tes contacts si tu veut tasm.
vraiment, je ne conseil pas tasm, c´est l´assembleur pour lequel il y a le moins de support et celui qui est le plus obsolète. ( de ( n+m+t)*asm)
Oui, mais justement, j´ai un peu de mal avec cette notion.
On m´avait expliqué qu´en C, les fonctions par exemples créaient des variables temporaires dans la pile.
Et je ne comprends pas l´intérêt de faire une pile et un segment de donné si les 2 font la même chose !
Oh je vois de quoi tu veut parler! Tu veut parler du segment de pile! La ce n´est pas du tout la même chose. Dans le segment de données se sont les variable qu´ont défini. Dans le segment de pile c´est la pile qu´on défini.
pile segment stack use16
db 256 DUP ( ?)
pile ends
Dans ce segment on déclare une pile de 256 octets! Le mot clé pour dire que c´est la pile c´est le stack dans la déclaration du segment. Sans pile tu ne peut pas utiliser PUSH et POP.