CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  汇编语言

请帮忙改下程序

楼主cauliflower1()2005-06-02 13:31:32 在 其他开发语言 / 汇编语言 提问

题目要求   :输入每个学生两门成绩:   C语言,汇编,并计算平均成绩,;列表显示.  
  出错在   求平均成绩   AAVG的那段程序.  
  请能改的慷慨出手改下  
  DATA         SEGMENT  
  RGST   STRUC  
                  NAM   DB   18,?,'                                   '  
                  SUCCS   DB   4,?,'       '  
                  SUCCS1   DB   4,?,'       '  
                  ASCVAL   DB   4,?,'       '  
                  PS   DB   0AH,0DH,'$'  
  RGST         ENDS  
                  PRNAME   DB     'Enter   name:$'  
                  PRSUC     DB     'enter     succes   of   yuyan:$'  
                  PRSUC1   DB     'enter     succes   of   huibian:$'  
                  PROMPT   DB   0DH,'NAME                             SCORE1   SCORE2   AVERAGE',0DH,0AH,'$'  
  S   RGST   20H   DUP(<>)  
                  MULFACT   dw   1  
                  BINVAL   dw   0  
  TOT   DB   4,?,'000'  
  DATA   ENDS  
  CODE   SEGMENT    
  ASSUME   CS:CODE,DS:DATA  
  START:  
  MOV   AX,DATA  
  MOV   DS,AX  
  MOV   ES,AX  
  MOV   BX,0  
  AGAIN:     LEA   SI,S  
  AGAIN1:  
  LEA   DX,PRNAME  
                  CALL   LDSPLY  
                  LEA   DX,[SI].NAM  
  CALL   INPUT  
                  CMP   [SI].NAM[2],0DH  
                  JE   GOON  
                  MOV   CX,20  
  LEA   DI,[SI].NAM  
  CALL   REPLAC  
  LEA   DX,PRSUC  
  CALL   LDSPLY  
  LEA   DX,[SI].SUCCS  
  CALL   INPUT  
                  MOV   CX,6  
                  LEA   DI,[SI].SUCCS  
                  CALL   REPLAC  
                  LEA   DX,PRSUC1  
                  CALL   LDSPLY  
                  LEA   DX,[SI].SUCCS1  
  CALL   INPUT  
  MOV   CX,6  
                  LEA   DI,[SI].SUCCS1  
                  CALL   REPLAC  
   
  CALL   AAVG  
   
    ADD   SI,TYPE   S  
  CALL   LSPACE  
  INC   BX  
  JMP   AGAIN1  
  GOON:       LEA   DX,PROMPT  
  CALL   LDSPLY  
  MOV   CX,BX  
  LEA   SI,S  
  CLRPR:  
  MOV   WORD   PTR   [SI].NAM,2020H  
  MOV   WORD   PTR   [SI].SUCCS,2020H  
  MOV   WORD   PTR   [SI].SUCCS1,2020H  
                  MOV   WORD   PTR   [SI].ASCVAL,2020H  
  ADD   SI,TYPE   S  
                  LOOP   CLRPR  
  MOV   CX,BX  
  LEA   DX,S.NAM[1]  
  DISPLY:   CALL   LDSPLY  
                  ADD   DX,TYPE   S  
  LOOP   DISPLY  
  MOV   AH,4CH  
  INT   21H  
  LDSPLY     PROC  
  MOV   AH,09H  
  INT   21H  
  RET  
  LDSPLY ENDP  
  INPUT   PROC  
  MOV   AH,0AH  
                  INT   21H  
                  RET  
  LSPACE:MOV   DL,0AH  
                  MOV   AH,02H  
                  INT   21H  
                  RET  
  INPUT       ENDP  
  REPLAC   PROC  
  CLD  
  MOV   AL,0DH  
  REPNZ   SCASB  
  MOV   BYTE   PTR[DI-1],20H  
  RET  
  REPLAC     ENDP  
  AAVG   PROC  
          XOR   AX,AX  
  MOV   AL,[SI].SUCCS[4]  
  ADD   AL,[SI].SUCCS1[4]  
  AAA  
  MOV   TOT+4,AL  
  MOV   TOT+3,AH  
  MOV   AL,[SI].SUCCS[3]  
  ADD   AL,[SI].SUCCS1[3]  
  AAA  
  ADD   TOT+3,AL  
  MOV   TOT+2,AH  
  MOV   AL,[SI].SUCCS[2]  
  ADD   AL,[SI].SUCCS1[2]  
  AAA  
  ADD   TOT+2,AL                                                                     ;+  
  XOR   DX,DX  
  MOV   AL,TOT+4  
  AND   AX,000FH  
  MUL   MULFACT  
  ADD   BINVAL,AX  
  MOV   AX,MULFACT  
  MUL   DX  
  MOV   MULFACT,AX  
  MOV   AL,TOT+3  
  AND   AX,000FH  
  MUL   MULFACT  
  ADD   BINVAL,AX  
  MOV   AX,MULFACT  
  MUL   DX  
  MOV   MULFACT,AX  
  MOV   AL,TOT+2  
  AND   AX,000FH  
  MUL   MULFACT  
  ADD   BINVAL,AX                                                       ;  
  MOV   CX,0010    
  MOV   AX,BINVAL  
  B20:    
  CMP   AX,CX  
  JB     B30  
  XOR   DX,DX  
  DIV   CX  
  OR     DL,30H  
  MOV   [SI].ASCVAL[4],DL  
  CMP   AX,CX  
  JB     B301  
  XOR   DX,DX  
  DIV   CX  
  OR     DL,30H  
  MOV   [SI].ASCVAL[3],DL  
  CMP   AX,CX  
  JB     b302  
  XOR   DX,DX  
  DIV   CX  
  OR     DL,30H  
  MOV   [SI].ASCVAL[2],DL  
  B30:  
  OR     AL,30H  
  MOV   [SI].ASCVAL[4],AL  
  RET  
  B301:  
  OR     AL,30H  
  MOV   [SI].ASCVAL[3],AL  
  RET  
  B302:  
  OR     AL,30H  
  MOV   [SI].ASCVAL[2],AL  
  RET  
  AAVG   ENDP  
  CODE         ENDS    
  END   START  
  问题点数:10、回复次数:3Top

1 楼cauliflower1()回复于 2005-06-02 14:03:04 得分 0

DATA         SEGMENT  
  RGST   STRUC  
                  NAM   DB   18,?,'                                   '  
                  SUCCS   DB   4,?,'       '  
                  SUCCS1   DB   4,?,'       '  
  ASCVAL   DB   4,?,'       '  
    PS   DB   0AH,0DH,'$'  
  RGST ENDS  
                  PRNAME   DB     'Enter   name:$'  
                  PRSUC     DB     'enter     succes   of   yuyan:$'  
                  PRSUC1   DB     'enter     succes   of   huibian:$'  
                  PROMPT   DB   0DH,'NAME                             SCORE1   SCORE2   AVERAGE',0DH,0AH,'$'  
  S   RGST   20H   DUP(<>)  
                  MULFACT   dw   1  
                  BINVAL   dw   0  
  TOT   DB   4,?,'000'  
  DATA   ENDS  
  CODE   SEGMENT    
  ASSUME   CS:CODE,DS:DATA  
  START:  
  MOV   AX,DATA  
  MOV   DS,AX  
  MOV   ES,AX  
  MOV   BX,0  
  AGAIN:     LEA   SI,S  
  AGAIN1:  
  LEA   DX,PRNAME  
                  CALL   LDSPLY  
                  LEA   DX,[SI].NAM  
  CALL   INPUT  
                  CMP   [SI].NAM[2],0DH  
                  JE   GOON  
                  MOV   CX,20  
  LEA   DI,[SI].NAM  
  CALL   REPLAC  
  LEA   DX,PRSUC  
  CALL   LDSPLY  
  LEA   DX,[SI].SUCCS  
  CALL   INPUT  
                  MOV   CX,6  
                  LEA   DI,[SI].SUCCS  
                  CALL   REPLAC  
                  LEA   DX,PRSUC1  
                  CALL   LDSPLY  
                  LEA   DX,[SI].SUCCS1  
  CALL   INPUT  
  MOV   CX,6  
                  LEA   DI,[SI].SUCCS1  
                  CALL   REPLAC  
   
  CALL   AAVG  
   
    ADD   SI,TYPE   S  
  CALL   LSPACE  
  INC   BX  
  JMP   AGAIN1  
  GOON:       LEA   DX,PROMPT  
  CALL   LDSPLY  
  MOV   CX,BX  
  LEA   SI,S  
  CLRPR:  
  MOV   WORD   PTR   [SI].NAM,2020H  
  MOV   WORD   PTR   [SI].SUCCS,2020H  
  MOV   WORD   PTR   [SI].SUCCS1,2020H  
                  MOV   WORD   PTR   [SI].ASCVAL,2020H  
  ADD   SI,TYPE   S  
                  LOOP   CLRPR  
  MOV   CX,BX  
  LEA   DX,S.NAM[1]  
  DISPLY:   CALL   LDSPLY  
                  ADD   DX,TYPE   S  
  LOOP   DISPLY  
  MOV   AH,4CH  
  INT   21H  
  LDSPLY     PROC  
  MOV   AH,09H  
  INT   21H  
  RET  
  LDSPLY ENDP  
  INPUT   PROC  
  MOV   AH,0AH  
                  INT   21H  
                  RET  
  LSPACE:MOV   DL,0AH  
                  MOV   AH,02H  
                  INT   21H  
                  RET  
  INPUT       ENDP  
  REPLAC   PROC  
  CLD  
  MOV   AL,0DH  
  REPNZ   SCASB  
  MOV   BYTE   PTR[DI-1],20H  
  RET  
  REPLAC     ENDP  
  AAVG   PROC  
          XOR   AX,AX  
  MOV   AL,[SI].SUCCS[4]  
  ADD   AL,[SI].SUCCS1[4]  
  AAA  
  MOV   TOT+4,AL  
  MOV   TOT+3,AH  
  MOV   AL,[SI].SUCCS[3]  
  ADD   AL,[SI].SUCCS1[3]  
  AAA  
  ADD   TOT+3,AL  
  MOV   TOT+2,AH  
  MOV   AL,[SI].SUCCS[2]  
  ADD   AL,[SI].SUCCS1[2]  
  AAA  
  ADD   TOT+2,AL                                                                     ;+  
  XOR   DX,DX  
  MOV   AL,TOT+4  
  AND   AX,000FH  
  MUL   MULFACT  
  ADD   BINVAL,AX  
  MOV   AX,MULFACT  
  MUL   DX  
  MOV   MULFACT,AX  
  MOV   AL,TOT+3  
  AND   AX,000FH  
  MUL   MULFACT  
  ADD   BINVAL,AX  
  MOV   AX,MULFACT  
  MUL   DX  
  MOV   MULFACT,AX  
  MOV   AL,TOT+2  
  AND   AX,000FH  
  MUL   MULFACT  
                  ADD   BINVAL,AX                                                        
  MOV   CX,0010    
  MOV   AX,BINVAL  
  B20:    
  CMP   AX,CX  
  JB     B30  
  XOR   DX,DX  
  DIV   CX  
  OR     DL,30H  
  MOV   [SI].ASCVAL[4],DL  
  CMP   AX,CX  
  JB     B301  
  XOR   DX,DX  
  DIV   CX  
  OR     DL,30H  
  MOV   [SI].ASCVAL[3],DL  
  CMP   AX,CX  
  JB     b302  
  XOR   DX,DX  
  DIV   CX  
  OR     DL,30H  
  MOV   [SI].ASCVAL[2],DL  
  B30:  
  OR     AL,30H  
  MOV   [SI].ASCVAL[4],AL  
  JMP   A  
  B301:  
  OR     AL,30H  
  MOV   [SI].ASCVAL[3],AL  
  JMP   A  
  B302:  
  OR     AL,30H  
  MOV   [SI].ASCVAL[2],AL  
  JMP   A  
  A: RET  
  RET  
   
  AAVG   ENDP  
  CODE         ENDS    
  END   START  
  我改到这种程度   以下就要大虾们指点迷经了  
   
   
   
   
   
   
  Top

2 楼csdsjkk()回复于 2005-06-02 14:38:17 得分 10

DATA         SEGMENT  
  RGST   STRUC  
                  NAM   DB   18,?,'                                   '  
                  SUCCS   DB   4,?,'         '  
                  SUCCS1   DB   4,?,'         '  
                  ASCVAL   DB   4,?,'         '  
                  PS   DB   0AH,0DH,'$'  
  RGST         ENDS  
                  PRNAME   DB     'Enter   name:$'  
                  PRSUC     DB     'enter     succes   of   yuyan:$'  
                  PRSUC1   DB     'enter     succes   of   huibian:$'  
                  PROMPT   DB   0DH,'NAME                             SCORE1   SCORE2   AVERAGE',0DH,0AH,'$'  
  S   RGST   20H   DUP(<>)  
                  MULFACT   dw   1  
                  BINVAL   dw   0  
  TOT   DB   4,?,'000'  
  DATA   ENDS  
  CODE   SEGMENT    
  ASSUME   CS:CODE,DS:DATA  
  START:  
  MOV   AX,DATA  
  MOV   DS,AX  
  MOV   ES,AX  
  MOV   BX,0  
  AGAIN:     LEA   SI,S  
  AGAIN1:  
  LEA   DX,PRNAME  
                  CALL   LDSPLY  
                  LEA   DX,[SI].NAM  
  CALL   INPUT  
                  CMP   [SI].NAM[2],0DH  
                  JE   GOON  
                  MOV   CX,20  
  LEA   DI,[SI].NAM  
  CALL   REPLAC  
                  CALL   Lspace  
  LEA   DX,PRSUC  
  CALL   LDSPLY  
  LEA   DX,[SI].SUCCS  
  CALL   INPUT  
                  MOV   CX,6  
                  LEA   DI,[SI].SUCCS  
                  CALL   REPLAC  
                  CALL   Lspace  
                  LEA   DX,PRSUC1  
                  CALL   LDSPLY  
                  LEA   DX,[SI].SUCCS1  
  CALL   INPUT  
  MOV   CX,6  
                  LEA   DI,[SI].SUCCS1  
                  CALL   REPLAC  
   
  CALL   AAVG  
   
    ADD   SI,TYPE   S  
  CALL   LSPACE  
  INC   BX  
  JMP   AGAIN1  
  GOON:       LEA   DX,PROMPT  
  CALL   LDSPLY  
  MOV   CX,BX  
  LEA   SI,S  
  CLRPR:  
  MOV   WORD   PTR   [SI].NAM,2020H  
  MOV   WORD   PTR   [SI].SUCCS,2020H  
  MOV   WORD   PTR   [SI].SUCCS1,2020H  
                  MOV   WORD   PTR   [SI].ASCVAL,2020H  
  ADD   SI,TYPE   S  
                  LOOP   CLRPR  
  MOV   CX,BX  
  LEA   DX,S.NAM[1]  
  DISPLY:   CALL   LDSPLY  
                  ADD   DX,TYPE   S  
  LOOP   DISPLY  
  MOV   AH,4CH  
  INT   21H  
  LDSPLY     PROC  
  MOV   AH,09H  
  INT   21H  
  RET  
  LDSPLY ENDP  
  INPUT   PROC  
  MOV   AH,0AH  
                  INT   21H  
                  RET  
  LSPACE:MOV   DL,0AH  
                  MOV   AH,02H  
                  INT   21H  
  mov   dl,0dh  
  int   21h  
                  RET  
  INPUT       ENDP  
  REPLAC   PROC  
  CLD  
  MOV   AL,0DH  
  REPNZ   SCASB  
  MOV   BYTE   PTR[DI-1],20H  
  RET  
  REPLAC     ENDP  
   
  s2d proc  
  mov   dl,0  
  s1:  
  mov   al,[di]  
  cmp   al,'0'  
  jb   s9  
  cmp   al,'9'  
  ja   s9  
  sub   al,'0'  
  xchg   al,dl  
  mov   ah,10  
  mul   ah  
  add   dl,al  
  inc   di  
  jmp   s1  
  s9:  
  mov   al,dl  
  ret  
  s2d endp  
   
  d2s proc  
  mov   dx,-1  
  push   dx  
  mov   dl,10  
  d1:  
  mov   ah,0  
  div   dl  
  push   ax  
  or   al,al  
  jnz   d1  
  d2:  
  pop   ax  
  cmp   ax,-1  
  je   d9  
  add   ah,'0'  
  mov   [di],ah  
  inc   di  
  jmp   d2  
  d9:  
  ret  
  d2s endp  
   
   
  AAVG   PROC  
   
                  lea   di,[si].succs[2]  
  call   s2d  
  push   ax  
                  lea   di,[si].succs1[2]  
  call   s2d  
  pop   dx  
  add   al,dl  
  shr   al,1  
  lea   di,[si].ascval[2]  
  call   d2s  
  ret  
  AAVG   ENDP  
  CODE         ENDS    
  END   START  
   
  Top

3 楼cauliflower1()回复于 2005-06-02 16:54:44 得分 0

这程序还没完  
  要求输入   A时,输出平均分为100到90的人的名单和个别分数和平均分    
  输入B时时为89到80的人的,C是79到70   的,D是69到60   的,E是60以下的Top

相关问题

  • 请帮忙改一下程序??
  • 请帮我改一下这个汇编程序!!!
  • 请帮我改一下这个简单的程序
  • 菜鸟请教。。。如何修改以下程序错误
  • 请问如何修改应用程序的程序名?
  • 下面这段VBA程序怎么改成VB程序?
  • 一段简单的C#程序,请指定;程序如下:
  • 改良程序~
  • 程序改写
  • 程序改错

关键词

  • succs
  • si
  • ascval
  • hmov
  • axmov
  • dx
  • ldsply
  • prsuc
  • lea
  • ah

得分解答快速导航

  • 帖主:cauliflower1
  • csdsjkk

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo