鱼C论坛

 找回密码
 立即注册
查看: 3733|回复: 5

[技术交流] 菜鸟分享课程设计1代码,乱!

[复制链接]
发表于 2011-5-19 20:22:26 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 weixianlang 于 2011-5-20 00:18 编辑

笨鸟先飞,高手可以飞过,上代码!
  1. assume cs:fuck,ds:data,es:table

  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,45257,17800

  10. data ends

  11. stack segment
  12.   db 16 dup (0)
  13. stack ends

  14. fuck segment     
  15. start:   
  16.     mov ax,data
  17.     mov ds,ax
  18.     mov ax,0b800h
  19.     mov es,ax
  20.     mov ax,stack
  21.     mov ss,ax
  22.     mov bx,0
  23.     mov bp,0
  24.     mov si,0
  25.     mov dx,0
  26.     mov di,0           ;初始化各个值
  27.     mov cx,21          ;总循环21次
  28.    
  29. qb: push cx             ;保存总体循环次数
  30.     mov ah,7           ;设置属性
  31.     mov al,[bx]        
  32.     mov es:[bp+6],ax
  33.     mov al,[bx+1]
  34.     mov es:[bp+8],ax
  35.     mov al,[bx+2]
  36.     mov es:[bp+10],ax
  37.     mov al,[bx+3]
  38.     mov es:[bp+12],ax         ;年份进入显示区
  39.    
  40.     mov ax,54h[bx]
  41.     mov dx,56h[bx]         ;;因为是四字节,所以分AX和BX存储,刚好合除法位置
  42.     push si
  43.     mov si,1ch             ;设置收入列偏移
  44.     call toc
  45.     pop si
  46.     mov ax,0a8h[di]
  47.     push si
  48.     mov si,2eh
  49.     call toc
  50.     pop si
  51.     ;下面开始求平均收入
  52.     mov ax,54h[bx]               ;因为是四字节,所以分AX和BX存储,刚好合除法位置
  53.     mov dx,56h[bx]               
  54.     mov cx,word ptr [di+0a8h]    ;除数
  55.     call divdw
  56.     push si
  57.     mov si,3ch                 ;设置列偏移
  58.     call toc
  59.     pop si
  60.     add bp,0a0h                ;这里为换行做准备,下面都是
  61.     add bx,4
  62.     add di,2
  63.     pop cx
  64.     loop qb
  65.     mov ax,4c00h
  66.     int 21h

  67. toc:                          ;子程序
  68. push bx         
  69. push di
  70. mov di,0            ;初始化di,我用di作为存储除法次数,后面出栈要用到
  71. mov bx,10d          ;设置除数为10d
  72. t1:push ax          ;从这里开始
  73. mov ax,dx
  74. mov dx,0
  75. div bx
  76. mov cx,ax
  77. pop ax
  78. div bx
  79. add dx,30h
  80. push dx
  81. mov dx,cx
  82. mov cx,ax
  83. inc di
  84. jcxz ok
  85. jmp short t1         ;到这里,是解决除法溢出那个子程序
  86. ok:mov cx,di          ;把次数传送给cx,下面出栈要用
  87. t2:pop dx            ;开始出栈罗,
  88. mov dh,7
  89. mov es:[bp+si],dx    ;开始送如显示缓冲区
  90. add si,2            ;列偏移往前推
  91. loop t2
  92. pop di
  93. pop bx
  94. mov dx,0
  95. ret               ;执行完毕
  96.    
  97.    
  98. divdw:push bx     ;隔了几天做出来,都忘了这里的存在了,解决除法溢出的子程序
  99.       push cx     ;用来计算平均值的
  100.       push ax
  101.       mov ax,dx
  102.       mov dx,0
  103.       div cx
  104.       mov bx,ax
  105.       pop ax
  106.       div cx
  107.       mov cx,dx
  108.       mov dx,bx
  109.       pop cx
  110.       pop bx      
  111.       ret


  112.    
  113. fuck ends
  114. end start
复制代码

                               
登录/注册后可看大图
   

评分

参与人数 2荣誉 +1 鱼币 +5 收起 理由
loop + 3 再接再厉,鱼C有你更精彩~
china0008 + 1 + 2 不错,阶段性胜利。继续努力。加油!~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-19 20:37:27 | 显示全部楼层
祝贺你出师了。我还要努力呀。,加油哦:D
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-19 20:48:31 | 显示全部楼层
回复 weixianlang 的帖子

这只是一个小小的阶段而已啦,只不过弄了几天,终于弄好了,有点兴奋哈哈,加油!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-19 20:54:29 | 显示全部楼层
额,是做的题目吗?问题是什么,我也做做看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-19 20:55:21 | 显示全部楼层
回复 王子 的帖子

书里的课程设计1.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-23 01:50:40 | 显示全部楼层
哥们儿,你学得这么快啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-19 19:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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