鱼C论坛

 找回密码
 立即注册
查看: 2056|回复: 0

[汇编作业] 第十章实验10_3

[复制链接]
发表于 2014-5-20 15:03:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
[hide]assume cs:code,ds:data 
data segment
dw 123,12666,1,8,3,38
db 80 dup (0)
db 0 ;ds:[96] ;字符总数计数
db 0 ;ds:[98] ;除数变量 保存 值10
db 0 ;ds:[100] ;用于记录录入数据的个数
data ends

code segment

start: mov ax,data
mov ds,ax
mov bx,0
call display_dig ?调用显示主函数
mov ax,4c00h
int 21h
display_dig:
call get_dig_count ;取得字数?
mov cx,ds:[100]
mov di,16
mov bp,8
mov word ptr ds:[96],0 ;记 数 
covent:push cx
mov ax,ds:[bx]        
mov cx,5

r_01:mov dx,10
push dx
pop ds:[98] ;除数
mov dx,0
div word ptr ds:[98] 
; mov word ptr ds:[38],0
push cx ;保存内层循环计数 下面cx有别的用途
mov cl,dl


jcxz null ;检测某位的余数是否为零
add dl,30h
mov byte ptr ds:[bp+di],dl
jmp put_color
null: mov byte ptr ds:[bp+di],0
put_color: mov byte ptr ds:[bp+di+1],75h ;颜色值,如果某位中数值为零依然进行此操作
pop cx

add di,2 ;内存地址递增参数
sub bp,4 ;每前进(由左至右)2字节后退4字节保存高位字符
add word ptr ds:[96],1 ;每进行一位数操作,计数器+1


loop r_01        
add di,6 ;空字符
sub bp,4 ;空字符
add bx,2
add bp,20

pop cx

loop covent        
mov cx,ds:[96] ;所有待显示字符计数
add cx,6 ;此处空字符需要各加两次运算
mov ax,0b850h
mov si,10h
mov di,02h
mov es,ax
dp:         mov ax,ds:[si]
mov es:[di],ax ;显示
add si,2
add di,2
loop dp        

ret        

get_dig_count:
mov bx,0
mov word ptr ds:[100],0
get_data: mov cx,ds:[bx]
jcxz is_0
add word ptr ds:[100],1
add bx,2
jmp get_data
is_0:         mov bx,0
ret

code ends
end start        
[/hide]
运行结果.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-1 00:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表