鱼C论坛

 找回密码
 立即注册
查看: 4091|回复: 8

[作品展示] 汇编 课程设计1 交作业啦!

[复制链接]
发表于 2012-11-6 19:37:53 | 显示全部楼层 |阅读模式

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

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

x
  1. [hide]谢谢您的回复~~嘿嘿!![/hide]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. ;======================================================================
  7. d2 dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  8. dd 456980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
  9. ;======================================================================
  10. d3 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. ;======================================================================
  13. d4 dw 20 dup (0)
  14. data ends
  15. ;======================================================================
  16. stack segment
  17. dw 20 dup (0)
  18. stack ends
  19. ;======================================================================
  20. ;======================================================================
  21. code segment
  22. ;======================================================================

  23. strat: mov ax,data
  24. mov ds,ax
  25. mov ax,0b800h
  26. mov es,ax
  27. mov ax,stack
  28. mov ss,ax
  29. mov sp,20
  30. ;-----------------初始化寄存器
  31. mov bx,160
  32. mov si,0
  33. mov di,0
  34. ;-----------------DI指向显存
  35. mov bp,offset d2
  36. ;-----------------BP指向D2
  37. mov cx,21
  38. ;======================================================================
  39. ;显示日期
  40. zhuxh: call riqi


  41. ;======================================================================
  42. ;显示收入

  43. push di
  44. xor di,di
  45. add di,30
  46. call shouru
  47. pop di
  48. ;----------------------写人数间距加20
  49. ;======================================================================
  50. ;显示人数
  51. push di
  52. xor di,di
  53. add di,60
  54. call renshu
  55. pop di
  56. ;----------------------与平均娄间距加20

  57. ;======================================================================
  58. ;显示平均
  59. push di
  60. xor di,di
  61. add di,90
  62. call pingjun
  63. call dtoc
  64. ;----------------------结果转ASCII码
  65. call show_str
  66. pop di
  67. ;----------------------显示
  68. ;======================================================================
  69. add bx,160
  70. mov di,0
  71. add si,2
  72. add bp,4
  73. loop zhuxh

  74. mov ah,01
  75. int 21h



  76. ;========= ====================================================
  77. ;=====================================================================
  78. ;=====================显示show_str=======================================
  79. show_str:
  80. push bp
  81. push cx
  82. mov bp,offset d4
  83. xssj: mov cl,ds:[bp]
  84. mov ch,0
  85. inc bp
  86. jcxz xswk
  87. mov es:[bx+di],cl
  88. inc di
  89. mov es:[bx+di],2
  90. inc di
  91. jmp xssj
  92. xswk: pop cx
  93. pop bp

  94. ret
  95. ;=====================================================================
  96. ;========================转换DTOC=======================================
  97. dtoc: push si
  98. push di
  99. push bp
  100. push cx
  101. push bx
  102. mov bx,10
  103. mov si,0
  104. ;-----------保存数据
  105. d_hys: mov bp,ax
  106. ;-----------转移L位
  107. mov ax,dx
  108. xor dx,dx
  109. ;-----------H转AX D清零
  110. div bx
  111. ;-----------H/10
  112. mov di,ax
  113. ;-----------H结果=DI
  114. mov ax,bp
  115. ;-----------L重赋给AX
  116. div bx
  117. ;-----------REG+L/10 DX=余娄 H结果=DI
  118. ;=========== L结果AX

  119. mov cx,bp
  120. jcxz d_wk
  121. ;-----------余数为空jmp 到出栈
  122. add dx,30h
  123. push dx
  124. inc si
  125. xor dx,dx
  126. ;------------余数+30H=ASCII
  127. mov dx,di
  128. ;------------H重赋给DX
  129. jmp d_hys
  130. ;------------判断H为0,不为0循环
  131. ;============ 为0做L位除法
  132. d_wk: mov cx,si
  133. ;------------设定循环数
  134. jcxz d_ecs
  135. ;------------CX为0 jmpECS
  136. mov si,offset d4
  137. ;------------d4数据给SI
  138. d_cz: pop ds:[si]
  139. inc si
  140. loop d_cz
  141. ;-------------循环出栈

  142. d_ecs: pop bx
  143. pop cx
  144. d_2: pop bp
  145. pop di
  146. pop si
  147. ret
  148. ;=====================================================================
  149. ;==========================除法divdd=====================================
  150. divdd: push si
  151. push bp
  152. push bx
  153. push cx
  154. ;-------------保存数据
  155. mov bp,ax
  156. ;-------------L转BP
  157. mov ax,dx
  158. mov dx,0
  159. ;-------------H给AX
  160. div bx
  161. ;-------------H/10
  162. mov si,ax
  163. ;-------------H结果给SI
  164. mov ax,bp
  165. ;-------------L重赋给AX
  166. div bx
  167. mov dx,si
  168. ;-------------H赋值给DX
  169. pop cx
  170. pop bx
  171. pop bp
  172. pop si
  173. ret
  174. ;====================================================================
  175. ;==========================日期riqi=====================================
  176. riqi: push si
  177. ;------------------保存数据
  178. ;push
  179. add si,si
  180. mov ax,ds:[si]
  181. mov ds:0d2h,ax
  182. mov ax,ds:2[si]
  183. mov ds:0d4h,ax
  184. mov ds:0d6h,0
  185. call show_str
  186. pop si
  187. ret
  188. ;====================================================================
  189. ;==========================收入shouru==================================
  190. shouru: push si
  191. push bp
  192. ;------------------保存数据
  193. mov si,offset d4
  194. ;------------------d4=si
  195. mov ax,ds:[bp]
  196. mov dx,ds:2[bp]
  197. ;-------------------AX&DX赋值
  198. call dtoc
  199. call show_str
  200. ;-------------------转换ASCII&显示

  201. pop bp
  202. pop si
  203. ret
  204. ;====================================================================
  205. ;==========================人数renshu===================================
  206. renshu: push si
  207. ;------------------保存数据
  208. ;mov dx,offset d3
  209. mov ax,ds:0a8h[si]
  210. mov dx,0
  211. call dtoc
  212. call show_str
  213. pop si
  214. ;===================================================================
  215. ;==========================平均pingjun=================================
  216. pingjun: push si
  217. push bx
  218. push di
  219. push bp
  220. ;-------------------;保存数据
  221. mov ax,ds:[bp]
  222. mov dx,ds:2[bp]
  223. ;-------------------DX&AX赋值 被除数
  224. mov bx,ds:0A8H[si]
  225. ;-------------------BX赋值 除数
  226. call divdd


  227. pop bp
  228. pop di
  229. pop bx
  230. pop si
  231. ret

  232. code ends
  233. end strat
复制代码

未命名.jpg

小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-11-6 19:39:11 | 显示全部楼层
搞了几天~~哈哈!!!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-18 23:35:43 | 显示全部楼层
看了一下  挺厉害的吗   我是初学者  里面的代码也认识的不太全
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-2-16 18:04:07 | 显示全部楼层
楼主,我编译怎么通不过啊,提示99、197有无效的指令操作:L
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-2-17 20:28:32 | 显示全部楼层
大牛 您好 崇拜啊  
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-2-18 11:26:40 | 显示全部楼层

多谢指点!没有指明数据长度,所以报错。我在EMU8086下写的,疏忽疏忽
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-23 18:42:16 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-6-16 00:11:32 | 显示全部楼层
我真的很感悟……  这编码 看起来 就漂亮  唉我的 编码 自己都看着晕:funk::funk:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-9-5 20:07:57 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-19 16:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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