汇编BX中的16位二进制数以十进制输出

来源:百度知道 编辑:UC知道 时间:2024/06/21 23:28:50
汇编语言,已知BX中存有一个二进制数,它是个计数器。用什么语句可以将BX内容以对应的十进制数字在屏幕输出?
整个程序就是求语句ENG中SUN的数量。
DATAS SEGMENT

ENG db 'THE SUN IS THE SUN,NO MATER WHAT THE EURTH IS.SUN$'

DATAS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:……
…………
…………

(此处缺代码,经过一大堆代码我已经将SUN的数量放在BX中,需要的代码就是将BX以十进制显示输出)
MOV AH,4CH
INT 21H
CODES ENDS
END START

CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE
START:PUSH DS
XOR AX,AX
PUSH AX
MOV BX,1234H;运行时给不同的值
call binidec
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,display
int doscall
ret
dec_div endp
binidec endp
CODE ENDS
END START

; 本程序通过编译,运行正确
Code Segment
Assume CS:Code,DS:Code
; -----------------------------------------
; 功能:把AX中的二进制有、无符号数转换成显式的十进制ASCII码,并送显示屏显示
; 入口:AX=二进制数
; 出口:在当前光标位置显示转换后的ASCII码数字
Dec_ASCII Proc Near
push dx
push bx
push di
.IF Signed == 'y'
mov @@Carry_Yes,'+'
test ax,80