当前位置: 代码迷 >> 汇编语言 >> 8章 实验七 没写完 帮看看
  详细解决方案

8章 实验七 没写完 帮看看

热度:313   发布时间:2016-05-02 04:39:28.0
8章 实验7 没写完 帮看看
本帖最后由 u013776377 于 2014-02-26 20:21:38 编辑
写不下去了, 各位帮改改

assume cs:code,ds:data,ss:stack
;------------------------stack
stack segment
db 16 dup (0)
stack ends
;------------------------data
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
dd '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 11542,14430,15257,17800
data ends

;-----------------------ES
table segment
db 21 dup ('year summ ne ?? ')
table ends

;-----------------------code
code segment
start:
;段寄存器初始化
mov ax,data
mov ds,ax
mov ax,table
mov es,ax
mov ax,stack
mov ss,ax
mov sp,16
;寄存器清零
mov ax,0
mov bx,0
mov di,0
mov si,0
mov dx,0
mov cx,20


s20: push cx       ;入栈
mov cx,4
s1:mov al,ds:[bx+si]
mov es:[bx],al
inc bx
loop s1 
;bx=3
mov cx,4
mov ax,0          
push bx
mov bx,0 
push bx  
            
s2:mov al,[bx+si+84]
pop bx;
mov es:[bx+2],al
inc bx
loop s2
;bx=8
mov cx,2

s3:mov al,[bx+2]
mov es:[bx+2],al
inc bx
loop s3
;bx=b
;除法运算
pop dh
pop dl  ;dx 高16位
pop ah  
pop al  ;ax 低16位
sub bx
div es:[bx]
;bx=a
;ax存余数
add bx,3
;bx=d
mov es:[bx],ax

pop cx
loop s20

mov ax,4100h
int 21h
code ends
end start

------解决方案--------------------
和下面的这个类似?或许可以参考下
http://bbs.csdn.net/topics/390715980
  相关解决方案