All pastes #491511 Raw Edit

burt

public text v1 · immutable
·published 2007-05-16 18:27 UTC
rendered paste body
CPU 386
GLOBAL decode
SECTION .text

treat:
	PUSH EAX
	MOV EAX, [EBX+ESI*2-2]
	XOR AX, AX
	MOV [EDX+ESI-1], AL
	POP EAX
	RET

decode:
	PUSH EBP
	MOV EBP, ESP
	PUSH EBX
	PUSH ECX
	PUSH EDX
	PUSH ESI
	MOVZX EBX, WORD[EBP+8] 		; t[]
	MOVZX EDX, BYTE[EBP+12]		; s[]
	MOVZX ECX, WORD[EBP+16]		; n
	
	MOV ESI, 1
	PUSH ESI
run:
	POP ESI
	SAL ESI,1
	CMP ESI, ECX
	JGE end
	PUSH ESI
	CALL run
	POP ESI
	INC ESI
	CMP ESI, ECX
	JGE end
	PUSH ESI
	CALL run
	
end:
	DEC ESI
	SAR ESI,1
	CALL treat
	RET
	
	POP ESI
	POP EDX
	POP ECX
	POP EBX
	POP EBP