|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
;2013-02-27 10:01 王爽 汇编语言 实验10.3 显示数字问题
;公式如下:
assume cs:code,ss:szeeg
data segment
dw 123,12666,1,8,3,38
data ends
szeeg segment
dw 16 dup (?)
szeeg ends
code segment
start:mov ax,data ;设置数据段
mov ds,ax
mov ax,szeeg ;设置栈段
mov ss,ax
mov sp,20h
mov ax,0B800h ;设置显存段
mov es,ax
mov si,0
mov di,6*160+80 ;在显示屏上第6行第40开处显示数据
mov bp,0
mov cx,6
a:call dtop ;调用子程序
inc si
inc si ;定位数据段内的数"字"据
loop a ;循环遍历数据段数据
mov ax,4c00h
int 21h
;以下是子程序代码实现数据字符显示功能
dtop:push cx
mov ax,0 ;清除ax寄存器内的数据
mov ax,ds:[si] ;取出数据段内的数据作被除数
mov bx,10 ;除数
s:div bx ;进行除法运算
mov cx,dx
jcxz c
add dl,48
mov dh,02h ;设置绿色字体
push dx ;将转换后的数据入栈
inc bp ;记录转换次数用于逆序循环用
mov ax,ax
mov bx,bx
mov dx,0
jmp short s
c:mov cx,bp ;设置循环次数
n:pop ax ;数据出栈进行还原数据
mov es:[di],ax ;逆序转换数据
add di,2 ;定位显存段偏移
loop n
ok:mov dl,2ch ;设置间隔符","逗号
mov dh,03h ;设置浅蓝色字体
mov es:[di],dx ;输出显示排过序的数据
add di,2
mov dx,0
mov bp,0 ;清除上一次的循环记录次数
pop cx
ret
;数据字符显示子程序 结束
code ends
end start
;以上代码有面具独立实现,请学习中的朋友只要但见不要抄袭 |
|