鱼C论坛

 找回密码
 立即注册
查看: 5623|回复: 4

王爽-实验7问题求助

[复制链接]
发表于 2021-7-15 22:05:50 | 显示全部楼层 |阅读模式

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

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

x
  1. assume cs:code
  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.         dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  7.         dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000


  8.         dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
  9.         dw 11542,14430,15257,17800
  10. data ends

  11. table segment
  12.         db 21 dup ('year summ ne ?? ')
  13. table ends
  14. ;First we have to move the data from data segment to table just as the format below
  15. ;year(4byte)(20H)income(4byte)(20H)Number of employees(2byte)(20H)per capita income(2byte)(20H)
  16. ;Example
  17. ;1975  16 3 23

  18. code segment
  19. start:


  20. mov ax,data
  21. mov ds,ax       ;Later we will move data from it

  22. mov ax,table
  23. mov es,ax       ;Later we will move data into it

  24. xor si,si       ;empty the register si
  25. xor bx,bx       ;empty bx
  26. mov cx,21       ;the data is from 1975-1995 so we have to loop for 21 times

  27. s:              ;the purpose of the loop is to move the data(year) from data segment into table segment
  28. mov ax,ds:[bx]
  29. mov es:[si],ax
  30. add bx,2
  31. mov ax,ds:[bx]
  32. mov es:[si+2],ax
  33. add bx,2
  34. add si,10H
  35. loop s

  36. mov cx,21
  37. xor si,si
  38. xor bp,bp
  39. mov bp,5
  40. s1:             ;the purpose of the loop is to move the data(income) from data segment into table segment
  41. mov ax,ds:[bx]
  42. mov es:[si+bp],ax
  43. add bx,2
  44. mov ax,ds:[bx]
  45. mov es:[si+bp+2],ax

  46. add bx,2
  47. add si,10H

  48. loop s1




  49. xor si,si
  50. xor bp,bp
  51. mov bp,0AH
  52. mov cx,21
  53. s2:            ;the purpose of the loop is to move the data(Number of employees) from data segment into table segment
  54. mov ax,ds:[bx]
  55. mov es:[si+bp],ax
  56. add bx,2
  57. add si,10H
  58. loop s2

  59. mov si,000EH
  60. mov bx,168
  61. xor di,di
  62. mov di,84
  63. mov cx,21
  64. s3:         ;the purpose of the loop is to div the data(income/Number of employees) from data segment into table segment

  65. mov ax,ds:[di]
  66. add di,2
  67. mov dx,ds:[di]
  68. div word ptr ds:[bx]
  69. add bx,2
  70. mov es:[bp+13],ax
  71. loop s3

  72. mov ax,4C00H    ;end the programme
  73. int 21H
  74. code ends
  75. end start
复制代码

代码运行时报错divide overflow
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-7-16 09:41:23 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-5 21:50:01 | 显示全部楼层
我只能说代码不是你写的吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-20 14:37:52 | 显示全部楼层
你的诉求是什么
哪里有问题啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-20 14:38:23 | 显示全部楼层
  1. ;实验七


  2. assume cs:codesg

  3. data segment

  4. db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
  5. db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
  6. db '1993','1994','1995'
  7. dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  8. dd 345980,590827,803530,1183000,1843000,2759000,3753000,1649000,5937000
  9. dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
  10. dw 11542,14430,15257,17800

  11. data ends

  12. table segment

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

  14. table ends


  15. codesg segment
  16.                
  17. start:        mov ax,data
  18.                 mov ds,ax
  19.                 mov ax,table
  20.                 mov es,ax
  21.                 mov bx,0
  22.                 mov si,0
  23.                 mov di,0
  24.                 mov cx,21
  25.                
  26.         s:        mov ax,[bx+0+si]
  27.                 mov es:[bp+0],ax
  28.                 mov ax,[bx+2+si]
  29.                 mov es:[bp+2],ax
  30.                
  31.                 mov ax,[bx+84+si]
  32.                 mov es:[bp+5],ax
  33.                 mov ax,[bx+86+si]
  34.                 mov es:[bp+7],ax
  35.                
  36.                 mov ax,[bx+168+di]
  37.                 mov es:[bp+10],ax
  38.                
  39.                 mov dx,[bx+86+si]
  40.                 mov ax,[bx+84+si]
  41.                 div word ptr [bx+168+di]
  42.                 mov word ptr es:[bp+13],ax
  43.                 add si,4
  44.                 add di,2
  45.                 add bp,16
  46.        
  47.                 loop s
  48.                
  49.                 mov ax,4C00h
  50.                 int 21h
  51.        
  52. codesg ends

  53. end start
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-8 01:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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