data segment
buffer db 200 dup(?) ;数据自定
n dw 0
data ends
assume cs:code, ds:data
code segment
start:
mov ax, data
mov ds, ax
mov cx, 200
lea si, buffer
L0:
mov al, [si]
test al, 1 ;判断最后一位,=0是偶数,=1是奇数
;这个判断是有问题的,0是非奇非偶,
;所以,不应该这样判断
jnz next
cmp al, 0 ;再加上对0的判断,最后1个bit=0,并且整个数不等于0的时候
jz next ;这个数是偶数
inc n
next:
inc si
loop L0
; print n, 省略
mov ah,4ch
int 21
code ends
end start