| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1586 人关注过本帖
标题:【建议每个问问题的都看看 自己写的】科普:什么是编译错误?编译错误有什么 ...
只看楼主 加入收藏
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
结帖率:100%
收藏
 问题点数:0 回复次数:8 
【建议每个问问题的都看看 自己写的】科普:什么是编译错误?编译错误有什么用?怎么看编译错误?
;*****************************************************************************************************************
;作者:zklhp  
;Email:zklhp@
;QQ:493165744
;2012.7.2
;版权所有 转载请保持完整
;*****************************************************************************************************************

以下内容仅就汇编来说 编译器是masm 当然编程都是相通的 其他语言和编译器类似

一、什么是编译错误

不论你用的哪种编译器 只要是编译出错 编译器肯定会告诉你有什么错误 错误在哪 他的提示信息可以称为编译错误(compilation error) 这个东西大概就这么回事 具体解释欢迎百度或wikipedia。。

二、编译错误有什么用

当然是告诉你错误在哪啦、、

具体来说 除了告诉你错误在哪 又有几个其他用处 比如 在求助时帮助回答者快速找到问题的所在 某些错误可以反映某种问题 等等

三、怎么看编译错误

有几种情况你是看不到编译错误的:

1 眼神不好
2 某些IDE隐藏了它
3 编译器有问题。。

眼神不好目前无解。。。 先说最后一个 编译器有问题 对于masm来说 如果ml.exe所在的目录没有ml.err这个文件的话 错误信息可能不全 具体是这样的

图片附件: 游客没有浏览图片的权限,请 登录注册


解决的方法就是找到这个文件 正常应该是这样

图片附件: 游客没有浏览图片的权限,请 登录注册


以上的代码是选的论坛某位朋友的代码 一块帖了罢

程序代码:

assume cs:code,ds:data,ss:stack

data segment;数据段
db 'welcome to masm!'
db 02h,24h,71h
data ends

stack segment
dw 8 dup(0)
stack ends

code segment
start:mov ax,data
       mov ds,ax
       mov ax,0b800h
       mov es,ax
       mov ax,stack
       mov ss,ax
       mov sp,10h
       mov bx,0;字属性定位
       mov di,0;数据每行偏移变量
       MOV si,0;第几行定位
       mov dx,0;显存每行中位置
       mov cx,3;
     
s0:     push cx
        mov cx,16
s:      mov al,[di];读取DATA段的数据
        mov ah,[bx+16];读取DATA段第二行的字属性
        mov es:[dx+si],al;将DATA段的数据送入显存     
        mov es:[dx+si+1],ah;将DATA段的第二行的字属性数据送入显存
        inc di
        add dx,2
        loop s;
     
        inc bx;每行字属性定位
        pop cx
        loop s0;

    mov ax,4c00h;
    int 21h;

    
code ends

end start;




Z:\DOS.asm(38) : error A2031: must be index or base register

下面以这个错误信息为例讲 其实很简单 编译器告诉了你三件事

一、错误在哪
二、错误码是什么
三、错误的描述信息

以上的一行错误信息对应了这三个事 以冒号分割 具体来说是

Z:\DOS.asm                                    错误的文件
(38)                                               错误的行号 !!!重要!!!
A2031                                           错误吗
must be index or base register         错误信息

到这里应该都会看了罢

FAQ(常见问题)

一、我看不到错误码

如果不是眼神不好或者编译器有问题 一般是你用的工具也就是IDE的问题 不过不同工具又不一样了 比较好的工具会在下面显示编译信息 实在不行你手动编译罢

二、错误信息什么意思看不懂

想知道错误信息的含义有以下几个方法

1 手册或帮助 编译器都有一个东西告诉你每个错误的含义 不过 很多人懒得看或看不懂
2 百度或谷歌。。 推荐方法
3 上网问也可以 但至少你得帖全罢

三、我看不见行号

虽然有人推荐你用记事本等简单的工具写代码 而且 有人还觉得这样很帅很牛 至少 在你能写出不用纠正编译错误的代码之前 换个好点的编辑器 这样是真能提高效率啊

图片附件: 游客没有浏览图片的权限,请 登录注册



四、怎么有些错误没写错误的文件和行号

举个例子

Z:\>ml Zm /c /nologo /Fo"DOS.obj" "Z:\DOS.asm"
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.

 Assembling: Zm
MASM : fatal error A1000: cannot open file : Zm

一般是你的参数写的有问题。。

后记


以前 网上有人问程序编译错误的时候 我都不怕麻烦的自己看或者编译 后来 烦了:本来可以由编译器和你自己做的事情为啥要我来做??

记住 能帮你的只有你自己 要学会自己解决问题 如果你实在解决不了 至少 为帮助你的人提供方便 具体来说就是 帖全部代码、编译的错误和出错的详细信息




[ 本帖最后由 zklhp 于 2012-7-2 20:24 编辑 ]
搜索更多相关主题的帖子: 提示信息 编译器 Email 
2012-07-02 14:05
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
2012-07-02 14:07
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
自己再顶
2012-07-02 18:13
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
帮忙顶.我要好好学,争取超越版主!

总有人比你努力,可怕的是比你牛的人比你还努力。
2012-07-03 16:15
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:0 
哈哈!顶z版!

最基础的往往是你最容易忽略的!
2012-07-03 22:54
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:0 
支持Z大出新作
呵呵
2012-07-04 17:16
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:0 
我是来学习的

从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2012-07-04 18:30
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
可以搞个常见汇编编译错误与改错方法集。

我们都在路上。。。。。
2012-07-06 14:58
bcshuke
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2012-07-20 10:05
快速回复:【建议每个问问题的都看看 自己写的】科普:什么是编译错误?编译错误 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018475 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved