该段子程序作用是:
将AX中的十六进数(实质是二进制数)转换为十进数并显示。
转换顺序是:个位、十位、百位、千位;
显示顺序是:千位、百位、十位、个位。
.
程序注释如下:
print proc near ;子程序定义
mov cl,10 ;除数
mov si,0 ;十进数位指针请零
repeat:
div cl ;AX/10,AL←商,AH←余数(即某位十进制数字)
mov dl,ah ;DL←某位十进制数字
add dl,30h ;某位十进制数字转为ASCII码
mov dh,0 ;DX高8位清零
push dx ;余数的ASCII码进栈
inc si ;十进制数位指针减1
mov ah,0 ;AH清零
cmp al,0 ;商为零否?
jnz repeat ;若商非零,转REPAT,再次除以10
l2: ;若商为零,则执行以下程序段
pop dx ;每次除得余数的ASCII码出栈
mov ah,2 ;功能号
int 21h ;调用DOS中断服务功能,显示某位十进制数字
dec si ;十进制数位指针减1
cmp si,0 ;位指针为零否?
jnz l2 ;若位指针非零,转L2显示下一位十进制数字
ret ;子程序返回
print endp
你的具体问题是什么啊