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 3982 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
cs_ghuysmans99 Messages postés 3982 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
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.
Rejoignez-nous