Assembleur

cs_solleil
Messages postés
2
Date d'inscription
jeudi 18 mars 2010
Statut
Membre
Dernière intervention
19 mars 2010
- 18 mars 2010 à 12:20
cs_solleil
Messages postés
2
Date d'inscription
jeudi 18 mars 2010
Statut
Membre
Dernière intervention
19 mars 2010
- 19 mars 2010 à 18:36
bonjour,

svp quelqu'un peut il m'aider pour mon programme en assembleur; on me demande d'ecrire une routine qui permet de convertir un octet codé en BDC en 2 caractères ASCII
correspondant et d'appeler cette routine avec un call depuis le programme principal.
svp c'est plus qu'urgent

Merci

3 réponses

cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
16
18 mars 2010 à 19:28
Supposons que la valeur en BCD (binary-coded decimal) soit dans DL :
(code assembleur 16 bits)
bcdToBin:
;Value given in AX
 mov ah,dl
 mov al,dl
 and ax,0x0FF0
 shr al,4
 add al,48 ;peut-être optimisable
 add ah,48 ;idem
ret

---
VB.NET is good ... VB6 is better
0
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
16
18 mars 2010 à 22:46
Oops, j'ai fait une erreur dans le code.
Ceci devrait aller :
bcdByteToAscii:
;Params : BCD byte's passed in CL.
;Returns: The ASCII chars are returned in AX.
push bx
xor bh,bh
mov bl,cl
and bl,0xF0
shr bl,4
add bx,48
mov ax,bx
shl ax,8
xor bh,bh
mov bl,cl
and bl,0x0F
add bx,48
add ax,bx
pop bx
ret

---
VB.NET is good ... VB6 is better
0
cs_solleil
Messages postés
2
Date d'inscription
jeudi 18 mars 2010
Statut
Membre
Dernière intervention
19 mars 2010

19 mars 2010 à 18:36
merci beaucoup.
0