IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 16-bits Assembleur Discussion :

Coder les caractères d'un message en assembleur


Sujet :

x86 16-bits Assembleur

  1. #1
    Débutant Avatar de razily
    Inscrit en
    Février 2009
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 376
    Points : 154
    Points
    154
    Par défaut Coder les caractères d'un message en assembleur
    Bonjour à tous.

    Je débute en assembleur et je ne sais pas comment résoudre ce problème : j'ai écrit en même temps le code en C et l'ai traduit en Assembleur. En fait, le but c'est d'écrire en assembleur x86 un programme qui utilise une table d'encodage des caractères pour coder les caractères d'un message fournis par l'utilisateur. Le programme devra demander à l'utilisateur s'il faut coder le message ou bien le décoder.

    Après, il demandera ensuite le message à coder sous forme d'une suite de caractères se terminant par un « passeg » à la ligne. Le tableau de codage sera placé dans le fichier en tant que suite d'octets dans le segment data. Un caractère étant codé par un octet (une valeur parmi 256) , la table de codage aura 256 entrées.

    J'ai essayé de faire en C avant de comprendre le problème, mais je suis coincé même le sujet du problème, j'ai du mal à le comprendre

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    #include<stdio.h>
    #include<stdlib.h>
     
     
    int main()
    {
    	char tab[20];
    	int reponse;
    	printf("entrer une chaine de caracetere\n");
    	scanf("%s",tab);
    	printf ("voulez-vous coder ou décoder(0/1) ?\n");
    	scanf("%d",&reponse);
    	if(reponse==0){
    		printf("*****coder****\n");
     
    		i-e je recherche le code Ascii de chaque caracetere
    	}
    	else if(reponse==1){
    		printf("*****décoder****\n");
     
    	}
    	else{
    		printf("erreur choix");
    	}
     
     
    	return 0;
     
    }

    Et en assembleur :

    Code asm : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    ;programme CCexercice4
    extern printf
    extern scanf
    global main
     
    segment .data
    fmt: db'%d',0
    fmt1: db'%s',0
    mes1: db 'Entrer une chaine de caractere ?',10,0
    mes2: db 'voulez-vous coder ou décoder(0/1) ?',10,0
     
    segment .bss
    reponse: resb 4
    y: resb 4
    z: resb 4
     
    segment .text
    main:
     
     
     
    ret

    Je sais qu'il faut utiliser un tableau dans ce genre de choses mais je ne sais comment m'y prendre.

    Pouvez-vous m'aider, s.v.p. ?

    Merci !

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    Par défaut
    Bonjour,

    C'est très facile à faire, cela s'appelle une table de traduction et il existe même une instruction dédiée à cela sur x86. Cependant, nous avons besoin de savoir sur quelle machine tu travailles (chaque assembleur est spécifique à un micro-processeur donné et ses dérivés).

    Merci de lire les règles du forum assembleur et de nous donner ici toutes les informations qu'elle réclament.

  3. #3
    Débutant Avatar de razily
    Inscrit en
    Février 2009
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 376
    Points : 154
    Points
    154
    Par défaut
    Machine PC
    micro-processeur Core 2 Duo
    compilateur et debugger NAsm
    ystème d'exploitation, avec sa version Linux avec Ubuntu 8.04


Discussions similaires

  1. Réponses: 3
    Dernier message: 21/12/2014, 13h53
  2. Réponses: 7
    Dernier message: 03/01/2012, 17h47
  3. Comment coder les instructions assembleur en hexa ?
    Par ibuto dans le forum Assembleur
    Réponses: 3
    Dernier message: 30/05/2011, 16h37
  4. Réponses: 2
    Dernier message: 28/11/2005, 10h12
  5. [PostgreSQL] Les caractères accentués ?
    Par yacomor dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/02/2003, 16h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo