子程序描述
名称: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