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: CMP EDI, ECX JGE exit 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 end1: DEC ESI end: SHR ESI,1 PUSH ESI CALL treat POP ESI JMP run exit: POP EDI POP ESI POP EDX POP ECX POP EBX MOV ESP, EBP POP EBP RET treat: PUSH EBP MOV EBP, ESP MOV ESI, [EBP+8] PUSH EAX MOV AX, WORD[EBX+ESI*2] XOR AX, DI MOV [EDX+EDI-2], AL INC EDI POP EAX MOV ESP, EBP POP EBP RET