好不容易编出来了,但debug后出来是02,01,04,13,不对啊,应该是02,01,04,03吧,大虾帮忙修改一下,明天要用的,感激不尽

题目:
编写一个把从packed开始的16位组合BCD数变成分离BCD数,并把结果存放在从unpaked开始的单元里的程序段

程序:
data segment
packed    db 12h,34h
unpacked  db 8 dup(0)
data ends

code segment
assume cs:code,ds:data
main proc far

start:
push ds
sub ax,ax
mov ax,data
mov ds,ax
 
MOV DX,8
MOV CL,4
MOV SI,0 
mov di,si
XOR Ax,AX
CONVERT:MOV AL,BYTE PTR[SI+PACKED] 
SHL ax,CL 
SHR al,CL  
MOV WORD PTR[DI+UNPACKED],AX 
ADD DI,2 
inc si
dec dx
JNZ CONVERT

jmp a1
a1:int 21h
main endp
code ends
end start