功能
给定六个数值 要求以十进制显示在屏幕上
大体思路:首先我们要知道显示在屏幕上是以字符的形式(ascii码),我们首先要将给定的数值一位一位的转换成字符存在一个地方,然后再在屏幕上显示出来
代码部分
1.清理屏幕
clear_screen:
mov dx,0700h ;相当于黑底空字符
mov cx,2000 ;循环次数
mov bx,0b800h
mov es,bx
mov di,0
clearscreen:
mov es:[di],dx
add di,2
loop clearscreen
ret
2.初始化寄存器
设定string段,将每个数值转换成字符,存在其中
init_reg:
mov bx,data
mov ds,bx
mov bx,string
mov es,bx
ret
3.处理数值(外循环)
这个函数的作用就是遍历每个给定的数值
show_number:
mov bx,0
mov si,9 ;es:[si]
mov di,160*10+30*2
mov cx,6
;相当于外循环每次处理一个值
shownumber:
call show_word
add di,160 ;代表屏幕中显示的位置每次加一行
add bx,2 ;代表data段中的数据每次换成下一个数据
loop shownumber
ret
4.除法求余
将给定数值存在ax寄存器当中,然后先将ax赋值给cx,然后判断cx是否为0,每次将余数dx存放到string段中
short_div:
mov cx,10 ;除数
div cx
add dl,30h ;dl是余数
mov es:[si],dl ;放到我们设定好的字段
mov cx,ax ;判断是否被除到0
jcxz short_div_ret
dec si
mov dx,0 ;重置dx(做除法时dx会被改变)
jmp short_div
short_div_ret:
ret
5.初始化显示字符
将ds寄存器指向初始好的string段&#x