Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1421 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  Comment coder/decoder un caractère sur 2 octets ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment coder/decoder un caractère sur 2 octets ?

n°1004777
Iryngael
Awesome, ain't it ?
Posté le 08-03-2005 à 13:55:29  profilanswer
 

Bonjour à tous, j'ai besoin d'aide en assembleur et je cale littéralement (c'est assez urgent :cry: ).
Voici le sujet :
 
Ecrire un sous programme "CODAGE" qui:

  • a en entrée un caractère à coder mis dans AL
  • réalise le codage d'un octet de données sur 2 octets
  • retourne dans AX le résultat du codage


mais aussi la réciproque :
 
Ecrire un sous programme "DECODAGE" qui:

  • a en entrée un caractère à décoder mis dans AX
  • réalise le décodage de 2 octets en un octet de données
  • retourne dans AL le résultat du décodage


Pourriez vous m'aider à réaliser ces 2 sous-programmes  
Merci d'avance...  :jap:


Message édité par Iryngael le 08-03-2005 à 13:57:09
mood
Publicité
Posté le 08-03-2005 à 13:55:29  profilanswer
 

n°1005522
Iryngael
Awesome, ain't it ?
Posté le 08-03-2005 à 16:18:56  profilanswer
 

[:valentinorossi]  
 
Personne pour m'aider ? :'(

n°1005525
FlorentG
Unité de Masse
Posté le 08-03-2005 à 16:19:40  profilanswer
 

T'as vraiment pas un début de programme ?

n°1005732
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 08-03-2005 à 17:50:23  profilanswer
 

c'est quoi comme codage ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°1006002
Iryngael
Awesome, ain't it ?
Posté le 08-03-2005 à 20:25:45  profilanswer
 

en fait il me faut séparer le contenu de AL en 2 et le répartir dans 2 registres. J'ai le début du programme qui me fait la saisie du caractère ainsi que la fin qui convertit le binaire en ascii mais je calle sur coment répartir les 4premiers bits de AL dans un registre et les 4 derniers dans un autre ainsi que la manip inverse, c'est à dire réunir les 2 moitiés de l'octet en une . me faut-il utiliser les décalages SHl et SHR ?

n°1006012
FlorentG
Unité de Masse
Posté le 08-03-2005 à 20:31:18  profilanswer
 

Ouais, décalage binaire, et tu stocke le résultat dans les registres qui vont bien

n°1006032
Iryngael
Awesome, ain't it ?
Posté le 08-03-2005 à 20:49:00  profilanswer
 

Bon je vai tenter avec des SHR/SHL verrai bien ce que ca donne (quand je pense qu'après il faut que je me seve de ca pour faire de l'encapsulation de bits dans une trame reseau  :'( snif

n°1006079
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 08-03-2005 à 22:07:31  profilanswer
 

ça serait certainement plus indiqué d'utiliser ROR/ROL si tu veux conserver les bits décalés :o


---------------
J'ai un string dans l'array (Paris Hilton)
n°1006177
Iryngael
Awesome, ain't it ?
Posté le 08-03-2005 à 23:26:18  profilanswer
 

Aie et ca marhe comment les ROR et ROL ?

n°1006189
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 08-03-2005 à 23:36:17  profilanswer
 

comparaison entre SHR et ROR (le principe est le même pour SHL et ROL) :
 
8 bits de départ : AL = 11001101
SHR AL,4
résultat : AL = 00001100
 
ROR AL,4
résultat : AL = 11011100
 
tu vois le topo ? le ROR fait un décalage circulaire (le bit de poids faible ejecté devient le bit de poids fort)
donc tu fais un ROR, et avec un AND tu masques les 4 bits de poids faible, et tu fous le résultat dans un registre. ensuite tu refais un ROR, puis AND, et idem


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le 08-03-2005 à 23:36:17  profilanswer
 

n°1006645
db__
spécialiste de l'à peu près
Posté le 09-03-2005 à 12:25:40  profilanswer
 

Bonjour
voici une proposition de code :
mov ah, al
and al, 0fh
shr ah, 4
et le résultat est dans AX
pour l'inverse
and al, 0fh ; peut être initile si on est sur que le poids fort est nul
shl ah, 4
or al, ah
Je serais interressé de conaitre la solution en utilisant ror
cordialement

n°1006676
Iryngael
Awesome, ain't it ?
Posté le 09-03-2005 à 12:51:58  profilanswer
 

je vais tester ce bout de code. je posterai la solution que j'ai trouvé dans l'après midi. Merci pour ta propal db__ et pour les explis harko


Message édité par Iryngael le 09-03-2005 à 12:52:27
n°1008117
Iryngael
Awesome, ain't it ?
Posté le 10-03-2005 à 12:59:01  profilanswer
 

db__ a écrit :

Bonjour
voici une proposition de code :
mov ah, al
and al, 0fh
shr ah, 4
et le résultat est dans AX
pour l'inverse
and al, 0fh ; peut être initile si on est sur que le poids fort est nul
shl ah, 4
or al, ah
Je serais interressé de conaitre la solution en utilisant ror
cordialement


 
j'ai donc testé ton code et ca marche impeccabement. j'ai juste eu a faie 2 OR 01000000 pour appliquer un masque à Ah et AL, ce qui était le but du codage.
De même ta solution de décodage marche parfaitement.
Encore merci


---------------
/!\ Le point de rendez-vous des amateurs de vieux matos informatique c'est ici !/!\

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  Comment coder/decoder un caractère sur 2 octets ?

 

Sujets relatifs
MySQL requête ciblée sur une chaine de caractèreRéutilisation d'une chaine de caractére !!
caractère sans saut de ligneenvoie de 4 octets a la suite sur le port rs232
Saisir un seul caractererecherche de chaine de caractere
J2ME -> Utilisation de KXmlRPC: blocage au 256ème caractère de réponselogiciel permettant de decoder
comment changer le caractère -> ' <- dans une chaine[XHTML/CSS] Bien débuter, et coder un design proprement
Plus de sujets relatifs à : Comment coder/decoder un caractère sur 2 octets ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR