All pastes #493511 Raw Edit

Someone

public text v1 · immutable
·published 2007-05-17 20:27 UTC
rendered paste body
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:
	PUSH ESI
	CMP EDI, ECX
	JGE exit
	SHL ESI,1
	CMP ESI, ECX
	JGE end
	PUSH ESI
	CALL run
	POP ESI
	INC ESI

	  PUSHA				
        PUSH  ESI			
        CALL  afficherInt32	
        POP   ESI		
        POPA


	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
	MOV AX, WORD[EBX+ESI*2]
	XOR AX, DI



	MOV [EDX+EDI-2], AL	
	INC EDI
	POP EAX
	MOV ESP, EBP
	POP EBP
	RET