CPU 386 GLOBAL decode EXTERN afficherInt32 SECTION .text decode: PUSH EBP MOV EBP, ESP PUSH EBX PUSH ECX PUSH EDX PUSH ESI PUSH EDI MOV EBX, [EBP+8] ; t[] MOV EDX, [EBP+12] ; s[] MOVZX ECX, WORD[EBP+16] ; n MOV ESI, 1 MOV EDI, 0 run: SHL ESI,1 CMP ESI, ECX JGE end PUSH ESI CALL run POP ESI INC ESI CMP ESI, ECX JGE end1 PUSH ESI CALL run POP ESI end1: DEC ESI end: SHR ESI,1 PUSH ESI CALL treat POP ESI RET POP EDI POP ESI POP EDX POP ECX POP EBX POP EBP RET treat: PUSH EBP MOV EBP, ESP MOV ESI, [EBP+8] PUSH EAX MOVZX EAX, WORD[EBX+ESI*2-2] XOR EAX, EDI MOV [EDX+EDI], AL INC EDI PUSHA PUSH EDI CALL afficherInt32 POP EDI POPA POP EAX POP EBP RET