Comment coder/decoder un caractère sur 2 octets ? - ASM - Programmation
Marsh Posté le 08-03-2005 à 17:50:23
c'est quoi comme codage ?
Marsh Posté le 08-03-2005 à 20:25:45
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 ?
Marsh Posté le 08-03-2005 à 20:31:18
Ouais, décalage binaire, et tu stocke le résultat dans les registres qui vont bien
Marsh Posté le 08-03-2005 à 20:49:00
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
Marsh Posté le 08-03-2005 à 22:07:31
ça serait certainement plus indiqué d'utiliser ROR/ROL si tu veux conserver les bits décalés
Marsh Posté le 08-03-2005 à 23:36:17
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
Marsh Posté le 09-03-2005 à 12:25:40
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
Marsh Posté le 09-03-2005 à 12:51:58
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
Marsh Posté le 10-03-2005 à 12:59:01
db__ a écrit : Bonjour |
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
Marsh Posté le 08-03-2005 à 13:55:29
Bonjour à tous, j'ai besoin d'aide en assembleur et je cale littéralement (c'est assez urgent ).
Voici le sujet :
Ecrire un sous programme "CODAGE" qui:
mais aussi la réciproque :
Ecrire un sous programme "DECODAGE" qui:
Pourriez vous m'aider à réaliser ces 2 sous-programmes
Merci d'avance...
Message édité par Iryngael le 08-03-2005 à 13:57:09