#include <stdio.h> #include <conio.h> #include <stdlib.h> void decom(char *s) { //unsigned char s[20]="aaabccd"; //unsigned char s2[20]; asm{ push ax push si push di lea di, s lea si, s mov ax,ds mov es,ax xor ch, ch } while_: asm{ mov al, [si] cmp al, '0' je fim cmp al, [si+1] jne write inc si mov ch,[si+1] inc si mov [di], al inc di mov [di], al inc di jmp write2 } write: asm{ mov [di], al inc di inc si jmp while_ } write2: asm{ cmp ch, 0 je while2 inc di mov [di], al dec ch jmp write2 } while2: asm{ inc si jmp while_ } end: asm{ //mov byte ptr [di], 0 pop di pop si pop ax } printf("code text= %s",s); getch(); //return 0; } int main() { unsigned char s[20]="aa2EdFF5"; decom(s); return 0; }
MOD EDIT: When posting code...USE CODE TAGS!!!

This post has been edited by JackOfAllTrades: 18 November 2010 - 01:20 PM