Si ma mémoire est bonne l'émulateur REAL ICE est non recommande.
Trop de scripts et des bugs dans tous les sensés...
Si ma mémoire est bonne l'émulateur REAL ICE est non recommande.
Trop de scripts et des bugs dans tous les sensés...
edfed:
petite question : est-ce que fasm fait de soi-disant "optimisation" en modifiant salement le code initial ou bien alors il se contente juste de traduire les mnémo en instructions sans essayer d'être plus malin que nous ?
(je ne prétends pas être plus malin qu'un assembleur)
fasm compile le code de sorte à ce qu'il soit le plus petit possible.
c'est principalement autours des jumps et calls qu'il y a lieu d'optimiser pour un compilateur.
un jump avec deplacement 8 bits prend moins de place et s'execute plus vite que ses homologues 16 ou 32 bits.
une première passe va creer les labels (etiquettes et constantes), une liste des references presentes dans le code source.
une fois la liste d'etiquettes creée, il faut leur donner une valeur, une adresse.
les jumps sont mis en forme 8 bits une première fois, et les labels sont retestés.
si des jumps doivent sauter plus loin, il sont reajustés en 16 ou 32 lors des passes suivantes. au final, nous avons la forme de jump optimale quel que soit le cas.
voilà en quoi fasm optimise la taille du code.
pour les autres optimisations, c'est au programmeur de decider, le compilo à rien à voir dans l'invention d'un algo plus rapide.
Ok, en fait je demandais ça car il m'est arrivé avec NASM de constater que le code obtenu par désassemblage n'était pas le même de ce que j'avais écrit (et je ne parle pas d'opcode synonymes, le code était vraiment légèrement différent).
Jwasm nouvelle version
http://www.japheth.de/JWasm.html
Remplace (presque) ml et permet un usage commercial.
Bonjour,
Il y a (bien) longtemps, je programmais en assembleur avec Masm 5, puis 6. Je voudrais m'y remettre aujourd'hui mais j'avoue que j'hésite.
Masm 32 me tenterait bien mais je vois qu'il n'intègre pas toutes les plus récentes instructions des i5 et i7, je veux parler des compatibles 64/32 (notamment les AES-NI et autres). De plus, je ne sais pas quand il passera au 64 bits.
Précision : je ne me suis jamais mis au C. Je préfère, par goût, Power Basic qui permet de mixer allègrement instructions Basic et assembleur.
Enfin, je précise que je suis plus fasciné par l'assembleur que par sa réelle utilité. Voilà, tout est dit...
Merci d'avance pour vos éventuelles suggestions
Devant cet océan de silence, je choisis de me répondre à moi-même, 2 ans après...
J'ai finalement opté pour GoAsm
Points forts:
-tout est fait pour simplifier l'écriture. Notamment cette possibilité d'écrire le message au lieu de son pointeur procure une merveille de lisibilité
-Doc extrêmement complète que j'ai presque fini de traduire en français (stade des relectures et corrections...)
-il est à jour au niveau des instructions
-il gère le 64 bits sans problème
Le site de Jeremy Gordon : http://www.godevtool.com/
J'utilise ce produit avec l'IDE Easy Code dans sa version multi-langages (GoAsm, Masm, Nasm, etc.) qui intègre le mode "Visual"
Et, devinez? Je suis satisfait!
Pas beaucoup utilise l'asm aussi
Tes choix sont très orienté Windows ^^'
Pour ma part comme IDE j'utilise Geany (qui est un IDE généraliste il peut servir pour le C , Python ou autre), comme assembleur cela dépend de mes utilisation :
-GNU assembler (principalement pour x86 ,MIPS ,autre)
-VASM (principalement pour M68000 , ARM)
-wla-dx (6502,z80)
-Nasm (pour x86)
Bah, je me suis toujours satisfait de DOS puis Windows. Et, comme c'est l'OS le plus répandu, je n'ai jamais éprouvé le besoin d'aller ailleurs. Quant à l'assembleur, c'est surtout qu'il donne accès aux instructions processeur qui sont souvent fascinantes par leurs possibilités. Exemple parmi d'autres : les instructions de cryptage AES...
Comme je ne suis pas un pro, je me contrefous d'éventuels impératifs de rentabilité. Cela dit, quand je vois la complexité du code C++ lorsqu'il s'agit de manipuler des API, je ne trouve pas que l'assembleur ait à rougir.
En tout cas, merci pour l'inventaire de tes choix. C'est toujours intéressant de connaître les pratiques des uns et des autres !
Bonjour,
je suis en train d'apprendre le "hacking" et je voudrais programmer en assembleur.
comment savoir quel assembleur utilise mon Dell Inspirpn
merci
Un coup de Google m’a donné le renseignement: processeurs Intel x86 et x64. J’imagine que Dell propose également des machines avec de l’AMD. Franchement, oublie le hacking si tu n’es pas une “bête” en assembleur, ce qui semble être ton cas. Au mieux tu risques de pourrir complètement ton propre ordi comme premier résultat tangible. Et puis, le hacking, c’est un tantinet illégal...
merci pour cet encouragement
je travaillais dans l'admin systemes et reseaux et suis en pré retraite.
je n'ai pas l'intention de cracker les systemes mais essentiellement de "m'amuser" sur mes ordis.
j'ai un serveur pfsense et 5 ordis sous Centos, Ubuntu et Debian.
j'ai 2 Lan connectés via un switch administrable à ma machine pfsense
j'utilise OpenNMS pour la supervision et FusionInventory pour l'inventaire
je m'intéresse à la sécurité et voila pourquoi je desire apprendre l'assembleur et un autre langage comme le C C++ ou Python
donne moi ton avis. Quels langages étudier?
Merci
Je ne vais m'exprimer que sur l'assembleur car, dans les autres langages que tu cites, il y a des gens plus compétents que moi sur ce site.
Pour ma part, j'utilise habituellement MASM par habitude (depuis les années 80 !). Je l'utilise maintenant sous Visual Studio 17 dans sa version gratuite. Il intègre MASM32 et MASM64 tous deux à jour.
J'utilise aussi GoAsm dont j'ai traduit en français la notice de l'assembleur sur développez.com. Taper "Goasm en français" sur Google.
Je ne connais pas les autres sinon un peu NASM que je trouve cependant déroutant par son utilisation de la syntaxe AT&T, mais c'est strictement personnel...
Pour te faire la main, plusieurs documents :
- notice en français de l'assembleur GoAsm (oui, je vends un peu ma soupe...)
- les 35 tutos d'Iczelion qui constituent sans doute la meilleure initiation qui soit (mais en anglais) et que je traduis en français en ce moment
- l'ouvrage Windows Programmation 5° édition de Charles Petzold en anglais et consacré au C mais une référence absolue de programmation de l'interface GUI de Windows. De plus, c'est facilement transposable à l'assembleur avec un peu d'habitude.
- les différents manuels d'Intel (très épais)
- les travaux d'Agner Frog sur l'optimisation
Evidemment, j'adhère à tout ce qui a été dit sur les autres assembleurs car, tout est affaire de familiarisation avec le logiciel.
Seul critère de choix : prends le plus à jour concernant les instructions processeur implémentées.
merci,
je ne travaille que sous Linux, pas sous Windows pour l'instant.
je vais regarder ta doc mais peux tu me donner un équivalent de Visual Studio sous Linux?
Si tu débutes, je te conseilles de commencer par Python, le C, et venir ensuite à l'assembleur si tu le souhaites.
Commencer par l'assembleur est une aberration, beaucoup plus compliqué à prendre en main et très peu utilisé.
A la place de Visual Studio, tu peux utiliser un IDE comme Geany très léger, (mais peut-être aussi léger en fonctions, je ne crois pas qu'il y est l'affichage des paramètres demandés par les fonctions). Celui qui fait référence est Eclipse, mais c'est une usine à gaz.
Pour l'assembleur, celui fourni de base avec Linux est GAS. Mais tu peux installer Nasm. GAS utilise par défaut la syntaxe AT&T, mais tu peux utiliser la syntaxe Intel avec la directive:
Les outils Linux utilisant plutôt la syntaxe AT&T, je te conseilles de l’étudier quand-même.
Code : Sélectionner tout - Visualiser dans une fenêtre à part .intel_syntax noprefix
La version allégée de Visual Studio: Visual Studio Code est disponible gratuitement sous linux.
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