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 POP ESI 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 MOVZX EAX, WORD[EBX+ESI*2-2] ;PUSHA ;PUSH EDI ;CALL afficherInt32 ;POP EDI ;POPA XOR EAX, EDI MOV [EDX+EDI], AL INC EDI POP EAX MOV ESP, EBP POP EBP RET