【无涯契】【七】

DATAS SEGMENT
	dd 1975,16,3,5,1976,22,7,3,1977,382,9,42,1978,1356,13,104,1979,2390,28,54,1980,80000,38,210
	dd 1981,16000,130,123,1982,14486,220,111,1983,50064,476,105,1984,97479,778,125
	dd 1985,140417,1001,140,1986,197514,1442,136,1987,345980,2258,153,1988,590827,2793,211
	dd 1989,803530,4037,199,1990,1183000,5635,209,1991,1843000,8226,224,1992,2759000,11542,239
	dd 1993,3753000,14430,260,1994,4649000,45257,304,1995,5937000,17800,333
    ;此处输入数据段代码  
DATAS ENDS

STACKS SEGMENT
	dw 16 dup(0)
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    mov ax,stacks
    mov ss,ax
    mov sp,20h
    mov ax,0B828H
    mov es,ax
    ;
    mov cx,84  ;共有84个数据项
    mov si,0
    
s1:	sub cx,3     ;下面分离了4次循环,故此处原始cx应减去3,(不能减去4,因为最后面的loop S1还会减去一次)
	push cx
	mov cx,4    ;一行显示4个数据项,故此处循环值为4
	
s2:	call dtoc
	add si,4
	loop s2
	
	push es
	pop ax
	add ax,6h    ;段地址加6,相当于偏移地址加60h,每行可显示10项数据,但只需显示4项,一项数据占10H个字节。
	mov es,ax
	pop cx
	loop s1
          MOV AH,4CH
         INT 21H
    ;
dtoc:
	push cx
	push si
	mov bx,si
	mov si,ds:[bx]
	mov di,ds:[bx+2]
	mov bp,0            ;bp用来累计余数的个数
main:
	mov bx,10
	mov dx,0
	mov ax,di
	div bx
	push ax
	mov ax,si
	div bx              ;使用公式X/N=int(H/N)*65536+[rem(H/N)*65536+L]/N
	;
	mov di,dx
	inc bp
	pop dx
	push di              ;把余数压栈
	mov cx,dx
	jcxz cmpax
	jmp continue
cmpax: 
	mov cx,ax
	jcxz ok
continue:
	mov di,dx
	mov si,ax
	jmp main
	
ok:	mov di,0            ;0B800H段的偏移地址              
	mov dx,02h          ;字体显示颜色值
	mov cx,bp           ;余数个数
	mov ax,0
wr:	pop ax
	add al,30h
	mov es:[di],al
	mov es:[di+1],dl
	add di,2
	loop wr
	push es
	pop ax
	inc ax
	mov es,ax
	pop si
	pop cx
	ret		
		    
CODES ENDS
    END START



 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值