《汇编语言》王爽第二版,实验7代码

assume cs:code,ds:data,es:table  
data segment  
    db '1975','1976','1977','1978','1979','1980','1981','1982','1983'  
    db '1984','1985','1986','1987','1988','1989','1990','1991','1992'  
    db '1993','1994','1995'  
    dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514  
    dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000  
    dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226  
    dw 11452,14430,15257,17800  
data ends  
table segment  
    db 21 dup ('year summ ne ?? ')  
table ends  
code segment  
start: 	mov ax,data
		mov ds,ax
		mov ax,table
		mov es,ax
		mov bx,0
		mov si,84
		mov di,00a8h
		mov cx,21
		mov bp,0
	s:	mov ax,ds:[si]
		mov dx,ds:[si+2]
		mov bx,ds:[di]
		div bx
		mov es:[bp],ax
		add si,4
		add di,2
		inc bp
		inc bp
		loop s
		mov ax,4c00h
		int 21h
		
		
		
code ends 
end start

加载程序后,观察数据段。年份从076A:0000开始,076A:0053结束,076A:0054开始是双字的十进制的16,第一个被除数,si填入十进制84,用si存储偏移地址定位被除数;低位送入ax,高位[si+2]送入dx;

用di存储偏移地址,定位除数,第一个除数地址076A:00A8,di存入00A8H;bp存放es段偏移地址,结果存放es:[bp],被除数是双字类型,除数是字类型,结果是两个字节,故每次循环最后si+4,di+2,bp+2;

运行后结果,0778:0000处 0005;0778:0002处0003,最后一个结果0778:0029处014D

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值