A voir également:
- Programme assembleur
- Programme demarrage windows 10 - Guide
- Programme démarrage windows 10 - Guide
- Fichier ouvert dans un autre programme - Guide
- Desinstaller un programme - Guide
- Programme bonjour c'est quoi ✓ - Forum Logiciels
4 réponses
Bonsoir,
Avant de ce lancer dans un langage de bas niveau comme ASM, il faudrait apprendre la base du fonctionnement des architectures x86.
- La segmentation de la mémoire ( text, data, bss )
- Les registres ( généraux, offsets, segments )
- Les flags
- Les opcodes est leurs utilisations
- Utilisation de la stack.
https://fr.wikibooks.org/wiki/Programmation_Assembleur/x86/Registres
le mieux encore serait pour débuter t de travailler avec les registres 16 bits après passe au 32 bits puis 64 bits.
Si tu travail sur Windows voir aussi le PE ( portable exécutable ) format des en-têtes Windows ( PEB, TEB )
Et tu verra que tout va s’éclaircir pour ton problème, entraîne toi à faire des boucles (EAX, ECX ), travailler des chaîne de caractère etc...
Pour développer en ASM le mieux serait d'utiliser :
- notepad++, gedit ou un autre éditeurs ( pour l'édition du code ).
- nasm & ld afin compiler ta production. ( x86, x64 )
- Immunity Dbg ou OllyDBG pour debugger ton programme ( Windows ), IDA Dbg ( linux )
- hexdump ( linux et Windows )
- objdump ( linux et Windows )
Cdlt,
Avant de ce lancer dans un langage de bas niveau comme ASM, il faudrait apprendre la base du fonctionnement des architectures x86.
- La segmentation de la mémoire ( text, data, bss )
- Les registres ( généraux, offsets, segments )
- Les flags
- Les opcodes est leurs utilisations
- Utilisation de la stack.
https://fr.wikibooks.org/wiki/Programmation_Assembleur/x86/Registres
le mieux encore serait pour débuter t de travailler avec les registres 16 bits après passe au 32 bits puis 64 bits.
Si tu travail sur Windows voir aussi le PE ( portable exécutable ) format des en-têtes Windows ( PEB, TEB )
Et tu verra que tout va s’éclaircir pour ton problème, entraîne toi à faire des boucles (EAX, ECX ), travailler des chaîne de caractère etc...
Pour développer en ASM le mieux serait d'utiliser :
- notepad++, gedit ou un autre éditeurs ( pour l'édition du code ).
- nasm & ld afin compiler ta production. ( x86, x64 )
- Immunity Dbg ou OllyDBG pour debugger ton programme ( Windows ), IDA Dbg ( linux )
- hexdump ( linux et Windows )
- objdump ( linux et Windows )
Cdlt,
jevousshouaiteunebonnej
Messages postés
2
Date d'inscription
dimanche 8 mars 2020
Statut
Membre
Dernière intervention
8 mars 2020
8 mars 2020 à 23:23
8 mars 2020 à 23:23
jevousshouaiteunebonnej
Messages postés
2
Date d'inscription
dimanche 8 mars 2020
Statut
Membre
Dernière intervention
8 mars 2020
8 mars 2020 à 23:27
8 mars 2020 à 23:27
Ok np merci quand meme
la réponse a
changer :
par
b
R0 est n
R1 est ta raison
R2 est le terme
le terme est placé à l'adresse 100
j'espère que c'est ça que tu chercher.
pour n = 5, R = 1, T = 15
pour R0= 5, R1=1, R2=15
cdlt,
changer :
cmp R1,#5
par
cmp R1,#10
b
mov R1,#1 B maboucle maboucle: add R0,R0,R1 add R2,R0,R2 cmp R0,#10 bne maboucle str R2,100 halt
R0 est n
R1 est ta raison
R2 est le terme
le terme est placé à l'adresse 100
j'espère que c'est ça que tu chercher.
pour n = 5, R = 1, T = 15
pour R0= 5, R1=1, R2=15
cdlt,
ça ne marche pas enf il faut rajouter une ligne pour n car n'est doit être choisis par l'utilisateur
INP RO,2 (2 pour le type ) en fonction de cet variable le programme doit tourner
mais j'arrive pas a faire tourner ton programme avec et sans la variable la valeur envoyer dans la mémoire 100 est fausse ils m’envoient 55 .
ps: j'ai bien indenter ainsi qu'ajuster les majuscules
INP RO,2 (2 pour le type ) en fonction de cet variable le programme doit tourner
mais j'arrive pas a faire tourner ton programme avec et sans la variable la valeur envoyer dans la mémoire 100 est fausse ils m’envoient 55 .
ps: j'ai bien indenter ainsi qu'ajuster les majuscules
Oui il renvoie 55 car je fait pour n = 10
n se trouve dans l'opcode ( offset 6 de EIP (PC) ):
non majuscule ou minuscule cela changera rien, tout dépend si le compilateur fait une différence mais pas ici.
pour N = 10, R = 1, T = 55
mais wait je vais essaie d'init dans un autre registe R3 ta valeur n avant la boucle et d'y récupérer cette valeur lors de comparaison.
je suis au travail je regarde dans 1 heures. tu dois le rendre pour quand ?
n se trouve dans l'opcode ( offset 6 de EIP (PC) ):
cmp R0,#10
non majuscule ou minuscule cela changera rien, tout dépend si le compilateur fait une différence mais pas ici.
pour N = 10, R = 1, T = 55
mais wait je vais essaie d'init dans un autre registe R3 ta valeur n avant la boucle et d'y récupérer cette valeur lors de comparaison.
je suis au travail je regarde dans 1 heures. tu dois le rendre pour quand ?
8 mars 2020 à 23:02
Modifié le 8 mars 2020 à 23:24
je ne saurais d'aider désolé. Pourquoi as-tu choisi spécialement cette émulateur ? a t-il été imposé ?
peut-tu quand même envoyer l'énonce au complet s'il te plaît.
Bien cdlt,