. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->数据处理的两个基本问题
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  虽然有点烦杂,第8章实验7还是完成了.....(暂没加代码说明,不会加)  [已解决] 回复[ 5次 ]   点击[ 396次 ]  
heiok.com
[帖 主]   [ 发表时间:2009-11-12 14:27 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:16
注册日期:2009-10-21 20:01
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,14017,197514

        dd 

345980,590827,803530,1183000,1843000,2759000,3753000,4649000,593

7000

        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
        dw 0,0,0,0,0,0,0,0
stack ends
codesg segment
        start:mov ax,data
              mov ds,ax
              mov ax,table
              mov es,ax
              mov ax,stack
              mov ss,ax
                     mov sp,16
              mov bx,0
                     mov di,0
                     mov cx,21
                s0:push cx
                     mov si,0 
              mov cx,4
                s1:mov dl,[di]
                     mov es:[bx+si+0h],dl
                     mov dl,[di+54h]
                     mov es:[bx+si+5h],dl
                     inc di
              inc si
                     loop s1
                     pop cx
                     add bx,10h
                     loop s0

                     mov cx,21
                     mov bx,0
                     mov di,0
                s2:push cx
                     mov si,0
                     mov cx,2
                s3:mov dl,[di+0A8h]
                     mov es:[bx+si+0Ah],dl
                     inc di
                     inc si
                     loop s3
                     mov ax,ds:[bp+54h]
                     mov dx,ds:[bp+56h]
                     div word ptr es:[bx+si+8h]
                     mov es:[bx+si+0Bh],ax
                     add bp,4
                     pop cx
                     add bx,10h
                     loop s2
              mov ax,4c00h
              int 21h
codesg ends
end start
ouou
[第1楼]   [ 回复时间:2009-11-13 13:15 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:2
注册日期:2009-11-05 15:19
我来贴个栈命令的

实验七

assume cs:code,ds:data,es:table  
data segment  
year         db '1975','1976','1977','1978','1979','1980','1981','1982','1983'  
             db '1984','1985','1986','1987','1988','1989','1990','1991','1992'  
             db '1993','1994','1995'  
salary          dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514  
             dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000  
employer dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226  
             dw 11542,14430,15275,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 si,0
        mov di,0
        mov bx,0        
        
        mov cx,21
s:        push word ptr [year+si]
        push word ptr [year+si+2]
        push word ptr [salary+si]
        push word ptr [salary+si+2]        
        push word ptr [employer+di]
        
        pop es:[bx+0ah]
        pop es:[bx+7]        
        pop es:[bx+5]
        pop es:[bx+2]
        pop es:[bx+0]

        mov dx,word ptr [salary+2]
        mov ax,word ptr [salary]        
        div word ptr es:[bx+0ah]
        mov es:[bx+0eh],ax

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

        mov ax,4c00h
        int 21
code ends
end start        
-------------------------------------------------------
名字用起来就是爽,不用自己去数数。
yidianyudi
[第2楼]   [ 回复时间:2009-11-13 22:37 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2009-09-24 23:25
楼上方法好先进呀。
栈可以用到这种地步,还不明白可以试出来不能,得试一下。感觉有些问题呀。得试试再说。
yidianyudi
[第3楼]   [ 回复时间:2009-11-13 23:20 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2009-09-24 23:25
虽然没有进行实验,不过我体会到了楼上得法的精妙呀,强呀。多学习一下。谢谢了。
yidianyudi
[第4楼]   [ 回复时间:2009-11-13 23:23 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2009-09-24 23:25
楼主的算法很实在呀,是我们思考的路径,一般都会这样的。我想过了几种算法,包括楼上的两种,还有一种,不过均写不出程序,郁闷呀。呵呵。
heiok.com
[第5楼]   [ 回复时间:2009-12-03 16:14 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:16
注册日期:2009-10-21 20:01
此贴由 贴主 于 [ 2009-12-03 16:14 ] 结贴。 结贴原因:问题已解决
得分情况: 1楼(ouou):6分   4楼(yidianyudi):2分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved