DOS下面如何显示一个二位十进制的数?

kenyle 2004-11-11 02:37:19
在dos下面如何显示一个二位的十进制数呢?
比如:12
我想分成1,和2
然后mov al,1
mov dl,2
add al,30h
add dl,30h
显示al
显示dl
我想问一下还有别的方法吗?
怎么样才能将12分为二个数,同样的如果是89呢?你们是怎么做到的?
...全文
182 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
大熊猫侯佩 2004-11-11
  • 打赏
  • 举报
回复
data segment
op1 dw ?
op2 dw ?
str1 db 'Please Input The 1st Number',13,10,'$'
str2 db 'Please Input The 2st Number',13,10,'$'
str3 db 'The Answer Is:','$'
data ends

code segment
assume cs:code,ds:data
start:
main proc far
push ds
sub ax,ax
push ax

mov ax,data
mov ds,ax

lea dx,str1
mov ah,9
int 21h
call dec2bin
mov op1,bx
lea dx,str2
mov ah,9
int 21h
call dec2bin
mov op2,bx
add bx,op1
lea dx,str3
mov ah,9
int 21h
call bin2dec

retf
main endp

dec2bin proc near
mov bx,0
newchar:
mov ah,1
int 21h
sub al,30h
jl exit
cmp al,9d
jg exit
cbw
xchg ax,bx
mov cx,10d
mul cx
xchg ax,bx
add bx,ax
jmp newchar
exit:
ret
dec2bin endp

bin2dec proc near
mov cx,10000d
call decdiv
mov cx,1000d
call decdiv
mov cx,100d
call decdiv
mov cx,10d
call decdiv
mov cx,1d
call decdiv
ret
bin2dec endp

decdiv 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
decdiv endp
code ends
end start
flyingcar 2004-11-11
  • 打赏
  • 举报
回复
显示M

mov ax,M
div 10
商在al中
余数在ah中

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧