8086汇编语言程序设计,关于CMP指令比较数字是否存在的问题

如何在数码管中显示0-FFFF中带0的数,一直循环,每秒状态切换。我目前的思路就是用cmp指令比较,要是没有0,就右移,循环四次,四次之后没有0的话,就跳到下一个数字继续循环比较。但是汇编的基础太差,求各位大神帮忙或者提出更好的方法。以下是我们现在存有的汇编程序
DATA SEGMENT

; DB 0 1 2 3 4 5 6 7 8 9 A B C D E F
LEDCODE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
MOV DX,0206H
MOV AL,80H
OUT DX,AL
LEA BX,LEDCODE
XOR SI,SI
AGAIN:

MOV DI,1
LP2:

MOV AX,DI ; PORT B
MOV DX,0202H
OUT DX,AL

    MOV AX,SI
    AND AX,0FH
    XLAT
    MOV DX,0200H    ; PORT A
    OUT DX,AL

    PUSH CX
    MOV CX,1000
    LOOP $
    POP CX      

    MOV CL,4
    ROR SI,CL       ;SI RIGHT SHIFT 4
    ROL DI,1        ; PBx
    CMP DI,16
    JNE LP2     
    INC SI
    JMP AGAIN

CODE ENDS

END START

你用C程序编译, 然后反编译成汇编即可, 这是最简单的。

C 语言很简单啊, 几条语句就搞定了