汇编网首页登录博客注册
lghstock的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
文章收藏
友情链接

[2008-07-15 20:02] 第八章 实验7  作业

编程序如下:
assume cs:code,ss:stack,ds:data
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 11542,14430,15257,17800
data ends
table segment
 db 21 dup ('year summ ne ?? ')
table ends
stack segment
 db 16 dup (0)
stack ends
code segment
start:mov ax,stack
      mov ss,ax
      mov sp,16
      mov ax,data
      mov ds,ax
      mov ax,table
      mov es,ax
      mov bx,0
      mov bp,0
      mov cx,21
    s:push cx
      mov si,0
      mov di,0
      mov cx,2
   s1:mov ax,[bx+si]
      mov word ptr es:[bp+di],ax
      add si,2
      add di,2
      loop s1
      add bx,4
      add bp,16
      pop cx
      loop s
      mov bx,0
      mov bp,0
      mov cx,21
  s00:push cx
      mov si,0
      mov di,0
      mov cx,2
  s10:mov ax,[bx+si+84]
      mov word ptr es:[bp+di+5],ax
      add si,2
      add di,2
      loop s10
      add bx,4
      add bp,16
      pop cx
      loop s00
      mov bx,0
      mov bp,0
      mov cx,21
 s100:mov ax,[bx+168]
      mov word ptr es:[bp+10],ax
      add bx,2
      add bp,16
      loop s100
      mov bx,0
      mov cx,21
 s200:mov ax,es:[5+bx]
      mov dx,es:[7+bx]
      div word ptr es:[10+bx]
      mov es:[13+bx],ax
      add bx,10h
      loop s200
      mov ax,4c00h
      int 21h
code ends
end start
评论次数(3)  |  浏览次数(409)  |  类型(汇编作业) |  收藏此文  | 

[  tomato   发表于  2008-07-16 08:59  ]

博主的思路是一列一列存储,很清晰。还有一种方式就是一行一行存储,博主也不妨试试。

[  lghstock   发表于  2008-07-20 21:44  ]

谢谢,我也试试!

[  msc   发表于  2023-01-12 17:07  ]

assume cs:codesg,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 11542,14430,45257,17800

data ends

 

table segment

        db 21 dup('year summ ne ?? ')

table ends
codesg segment

start:  mov ax,data
        mov ds,ax
        mov ax,table
        mov es,ax

        mov bx,0
        mov si,0
        mov di,0
        mov cx,21

s:        mov al,[bx]
        mov es:[di], al        
        mov al,[bx+1]
        mov es:[di+1], al
        mov al,[bx+2]
        mov es:[di+2], al
        mov al,[bx+3]
        mov es:[di+3], al

        mov ax,ds:[bx+54H]
        mov dx,ds:[bx+56H]
        mov es:[di+5H],ax
        mov es:[di+7H],dx

        mov ax,ds:[si+0A8H]
        mov es:[di+0AH],ax

        mov ax,ds:[bx+54H]
        mov dx,ds:[bx+56H]
        div word ptr ds:[si+0A8H]
        mov es:[di+0DH],ax;
 

        add bx,4  
           add si,2   
           add di,16 
        loop s

mov ax,4c00h


int 21h


codesg ends


end start

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码