鱼C论坛

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

[争议讨论] 课件设计1的问题

[复制链接]
发表于 2011-10-19 16:23:00 | 显示全部楼层 |阅读模式

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

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

x
  1. assume cs:code,ds:data

  2. data segment
  3. db '1975','1976','1977','1978','1979','1980','1981'
  4. db '1982','1983','1984','1985','1986','1987','1988'
  5. db '1989','1990','1991','1992','1993','1994','1995'
  6. ;年份(0-53h)
  7. dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  8. dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
  9. ;收入,起始单元:(54-A7h)
  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. ;人数,起始单元:(A8)
  13. data ends

  14. table segment
  15. db 21 dup ('year summ ne ?? ')
  16. table ends

  17. code segment
  18. start:mov ax,data
  19. mov ds,ax
  20. mov ax,0b800h
  21. add ax,0ah
  22. mov es,ax

  23. mov di,0
  24. mov si,0
  25. mov cx,21
  26. s:push cx
  27. push si
  28. push di
  29. mov ah,7;设置颜色属性
  30. mov al,[si]
  31. mov es:[di+0],ax;年份第一字节和属性
  32. mov al,[si+1]
  33. mov es:[di+2],ax;年份第二字节和属性
  34. mov al,[si+2]
  35. mov es:[di+4],ax ;年份第三字节和属性
  36. mov al,[si+3]
  37. mov es:[di+6],ax;年份第四字节和属性

  38. mov ax,[si+54h]
  39. mov dx,[si+56h]
  40. call gy;显示收入

  41. mov ax,[si+0a8h]
  42. mov dx,0
  43. call gy;显示人数

  44. mov ax,[si+54h]
  45. mov dx,[si+56h];被除数
  46. mov cx,[bx+0ah];除数
  47. call divdw;求平均数
  48. call gy;显示平均数

  49. pop di
  50. pop si
  51. pop cx
  52. add si,4
  53. add di,160
  54. loop s

  55. mov ax,4c00h
  56. int 21h

  57. gy:mov bp,0
  58. gy1:push ax
  59. mov ax,dx
  60. mov dx,0
  61. mov bx,10
  62. div bx
  63. mov cx,ax
  64. pop ax
  65. div bx
  66. add dx,30h;把余数加30H变成字符
  67. push dx;字符入栈
  68. inc bp;记录入栈的数量
  69. mov dx,cx;把高16位的值给DX
  70. mov cx,ax;把商给cx,
  71. jcxz ok1
  72. jmp gy1
  73. ok1:mov cx,bp
  74. gy2:pop dx
  75. mov dh,7;因为pop dx的值一定小于除数10,所以dh是0
  76. mov es:[di],dx
  77. add di,2
  78. loop gy2
  79. add di,40;空了20格

  80. ret

  81. divdw:push ax
  82. mov ax,dx
  83. mov dx,0
  84. div cx;高16位的计算,相当于ax=0fh,dx=0h
  85. mov bx,ax;相当于int(H/N)*65536,商给bx
  86. pop ax
  87. div cx;想当于,ax=4240h,dx=5(rem(H/n)*65536)
  88. mov cx,dx;cx相当于余数
  89. mov dx,bx;dx的值就是,int(H/N)*65536
  90. ;ax的值就是,[rem(H/n)*65536+L]/n
  91. ret

  92. code ends

  93. end start
复制代码

上面是我写的课件设计1的代码,显示错误啊,谁能帮帮我哪里出错了啊?



是显示的截图

是显示的截图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-10-19 16:23:41 | 显示全部楼层
:P谁能帮帮我啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-10-20 10:55:49 | 显示全部楼层
  1. assume cs:code,ds:data

  2. data segment
  3.   db '1975','1976','1977','1978','1979','1980','1981'
  4.   db '1982','1983','1984','1985','1986','1987','1988'
  5.   db '1989','1990','1991','1992','1993','1994','1995'
  6.   ;年份(0-53h)
  7.   dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  8.   dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
  9.   ;收入,起始单元:(54-A7h)
  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.   ;人数,起始单元:(A8)
  13. data ends

  14. code segment
  15. start:mov ax,data
  16.        mov ds,ax
  17.        mov ax,0b800h
  18.        add ax,0ah
  19.        mov es,ax

  20.        mov bx,0
  21.            mov di,0
  22.        mov si,0
  23.        mov cx,21
  24.      s:push cx
  25.        push si
  26.        push di
  27.            push bx
  28.        mov ah,7;设置颜色属性
  29.        mov al,[si]
  30.        mov es:[di+0],ax;年份第一字节和属性
  31.        mov al,[si+1]
  32.        mov es:[di+2],ax;年份第二字节和属性
  33.        mov al,[si+2]
  34.        mov es:[di+4],ax ;年份第三字节和属性
  35.        mov al,[si+3]
  36.        mov es:[di+6],ax;年份第四字节和属性
  37.            add di,40;空了20格

  38.        mov ax,[si+54h]
  39.        mov dx,[si+56h]
  40.        call gy;显示收入

  41.        mov ax,[bx+0a8h]
  42.        mov dx,0
  43.        call gy;显示人数

  44.            mov ax,[si+54h]
  45.        mov dx,[si+56h];被除数
  46.        mov cx,[bx+0a8h];除数
  47.            call divdw;求平均数
  48.            call gy;显示平均数

  49.            pop bx
  50.            pop di
  51.            pop si
  52.            pop cx
  53.            add bx,2
  54.            add si,4
  55.            add di,160
  56.            loop s

  57.            mov ax,4c00h
  58.            int 21h

  59.         gy:push di
  60.            push bx
  61.            mov bp,0
  62.    gy1:push ax
  63.            mov ax,dx
  64.        mov dx,0
  65.        mov bx,10
  66.        div bx
  67.        mov cx,ax
  68.        pop ax
  69.        div bx
  70.        add dx,30h;把余数加30H变成字符
  71.            push dx;字符入栈
  72.            inc bp;记录入栈的数量
  73.            mov dx,cx;把高16位的值给DX
  74.            mov cx,ax;把商给cx,
  75.            jcxz ok1
  76.            jmp gy1
  77.     ok1:mov cx,bp
  78.         gy2:pop dx
  79.             mov dh,7;因为pop dx的值一定小于除数10,所以dh是0
  80.             mov es:[di],dx
  81.             add di,2
  82.             loop gy2
  83.             pop bx
  84.                 pop di
  85.                 add di,40;空了20格
  86.                 ret

  87.   divdw:push ax
  88.             mov ax,dx
  89.             mov dx,0
  90.                 div cx;高16位的计算,相当于ax=0fh,dx=0h
  91.                 mov bx,ax;相当于int(H/N)*65536,商给bx
  92.                 pop ax
  93.                 div cx;想当于,ax=4240h,dx=5(rem(H/n)*65536)
  94.                 mov cx,dx;cx相当于余数
  95.                 mov dx,bx;dx的值就是,int(H/N)*65536
  96.                 ;ax的值就是,[rem(H/n)*65536+L]/n
  97.                 ret
  98. code ends

  99. end start
复制代码
哈哈,终于写对了,分享下 我的代码,
我X啊!实验10加上课程设计1花费了我好长的时间
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-10-21 18:10:11 | 显示全部楼层
谁看到了,说说这么结帖的啊?
都不知道,:dizzy:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-13 00:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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