帮忙,巨谢!

今天有段代码,不知道自己写的是否正确?这是老师布置的作业,帮忙看看我写的是否正确?巨谢!
课题:找在buffer中:42h,21h,34h,56h中的偶数!代码如下!

data segment
buffer db 42h,21h,34h,56h
data ends

stack segment para stack'stack'
db 256 dup(?)
stack ends

code segment
assume cs:code,ds:data,ss:stack,es:data
start proc far
push ds
mov ax,0
push al
mov al,data
mov ds,al
mov es,al
lea si,buffer
lea di,result
mov cl,4

again:mov al,[si]
test al,01h
jz again
mov result,al
inc si
inc di
dec cx

mov ah,02h
int 21h
ret
start endp
code ends
end start
写完了,我知道,问题一定很多,还请各位牛人帮忙指教!
还有就是在int 21h上面的那个有是用于程序返回的代码:mov ah,02h到底是不是该用这个,如果不是,该用什么?如还有其它的我发提,还请帮忙指正,巨谢!
[831 byte] By [kof2008-拳皇] at [2008-2-18]
# 1
有错误!
# 2
int 21h上面的那个有是用于程序返回的代码:mov ah,4CH
sweetch-龙の吻ж龙文 at 2007-10-23 > top of Msdn China Tech,其他开发语言,汇编语言...