Assembleur: "Erreur de segmentation"
Fermé
zatox
Messages postés
640
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
26 juin 2020
-
9 févr. 2012 à 01:26
zatox Messages postés 640 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 26 juin 2020 - 22 févr. 2012 à 14:27
zatox Messages postés 640 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 26 juin 2020 - 22 févr. 2012 à 14:27
A voir également:
- Assembleur: "Erreur de segmentation"
- Tp corrigé assembleur 8086 - Forum Programmation
- Assembleur - Forum Assembleur
- While en assembleur ✓ - Forum Programmation
- Programmation assembleur exercices corrigés pdf - Forum Programmation
- Nasm assembleur - Télécharger - Édition & Programmation
3 réponses
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
9 févr. 2012 à 05:58
9 févr. 2012 à 05:58
A vue de nez, tu dois mettre fin au programme dos avec la fonction 4Ch de l'interruption logicielle 21h.
Regarde ici:http://spike.scu.edu.au/~barry/interrupts.html#ah4c
Tu dois également définir le point d'entrée (je ne sais plus comment on fait cela)
Regarde ici:http://spike.scu.edu.au/~barry/interrupts.html#ah4c
Tu dois également définir le point d'entrée (je ne sais plus comment on fait cela)
zatox
Messages postés
640
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
26 juin 2020
65
14 févr. 2012 à 00:17
14 févr. 2012 à 00:17
Bonsoir jisisv merci pour ta réponse, le problème, comme je le dis au début, je ne suis pas sous dos, je travaille sous linux, donc pour l'interruption 21h je ne suis pas certain d'être concerné, mais bon je vais essayer de voir ce que tu me dis, quand au pount d'entrée je crois bien que c'est le _start: non ?!!!
Bon si vous avez des idées merci de me les communiquer.
Bon si vous avez des idées merci de me les communiquer.
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
14 févr. 2012 à 00:35
14 févr. 2012 à 00:35
L'interruption 10h est liée au BIOS . Elle ne te servira pas plus sous Linux.
Par contre tu pourrais écrire un "hello world" minimal en C et l''assembler (avec gcc -S)
et examiner le code assembleur obtenu
Essaye par exemple d'ouvrir /dev/tty et d'y écrire du texte.
Le linker s'occupe du ménage.
essaye par exemple l'équivalent de
Par contre tu pourrais écrire un "hello world" minimal en C et l''assembler (avec gcc -S)
et examiner le code assembleur obtenu
Essaye par exemple d'ouvrir /dev/tty et d'y écrire du texte.
Le linker s'occupe du ménage.
essaye par exemple l'équivalent de
johand@osiris: ~ $ echo Hello > /dev/tty Helloen C. Tu auras une comunication de moyen niveau avec la console.
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
14 févr. 2012 à 01:29
14 févr. 2012 à 01:29
Essaye quelque chose du genre:
johand@osiris: ~/src/CCM/asm $ cat hellotty.c #include <stdlib.h> #include <stdio.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> const char *MESSAGE = "Hello tty\n"; int main(int argc, char *argv[]) { // le file descriptor 0 est stdout write(0, MESSAGE, strlen(MESSAGE)); return(EXIT_SUCCESS); }Compile avec johand@osiris: ~/src/CCM/asm $ gcc -Wall -S -o hellotty.S hellotty.c et examine le code assembleur généré.
zatox
Messages postés
640
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
26 juin 2020
65
22 févr. 2012 à 14:27
22 févr. 2012 à 14:27
Bonjour jisisv, excuses le retard, mais j'ai dû m'absenter un certain temps.
Merci pour ta réponse, effectivement c'est une bonne façon pour avoir le code assembleur généré.
Dans le même ordre d'idée, il y a peut-être une syntaxe permettant d'obtenir non plus le code assembleur généré mais le code machine ?!!!! est-ce possible ? si oui merci de m'indiquer la syntaxe.
Merci pour ta réponse, effectivement c'est une bonne façon pour avoir le code assembleur généré.
Dans le même ordre d'idée, il y a peut-être une syntaxe permettant d'obtenir non plus le code assembleur généré mais le code machine ?!!!! est-ce possible ? si oui merci de m'indiquer la syntaxe.