I write a code to print window clock through assembly in cmd but it give me a divide overflow error i need a help to find a mistake in my code and want correct code to print a window clock in cmd........

```
             [org 0x0100]
                            jmp start
                             HR DB 0
                             MIN DB 0
                             SEC DB 0
                  printnum:  push bp
                             mov bp, sp
                             push es
                             push ax
                             push bx
                             push cx
                             push dx
                             push di
                             mov ax, 0xb800
                             mov es, ax 
                             mov ax, [bp+4] 
                             mov bx, 10 
                             mov cx, 0
               clrscr: 
                             push es
                             push ax
                             push di
                             mov ax, 0xb800
                             mov es, ax 
                             mov di, 0
              nextdigit:   
                             mov dx, 0 
                             div bx 
                             add dl, 0x30 
                             push dx 
                             inc cx 
                             cmp ax, 0 
                             jnz nextdigit 
                             mov di, 0 
                 nextpos:    pop dx 
                             mov dh, 0x07 
                             mov [es:di], dx 
                             add di, 2 
                             loop nextpos 
                             pop di
                             pop dx
                             pop cx
                             pop bx
                             pop ax
                             pop es
                             pop bp
                             ret 2

                 DISPLAY:

                             MOV DL, BH
                             ADD DL, 30H            
                             MOV AH, 02H
                             INT 21H
                             ADD DL, 30H    
                             MOV AH, 02H
                             INT 21H
                             RET
                    start: 
                             call clrscr 
                             call printnum

                             MOV DS, AX
                             MOV AH,2CH         
                             INT 21H
                             MOV AH, 09H
                             INT 21H
                             MOV DL, ':'            
                             MOV AH, 02H
                             INT 21H
                             MOV AL, MIN      
                             AAM     
                             MOV BX, AX
                             CALL DISPLAY           
                             MOV DL, ':'            
                             MOV AH, 02H
                             INT 21H
                             MOV AL, SEC    
                             AAM                   
                             MOV BX, AX
                             CALL DISPLAY           
                             MOV AH, 4CH
                             INT 21H
                             int 0x21
        This is the code when is use in nasm i give me error divide over please solve my problem.....

```