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 PUSH ESI CALL run POP ESI POP EDI POP ESI POP EDX POP ECX POP EBX MOV ESP, EBP POP EBP RET run: PUSH EBP MOV EBP, ESP MOV ESI, [EBP+8] 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 POP EBP RET treat: PUSH EBP MOV EBP, ESP MOV ESI, [EBP+8] PUSH EAX MOVZX EAX, WORD[EBX+ESI*2-2] XOR AX, DI MOV [EDX+EDI-2], AL INC EDI POP EAX MOV ESP, EBP POP EBP RET