All pastes #493356 Raw Edit

Something

public text v1 · immutable
·published 2007-05-17 18:42 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:
	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