这道汇编怎么改,高手请进!

来源:百度知道 编辑:UC知道 时间:2024/07/05 01:34:47
DATA SEGMENT
BDAT DW 0001101000101011B
DATA ENDS
STACK SEGMENT PARA STACK'STACK'
DB 10 DUP(?)
STACK ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA
START:PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV BX,BDAT
MOV CH,4
LP:MOV CL,4
ROL BX,CL
MOV AL,BL
AND AL,0FH
ADD AL,30H
CMP AL,3AH
JL LP1
ADD AL,7
LP1:MOV DL,AL
MOV AH,2
INT 21H
DEC CH
JNZ LP
RET
MAIN ENDP
CODE ENDS
END START

以上程序是将二进制转换为十六进制数,如果要将其转换为十进制数,应该如何修改呢?请PO出可以运行的程序,谢谢!

DATA SEGMENT
BDAT DW 0001101000101011B
DATA ENDS
STACK SEGMENT PARA STACK'STACK'
DB 10 DUP(?)
STACK ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA
START:PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV BX,BDAT
call binidec
mov ah,1
int 21h
RET
MAIN ENDP
binidec proc near
mov cx,10000d
call dec_div
mov cx,1000d
call dec_div
mov cx,100d
call dec_div
mov cx,10d
call dec_div
mov cx,1d
call dec_div
ret
dec_div proc near
mov ax,bx
mov dx,0
div cx
mov bx,dx
mov dl,al
add dl,30h
mov ah,2
int 21h
ret
dec_div endp
binidec endp
CODE ENDS
END START