程序报错divide error(汇编)

汇编实验作业,将十六进制转换为十进制。

代码如下

DATAS SEGMENT
    N DB 0ah,0dh,'input your number:$'
    R DB 0ah,0dh,'the result is $'
    RC db 0,0,0,0;此处输入数据段代码  
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    
    LEA DX,N
    MOV AH,09H
    INT 21H
    
    MOV DL,8
    MOV CX,3
INPUT:
    MOV AH,01H
    INT 21H
    
    CMP AL,39H
    JBE MORE57    
    SUB AL,30H
    JMP TODL

MORE57:
    CMP AL,45H
    JBE MORE69
    SUB AL,37H
    JMP TODL
    
MORE69:
    SUB AL,57H
    
TODL:
    CMP DL,0
    JZ ADDBL
    MOV BL,AL
    MOV DH,CL
    MOV CL,DL
    SHL BX,CL
    MOV CL,DH
    SUB DL,4
    
ADDBL:
    ADD BL,AL
    LOOP INPUT
    
CHANGE:
    MOV AX,BX
    MOV BX,OFFSET RC+3
    MOV CX,4
    MOV SI,10
    
CHANGE2:
    DIV SI
    MOV [BX],DL
    MOV DX,0
    DEC BX
    LOOP CHANGE2
    
    LEA DX,R
    MOV AH,09H
    INT 21H
    
    MOV BX,OFFSET RC
    
    MOV CX,4

OUTPUT:
    MOV DL,[BX]
    ADD DL,30H
    MOV AH,02H
    INT 21H
    INC BX
    LOOP OUTPUT
    
    ;此处输入代码段代码
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

流程图如下:

编译通过 运行报错

希望得到解决的方案

 

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。

​​​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。