王爽汇编第四版 实验10 编写子程序数值显示最佳答案

子程序描述
名称:dtoc
功能:将word型数据转变为表示十进制数的字符串,字符串以0为结尾符。
参数:(ax)=word型数据
ds:si指向字符串的首地址
返回:无
应用举例:编程,将数据12666以十进制的形式在屏幕的8行3列,用绿色显示出来。
在显示时我们调用本次实验中的第一个子程序show-str。

assume cs:code,ds:data
data segment
db 10 dup (0)
data ends
code segment
start:mov ax,12666
mov bx,data
mov ds,bx
mov si,0
call dtoc (注:调用dtoc子程序)

mov dh,8
mov dl,3
mov cl,2
call show_str (注:调用show_str子程序)
mov ax,4c00h
int 21h

dtoc:mov si,9 (注:dtoc子程序,存储数据的过程)
mov dx,0 (注:被除数ds放高位初始化为0,ax放低位。)
mov bx,10 (注:bx放除数)
s0:div bx (注:这里测试用bl赋值bl不行,必须bx。)
add dl,30h
mov ds:[si],dl
mov cx,ax (注:商为0,则除完所有数量)
jcxz ok2 (注:则除完所有数量,跳转标号ok2处)
mov dl,0
dec si
jmp short s0
ok2:ret (注:跳转call处下方ip)

show_str:mov ah,0 (注:show_str子程序,显示到屏幕的过程)
mov di,0 (注:具体功能介绍看上编内容)
mov al,160
mul dh
mov di,ax
mov al,2
mul dl
add ax,di
mov bx,ax
mov ax,0b800h
mov es,ax
mov ch,0
mov di,0
mov ah,0
s:push cx
mov cl,ds:[si]
jcxz ok
mov es:[bx+di],cl
pop cx
mov es:[bx+di+1],cl
inc si
add di,2
jmp short s
ok:pop cx
ret

code ends
end start

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值