Ca me semble plus complique que ca la conversion hexa -> numerique surtout si la chaine hexa peut etre infini... pour ascii hexa en asm par contre c'est bcp plus facile
char *Ascii;
char *Hex;
Ascii=new char[256];
Hex=new char[256];
sprintf(Ascii,"angel" );
__asm
{
// Ascii pointeur sur car, chaine terminée par 0
// Hex pointeur sur car, chaine terminée par 0
mov edx,Ascii
mov ebx,Hex
whileptpas0:
mov cl,[edx]
cmp cl,0
je FinWhile
//cl=Ascii[i]>>4
sar cl,4
//if(c>9)
cmp cl,9
jle Infa9
add cl,37h //'A'-10
jmp Suite
Infa9:
add cl,30h // '0'
Suite:
mov [ebx],cl
inc ebx
mov cl,[edx]
//c=Ascii[i]& 0fh
and cl,0fh
cmp cl,9
jle Infa9_2
add cl,37h //'A'-10
jmp Suite_2
Infa9_2:
add cl,30h // '0'
Suite_2:
mov [ebx],cl
inc ebx
inc edx
jmp whileptpas0
FinWhile:
mov byte ptr[ebx],0 // 0 final sur la chaine Hex
}
printf("%s\n",Hex);
delete []Ascii;
delete []Hex;