All pastes #493516 Raw Edit

Untitled

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