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

我的博客

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

[2012-04-01 06:40] 第八章作业

第八章
实验七 寻址方式在结构化数据访问中的应用。
系列一:
原版:
assume cs:codesg,ds:data,ss: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

codesg segment

start:
mov ax,data
mov ds,ax
mov ax,table
mov ss,ax
mov bx,0
mov bp,0
mov cx,21
s:
mov ax,[bx]
mov [bp],ax
add bx,2
mov ax,[bx]
mov [bp].2,ax
add bp,10h
add bx,2
loop s

mov cx,21
mov bp,0
s1:
mov ax,[bx]
mov [bp].5,ax
add bx,2
mov ax,[bx]
mov [bp].7,ax
add bp,10h
add bx,2
loop s1

mov cx,21
mov bp,0
s2:
mov ax,[bx]
mov [bp].10,ax

mov ax,[bp].5
mov dx,[bp].7
div word ptr ss:[bp].10
mov [bp].13,ax

add bx,2
add bp,10h
loop s2

mov ax,4c00h
int 21h
codesg ends
end start

一次修改(简化):
assume cs:codesg,ds:data,ss: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

codesg segment

start:
mov ax,data
mov ds,ax
mov ax,table
mov ss,ax
mov bx,0
mov bp,0
mov cx,21
s:
mov ax,[bx]
mov [bp],ax
mov ax,[bx].84
mov [bp].5,ax
add bx,2
mov ax,[bx]
mov [bp].2,ax
mov ax,[bx].84
mov [bp].7,ax
add bx,2
add bp,10h
loop s

mov cx,21
mov bp,0
mov bx,168
s1:
mov ax,[bx]
mov [bp].10,ax

mov ax,[bp].5
mov dx,[bp].7
div word ptr ss:[bp].10
mov [bp].13,ax

add bx,2
add bp,10h
loop s1

mov ax,4c00h
int 21h
codesg ends
end start

二次修改(简化):
assume cs:codesg,ds:data,ss: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

codesg segment

start:
mov ax,data
mov ds,ax
mov ax,table
mov ss,ax
mov bx,0
mov bp,0
mov si,168
mov cx,21
s:
mov ax,[bx]
mov [bp],ax
mov ax,[bx].84
mov [bp].5,ax
add bx,2
mov ax,[bx]
mov [bp].2,ax
mov ax,[bx].84
mov [bp].7,ax
add bx,2

mov ax,[si]
mov [bp].10,ax

mov ax,[bp].5
mov dx,[bp].7
div word ptr ss:[bp].10
mov [bp].13,ax
add si,2

add bp,10h
loop s

mov ax,4c00h
int 21h
codesg ends
end start
评论次数(1)  |  浏览次数(144)  |  类型(汇编作业) |  收藏此文  | 

[  tomato   发表于  2012-04-01 23:24  ]

这么多次修改,看得出博主是精益求精,值得学习。

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