进击的小灰灰 发表于 2014-8-15 14:58:26

求助,实验七,年份存不了

ssume cs:code,ds:date,es:table

date 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'
        ;以上是表示21年的21个字符串
       
        dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
        dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
        ;以上是表示21年公司总收入的21个dword型数据
       
        dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
        dw 11542,14430,15257,17800
        ;以上是表示21年公司雇员人数的21个word型数据
       
date ends

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

code segment

start: mov ax,date
                mov ds,ax
                mov ax,table
                mov es,ax
                mov bx,0
                mov bp,0
                mov si,0
                mov cx,21
s1: mov dx,               
                mov ax,                ;传年份
                mov es:,dx
                mov es:,ax
                mov ax,ds:
                mov es:,ax;传人数
                mov dx,
                mov ax,                ;传收入
                mov es:,dx
                mov es:,ax
                div word ptr es:
                mov es:,ax;传人均收入
                add bp,16
                mov bx,4
                loop s1
               
                mov ax,4c00h
                int 21h
               
code ends
end start       





一个人在战斗 发表于 2014-8-15 14:58:27

loop s1上面的mov bx, 4改为add bx, 4,这样就能存进去年份了。。。

小靚同学Leon 发表于 2014-8-15 15:24:39

这是课后标准答案,建议对照答案自己调试解决。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,0

      mov di,0

      mov cx,21

s:      mov ax,

      mov es:,ax

      mov ax,.2

      mov es:.2,ax



      mov ax,.84

      mov es:.5,ax

      mov dx,.86

      mov es:.7,dx



      div word ptr ds:.168

      mov es:.13,ax

      

      mov ax,.168

      mov es:.10,ax



      add di,2

      add bx,4

      add si,16

      loop s



      mov ax,4c00h

      int 21h

code ends

end start

小靚同学Leon 发表于 2014-8-15 15:26:14

编辑代码的时候请使用代码编辑框,这样别人复制你的代码时会省去很多时间滴
如图所示

ZX-走样 发表于 2014-8-15 16:22:21

前来观看。。。。。。。。。

进击的小灰灰 发表于 2014-8-15 17:42:55

一个人在战斗 发表于 2014-8-15 17:30
loop s1上面的mov bx, 4改为add bx, 4,这样就能存进去年份了。。。

谢谢,难怪,原来打错了,这样是可以存进年分了,但除法溢出,我写这个题目写了两个程序都除法溢出,求助{:5_96:}

一个人在战斗 发表于 2014-8-15 20:18:58

进击的小灰灰 发表于 2014-8-15 17:42
谢谢,难怪,原来打错了,这样是可以存进年分了,但除法溢出,我写这个题目写了两个程序都除法溢出,求助 ...

在loop s1上面加上add si, 2就可以了。。。

进击的小灰灰 发表于 2014-8-15 23:39:55

一个人在战斗 发表于 2014-8-15 20:18
在loop s1上面加上add si, 2就可以了。。。

谢谢

胖胖大头梨 发表于 2014-10-24 09:06:55

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'
   ;以上是表示21年的21个字符串,0-53h
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,59827,803530,1183000,1843000,2759000,3753000,4649000,5937000
;以上是表示21年公司总收入的21个dword型数据 ,54h-0a7h
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11542,14430,15257,17800
;以上是表示21年公司雇员人数的21个Word型数据 ,0a8h-0d1h
db ' ' ;0d2h
dataends

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



code segment

start: mov ax,data
       mov ds,ax
           mov bx,0
           mov si,0
           mov di,0
          
           mov ax,table
           mov es,ax
          
           mov cx,21
s:   mov ax,
       mov es:,ax
           mov ax,2
           mov es:2,ax
          
          
               
           mov ax,84
           mov es:5,ax
           mov dx,86
           mov es:7,dx
          
           div word ptr ds:168
           mov es:13,ax
          
           mov ax,168
           mov es:10,ax
          
           add si,4
           add bx,16
           add di,2
           loop s
          
           mov ax,4c00h
           int 21h
code ends
end start我和小鱼老师的代码对过了,应该没有错误,但是运行完之后,只有年份显示

胖胖大头梨 发表于 2014-10-24 09:12:18

有时运行后是这样

胖胖大头梨 发表于 2014-10-24 09:16:26

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'
   ;以上是表示21年的21个字符串,0-53h
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,59827,803530,1183000,1843000,2759000,3753000,4649000,5937000
;以上是表示21年公司总收入的21个dword型数据 ,54h-0a7h
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11542,14430,15257,17800
;以上是表示21年公司雇员人数的21个Word型数据 ,0a8h-0d1h
db ' ' ;0d2h
dataends

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

code segment
start:mov ax,data

      mov ds,ax

      mov ax,table

      mov ss,ax

      mov bx,0

      mov si,0

      mov bp,0

      mov cx,21         ;bx的值始终未变,要bx有什么用。?
                                    ;哪里优化了?
                                                        ;为什么在debug中用d看不到应该有的结果?

s0:mov ax,

   mov ,ax

   add si,2

   mov ax,

   mov ,ax

   add si,2

   add bp,10h

   loop s0



   mov cx,21

   mov bp,0

   mov si,0

s1:mov ax,

   mov ,ax

   add si,2

   mov ax,

   mov ,ax

   add si,2

   add bp,10h

   loop s1



   mov cx,21

   mov bp,0

   mov si,0

s2:mov ax,

   mov ,ax

   add si,2

   add bp,10h

   loop s2



   mov cx,21

   mov bp,0

s3:mov ax,

   mov dx,

   div word ptr

   mov ,ax

   add bp,10h

   loop s3



    mov ax,4c00h

    int 21h

code ends

end start这是小鱼老师的另外一个程序,我在注释里提了三个问题。运行结果还是不对

KTMONREK 发表于 2015-4-20 21:31:36

胖胖大头梨 发表于 2014-10-24 09:16
这是小鱼老师的另外一个程序,我在注释里提了三个问题。运行结果还是不对

我也遇到同样的问题,同求解释
页: [1]
查看完整版本: 求助,实验七,年份存不了