CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  汇编语言

大家帮我调试一下程序,紧急,谢谢!

楼主shihong8488(mianbao)2002-11-11 14:59:03 在 其他开发语言 / 汇编语言 提问

我刚学汇编,不太懂这里的编程机制。做了一个实验,没有调试成功,结果不对,请大家帮我检查一下,看看那里有问题,谢谢~~  
   
  ;用查表法编程实现:y=x^2(x:0-15),求x由键盘输入,y及其值由CRT显示,并保存x、y值。  
  data       segment  
  table     db   0,1,4,9,16,25,36,49,64,                     ;表的值  
                81,100,121,144,169,196,225  
  x             db   ?  
  y             db   ?  
  buff       db   2                                                                 ;定义缓冲区(最多要2字节)  
                db   ?  
                db   2   dup(0)  
  mess0     db   'Please   input   the   number   of   x:$'  
  mess1     db   'The   result:y=     $'  
  data       ends  
  ;  
  code       segment  
                assume   cs:code,ds:data  
  start:   mov   ax,data  
                mov   ds,ax  
                mov   dx,offset   mess0                           ;输出提示,等待输入  
                call   dispmess  
                mov   dx,offset   buff  
                mov   ah,0ah                                             ;输入  
                int   21h  
                call   newline  
                mov   si,offset   buff+2                
                mov   al,[si]  
                sub   al,30h                                           ;ASCII转换为十六进制  
                mov   bl,[si+1]  
                sub   bl,30h  
                mov   dl,10  
                mul   dl  
                add   al,bl  
                mov   x,al                                               ;接收得到的值给x  
                mov   ah,0  
                mov   bx,ax  
                mov   al,table[bx]                               ;找出结果值  
                mov   y,al                                               ;存y  
                mov   dx,offset   mess1                          
                call   dispmess                                     ;显示结果  
                call   dispal  
                call   newline  
                ;  
                mov   ah,4ch  
                int   21h      
  ;  
  dispmess   proc  
                    mov   ah,9  
                    int   21h  
                    ret  
  dispmess   endp  
  ;  
  newline     proc  
                    push   ax  
                    push   dx  
                    mov   dl,0dh  
                    mov   ah,2  
                    int   21h  
                    mov   dl,0ah  
                    mov   ah,2  
                    int   21h  
                    pop   dx  
                    pop   ax  
                    ret  
  newline     endp  
  ;用十进制形式显示8位二进制数  
  dispal       proc  
                    mov   cx,3                                         ;一个字节无符号数最大为2*225,转换成3位十进制数  
                    mov   dl,10  
  disp1:       div   dl  
                    xchg   ah,al                                     ;使al=余数,ah=商  
                    add   al,30h                                     ;转换成ASCII码  
                    mov   bl,al                                    
                    xor   bh,bh  
                    push   bx                                             ;压栈  
                    xchg   ah,al  
                    mov   ah,0  
                    loop   disp1  
                    mov   cx,3  
  disp2:       pop   dx                                             ;弹出一位  
                    mov   ah,2  
                    int   21h  
                    loop   disp2  
  dispal         endp  
  ;  
  code           ends  
  end             start  
                 
   
  好象报告溢出,不知怎么回事 问题点数:20、回复次数:6Top

1 楼ahalf(ahalf)回复于 2002-11-11 16:08:58 得分 5

分号引起的,用半角Top

2 楼shihong8488(mianbao)回复于 2002-11-11 16:15:07 得分 0

不是,我用的就是半角,我用edit编的,这个没有问题的,关键是里面处理Top

3 楼shihong8488(mianbao)回复于 2002-11-11 18:09:32 得分 0

ahalf(ahalf)   :我先用edit编的,注解,是我后来用记事本打开的,可能用了全角,不过与我运行的程序无关。调试时可以帮我去掉再调,谢谢大家!!~~Top

4 楼wzwlin()回复于 2002-11-11 22:33:35 得分 5

谢谢各位高手Top

5 楼neptune_hay(葫芦头)回复于 2002-11-11 23:37:09 得分 10

。。。调试成功,但你的程序有问题,先做个标记Top

6 楼shihong8488(mianbao)回复于 2002-11-15 16:13:52 得分 0

谢谢,程序bug我已改出,不过,同志们的效率也太差了,一个问题半天没人应,太郁闷了,就给你们几个人分吧,别人连up没有,太伤心了~~Top

相关问题

  • 帮忙调试程序
  • 帮忙调试程序!
  • 紧急求助! VC++程序调试方法
  • 用jb不会调试程序,如何调试程序,朋友们帮忙呀
  • 紧急:谁能指导我在本机上调试网上下载的电子商务网站程序
  • 关于MFC程序调试的问题,请各位帮帮忙!
  • 网上论坛程序,谁能帮助调试?
  • 调试程序该语句出现问题,请帮忙!!!!谢谢
  • 请高手帮忙调试这个有关RMI的程序!!!!!!
  • 请求帮助,关于调试程序的问题

关键词

  • sp1
  • 转换
  • db
  • code
  • ah
  • 调试
  • mov
  • 谢谢
  • dispmess
  • dispal

得分解答快速导航

  • 帖主:shihong8488
  • ahalf
  • wzwlin
  • neptune_hay

相关链接

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

广告也精彩

反馈

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