;在buf开始存放10个字节的有符号数,分别统计正数,负数和零的 ;个数,存放在数组的后面. data segment buf db 0ffh,01h,98h,0a7h,00h,00h,00h,33h,88h,7fh data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea si,buf mov cx,10 x4: mov al,[si] or al,al jz x1 ;为零转移 jns x2 ;不为负数转移 inc bl ;bl是负数的个数 jmp x3 x1: inc bh ;bh是零的个数 jmp x3 x2: inc dl ;dl是正数的个数 x3: inc si loop x4 mov [si],dl mov [si+1],bl mov [si+2],bh mov ah,4ch int 21h code ends end start