如何用汇编显示大于15的数字

gzlsc 2003-12-05 08:08:30
请问如何用汇编显示大于15的数字,如程序里ax为21d,现在我想显示出来,怎么办呢?
...全文
321 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
harrylong7441 2003-12-13
  • 打赏
  • 举报
回复
http://edu.3322.net
hatia 2003-12-10
  • 打赏
  • 举报
回复
小于15的数,和大于15的数,比如说20,没区别呀;
紫郢剑侠 2003-12-10
  • 打赏
  • 举报
回复
可以逐位转换成对应字符输出(AH=02H)
也可以先转换成对应的字符串, 再输出(AH=09H)
4230544 2003-12-10
  • 打赏
  • 举报
回复
分两次显示呀,要10进制的话就除10,要16进制的话就除16,分别保存结果,分别输出呀
rain1983 2003-12-09
  • 打赏
  • 举报
回复
.model small
.data
str1 db 'the result:',0dh,0ah,'$'
.stack 100h
.code
.startup

mov ax,@data
mov ds,ax
mov ax,21
call disp
jmp exit1

disp proc near ;输出子程序
sub dl,dl
lp1:
cmp ax,10
jl lp2
sub ax,10
inc dl
jmp lp1
lp2:
cmp dl,0
jle lp3
or dl,30h ;输出十位数
push ax
mov ah,02h
int 21h
pop ax
lp3:
mov dl,al
or dl,30h ;输出个位数
mov ah,02h
int 21h
ret
disp endp
exit1:
.exit 0
end
xxuu503 2003-12-08
  • 打赏
  • 举报
回复
呵呵!我做过同样的程序,不过我是十进制。不过都一样,
将这个数除以10,得到十位数(商),然后加30d转化为ascii码。明白吧!
然后,用dos中断,将这个十位数显示出来。接下来显示个位数(余数)。
你的程序应该是,除以16,将十位数转化为ascii码。然后将个位数转化为ascii码显示。
注意16进制中应该判断是否大于9,如果大于9需要加的数值要大于30h为39h。
David2008 2003-12-05
  • 打赏
  • 举报
回复
good idea

W32API 2003-12-05
  • 打赏
  • 举报
回复
转换为字符来显示

21,497

社区成员

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

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