. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->数据处理的两个基本问题
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验七   自己动手做的  [已解决] 回复[ 9次 ]   点击[ 399次 ]  
ministar
[帖 主]   [ 发表时间:2012-01-18 13:28 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:0
注册日期:2012-01-03 21:14
花了半个晚上,感觉头昏昏的,看到这题的时候还有点思路,但还不清晰,,,嗯,本着自己动手的精神,坚持下来写出代码,忘朋友们指点小弟哈啊~ 看看有什么问题,苦恼中  程序代码如下:


assume cs:codesg,ds:data,es:table

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'

  dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  dd 345980,590821,803530,1183000,1843000,2759000,3753000,4649000,5937000

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

data ends

table segment

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

table ends

codesg segment

start: mov ax,data
       mov ds,ax
       mov ax,table
       mov es,ax
       mov bx,0
       mov si,0
   S1: mov cx,21
       mov dx,cx
    s: mov al,ds:[bx+si]
       mov es:[bx+si],al
       inc si
       mov cx,4
       loop s
    r: mov ax,ds:[54h+si]
       mov es:[5h+si],ax
       add si,2
       mov cx,2
       loop r

       mov ax,ds:[00a6h+si]
       mov es:[000ah+si],ax

       mov ax,ds:[54h+si]
       mov dx,ds:[56h+si]
       div word ptr ds:[00a6h+si]
       mov es:[000dh+si],ax

       add bx,16
       mov cx,dx
       loop S1

codesg ends

end  start

写完后运行程序,发现程序进入死循环了,单步调试发现到第一个循环的“loop s"的时候就没反应了,估计进入死循环了吧。。。可能还有其它的问题什么的。。。可是夜深了,捣鼓了一下看不早了,头昏眼花了也,就上炕了,呵呵。。   现在发出来,忘指点下啊,,先谢谢了!!!
tomato
[第1楼]   [ 回复时间:2012-01-18 16:04 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
还是楼主自己再看看吧。
ministar
[第2楼]   [ 回复时间:2012-01-18 16:19 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:0
注册日期:2012-01-03 21:14
哎,。。。。。着鸡啊,朋友!
tomato
[第3楼]   [ 回复时间:2012-01-20 06:24 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
着急也不行,结果不是最重要的,过程的经历才会让你真正的成长,不是吗?
ministar
[第4楼]   [ 回复时间:2012-01-20 14:37 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:0
注册日期:2012-01-03 21:14
回复:[第3楼]
------------------
哥,你说的很对!恩,谢谢你啊~

哎,这几天吃也吃不香,睡也睡不好,上班也没精神。。。总想快点把这个题目解决掉,没错,过程和动手会让自己获益更多,小弟也经常关照番茄哥你哦,呵呵。   恩,本来上来是想看看还有没有回复的没有就关掉吧,那几天也确实郁闷了不少,不过就在刚才小弟不才,终于。。。嘿嘿。ok了应该!
ministar
[第5楼]   [ 回复时间:2012-01-20 14:38 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:0
注册日期:2012-01-03 21:14
回复:[第3楼]
------------------
sorry,不是关照,是关注哈,嘿嘿~!
ministar
[第6楼]   [ 回复时间:2012-01-20 14:41 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:0
注册日期:2012-01-03 21:14
俺刚做的,嘻嘻:
assume cs:codesg,ds:data,es:table

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'

  dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  dd 345980,590821,803530,1183000,1843000,2759000,3753000,4649000,5937000

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

data ends

table segment

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

table ends

codesg segment

start: mov ax,data
       mov ds,ax
       mov ax,table
       mov es,ax
       mov bx,0
       mov si,0
       mov di,0
       mov cx,21
    s: mov al,ds:[0+si]
       mov es:[bx+0],al
       mov al,ds:[1+si]
       mov es:[1+bx],al
       mov al,ds:[2+si]
       mov es:[bx+2],al
       mov al,ds:[3+si]
       mov es:[bx+3],al
       
       mov ax,ds:[84+si]
       mov es:[bx+05],ax
       mov ax,ds:[86+si]
       mov es:[bx+07],ax

       mov ax,ds:[168+di]
       mov es:[bx+000ah],ax
       
       
       mov ax,ds:[84+si]
       mov dx,ds:[86+si]
       div word ptr ds:[168+di]
       mov es:[bx+000dh],ax

       add si,4
       add di,2
       add bx,16
       loop s

       mov ax,4c00h
       int 21h

codesg ends

end    start
tomato
[第7楼]   [ 回复时间:2012-01-20 15:07 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
6楼程序写的不错,很清晰。恭喜了!这印证了一个道理,坚持就是胜利,功夫不负有心人!
tomato
[第8楼]   [ 回复时间:2012-01-20 15:07 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
另外,谢谢楼主的关注!
ministar
[第9楼]   [ 回复时间:2012-01-20 22:29 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:0
注册日期:2012-01-03 21:14
此贴由 贴主 于 [ 2012-01-20 22:29 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved