您的位置:首页 > 其它

汇编语言 实验10.3 数值显示

2017-05-25 11:57 295 查看

汇编语言 实验10.3 数值显示

写给自己的一些题外话:这个题目做了两天。这几天状态一直不太好,书都看不进去,题也看不进去。。

子程序描述

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


程序

assume cs:code

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

mov dh,8
mov dl,3
mov cl,2
mov si,0
call show_str

mov ax,4c00h
int 21h

dtoc:
mov cx,ax
jcxz reverse
mov bx,10
div bx
mov cx,dx
add cx,30h
push cx
mov dx,0;使下一次循环的ax的值为上一次结果的商
add si,2
loop dtoc
reverse:
mov ax,si
mov bx,2
div bx
mov cx,ax;ax是循环次数,即显示数字的位数
jcxz good
mov si,0
reverse1:
pop ax
mov ds:[si],ax
add si,2
loop reverse1
good:   ret

show_str:
push dx
push cx
mov ax,0b800h
mov es,ax
mov al,160;注意!!
sub dh,1
mul dh
mov bx,ax
mov al,2
mul dl
add bx,ax;bx存放的是显存地址
mov dh,cl
s:  mov ch,0
mov cl,ds:[si]
jcxz ok
mov dl,cl
mov es:[bx],dx
add si,2
add bx,2
jmp short s
ok: pop cx
pop dx
ret

code ends
end start
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  汇编语言