鱼C论坛

 找回密码
 立即注册
查看: 2006|回复: 3

[已解决]大佬!!!!【萌新求救】

[复制链接]
发表于 2019-8-2 13:18:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是王爽老师汇编语言那本书里的实验七,要求是将data段里的数据按格式写到table段中,并计算21年中的人均收入写入表格。我按照要求写完之后编译器发现了四处错误,分别在第37、49、56、62行,但是我不明白为什么,求大佬帮我看看?谢谢大佬!!!
assume cs:code,ds:data,ss:stack
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个字符串
    dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
    dd 345980,590827,803530,1183000,1843000,2579000,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数据
  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
  
  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 si,0
         mov bx,0
         mov cx,21
       l:push cx
         mov di,0
         mov cx,4
37      y:mov byte ptr es:[bx+di],[si]
           inc di
           inc si
           loop y
         add bx,16
         pop cx
         loop l
         
         mov si,43
         mov bx,0
         mov di,5
         mov cx,21
49     i:mov dword ptr es:[bx+di],[si]
         add bx,16
         loop i
         
         mov si,127
         mov bx,0
         mov di,0ah
56     m:mov word ptr es:[bx+di],[si]
         add bx,16
         loop m
         
         mov bx,0
         mov cx,21
62     p:mov ax,es:[bx+5]
         mov dx,es:[bx+7]
         div word ptr es:[bx+0ah]
         mov es:[bx+0dh],ax
         add bx,16
         loop p
         mov ax,4c00h
         int 21h
  code ends
end start
最佳答案
2019-8-2 15:10:21
  1. assume cs:code,ds:data,ss:stack
  2. data segment
  3.     db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
  4.     db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
  5.     db '1993','1994','1995'                                          
  6.     ; 以上是表示21年的21个字符串
  7.     dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  8.     dd 345980,590827,803530,1183000,1843000,2579000,3753000,4649000,5937000
  9.     ; 以上是表示21年公司总收入的21个dword数据
  10.     dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
  11.     dw 11542,14430,15257,17800   
  12.     ; 以上是21年公司雇员人数的21个word数据
  13.   data ends
  14.   
  15.   table segment
  16.     db 21 dup ('year summ ne ?? ')
  17.   table ends
  18.   
  19.   stack segment stack
  20.     dw 0,0,0,0,0,0,0,0
  21.   stack ends
  22.   
  23.   code segment
  24.    start:mov ax,data
  25.          mov ds,ax
  26.          mov ax,table
  27.          mov es,ax
  28.          xor si,si
  29.          xor bx,bx
  30.          mov cx,21
  31.        l:push cx
  32.          mov di,bx
  33.          mov cx,4
  34.          rep movsb
  35.          add bx,16
  36.          pop cx
  37.          loop l
  38.          
  39.          xor bx,bx
  40.          mov cx,21
  41.        i:mov di,5
  42.          add di,bx
  43.          movsw
  44.          movsw
  45.          add bx,16
  46.          loop i
  47.          
  48.          xor bx,bx
  49.          mov cx,21
  50.        m:mov di,0ah
  51.          add di,bx
  52.          movsw
  53.          add bx,16
  54.          loop m
  55.          
  56.          xor bx,bx
  57.          mov cx,21
  58.        p:mov ax,es:[bx+5]
  59.          mov dx,es:[bx+7]
  60.          div word ptr es:[bx+0ah]
  61.          mov es:[bx+0dh],ax
  62.          add bx,16
  63.          loop p
  64.          mov ax,4c00h
  65.          int 21h
  66.   code ends
  67. end start
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-2 15:10:21 | 显示全部楼层    本楼为最佳答案   
  1. assume cs:code,ds:data,ss:stack
  2. data segment
  3.     db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
  4.     db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
  5.     db '1993','1994','1995'                                          
  6.     ; 以上是表示21年的21个字符串
  7.     dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  8.     dd 345980,590827,803530,1183000,1843000,2579000,3753000,4649000,5937000
  9.     ; 以上是表示21年公司总收入的21个dword数据
  10.     dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
  11.     dw 11542,14430,15257,17800   
  12.     ; 以上是21年公司雇员人数的21个word数据
  13.   data ends
  14.   
  15.   table segment
  16.     db 21 dup ('year summ ne ?? ')
  17.   table ends
  18.   
  19.   stack segment stack
  20.     dw 0,0,0,0,0,0,0,0
  21.   stack ends
  22.   
  23.   code segment
  24.    start:mov ax,data
  25.          mov ds,ax
  26.          mov ax,table
  27.          mov es,ax
  28.          xor si,si
  29.          xor bx,bx
  30.          mov cx,21
  31.        l:push cx
  32.          mov di,bx
  33.          mov cx,4
  34.          rep movsb
  35.          add bx,16
  36.          pop cx
  37.          loop l
  38.          
  39.          xor bx,bx
  40.          mov cx,21
  41.        i:mov di,5
  42.          add di,bx
  43.          movsw
  44.          movsw
  45.          add bx,16
  46.          loop i
  47.          
  48.          xor bx,bx
  49.          mov cx,21
  50.        m:mov di,0ah
  51.          add di,bx
  52.          movsw
  53.          add bx,16
  54.          loop m
  55.          
  56.          xor bx,bx
  57.          mov cx,21
  58.        p:mov ax,es:[bx+5]
  59.          mov dx,es:[bx+7]
  60.          div word ptr es:[bx+0ah]
  61.          mov es:[bx+0dh],ax
  62.          add bx,16
  63.          loop p
  64.          mov ax,4c00h
  65.          int 21h
  66.   code ends
  67. end start
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-2 16:33:21 | 显示全部楼层

厉害厉害 谢谢谢谢 我还有好多不会的呢。。。。你这里面好多指令都好高级哦。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-2 16:42:38 | 显示全部楼层
nihility_z 发表于 2019-8-2 16:33
厉害厉害 谢谢谢谢 我还有好多不会的呢。。。。你这里面好多指令都好高级哦。。。。

      用 8086 汇编,那还是 30 多年前的事了,很久都不用了,差不多快忘光了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 17:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表