版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
出错信息在使用MASM5.0对源程序进展汇编时,对于有错误的或可置疑的语句,MASM将显示出〔或指令〕行代码有关,并赋以相应的编码。在显示出错代码的同时,还给出了简要的注释。另一类出错信息没有编号,他们是针对整个汇编程序的,而不是针对某一语句行的,因而,只给出了简要的注释。一、带编号的错误带有编号的错误信息的显示格式如下:sourcefile(line):codemessagesourcefile是出错的源程序文件名。假设定义于INCLUDE文件中的宏有错,则源程序文件名是指引用宏并对其进展开放的那一个程序文件名。lineMASM无法进展汇编的那条语句源程序中的行号。CodeMicrosoft语言程序格式指定的代码。它以errorwarning5个字符的代码。第一个字符表示编程语言,汇编语言是字符A;其次个代码是数字符,表示警告级2表示严峻错误SevereError;4表示严峻警告SevereWarning5表示建议警告AdvisoryWarningmessage是对该错误或警告的简要说明。比方:test.ASM(33):errorA006:Phaseerrorbetweenpasses上述信息说明,在源程序test.ASM33006号严峻错误。下面,将依据编号列出错误信息,并给与简要的解释。错误代码错误描述Blocknestingerror块嵌套错误。指嵌套的过程、段、构造、宏或非正常完毕。例如在某嵌套语句序列中,有外层的完毕语句,而无内层的完毕语句,所造成的嵌套错误。Extracharactersonline在一语句行中有多余的字幅。指在一行中除了已有该汇编语句的全部信息外,还有多余的字幅。这可能是语句中给出的参数太多。Internalerror——Registeralreadydefine内部错误——存放器已被定义请填好ProductAssistanceRequest表,并与Microsoft公司联系。Unkowntypespecifier标识符类型错。说明在语句中,使用不正确的类型说明符指定标号和外部量的类型。例如指定类型的关键字的拼写错误:bytebyt,near误写成了naer。Redefinitionofsymbol标志符重定义。说明有一个标志符在不同的位置,以不同的类型又被重定义了错误。Symbolismultidefined标志符多重定义。同一标志符两次被定义。在汇编的其次次扫描中,每当遇到这个标志符,便指示出错误。Phaseerrorbetweenpasses汇编时,由于两次扫描间的结果不全都,将产生该类错误。例如某一条模糊不清得指令或伪指令使得一个标号的相对地址/DMASM/D命令,便在第一次扫描中生成相应的列表文件,以帮助查找错误。AlreadyhasELSEclause已有ELSE语句。在一个条件汇编块里,有多余的ELSE语句。MustbeinconditionalblockENDIF或ELSE,但未找到与其对应的IF语句。Symbolnotdefine标志符未定义。在程序中引用了未定义的标志符。Syntaxerror语法错误。在程序中消灭了汇编程序〔MASM〕不能识别的非法语句。TypeillegalincontextBYTE,而不是指定为NEARFAR。Groupnamemustbeunique对于由多个段组成的段GROUP,其名字必需是唯一的,不得与其他符号同名。Mustdeclaredduringpass1必需在第一遍扫描期间定义。在第一编扫描期间,假设一个符号再定义之前就sizexifsizex语句中使用。Illegalpublicdeclartion一个标志符被非法的说明为PUBLIC类型。Symbolalreadydifferentkind一个已定义的符号又重被定义为不同类型的符号。例如某个段名被用作变量名。Reservedwordusedassymbol把汇编语言的保存作为标志符使用。Forwardreferenceillegal非法的前向引用。在第一次扫描期间,觉察了某符号在未定义前,就被其他语句引用。例如:DBcountdup(0)Countequ20Operandmustberegister使用其他操作数。20 Operandmustbesegmentorgroup操作数必需是段名或group名,例如,再ASSUM语句中,应当一个段名或段GROUP名指定给段存放器,而不能将标号或变量名等指定给段存放器。Operandmustbetypespecifier操作数必需是类型说明。例如NEAR、FAT等。Symbolalreadydefinedlocally某标识符已在模块内定义为局部型,但又企图用EXTRN说明外部标识符。Segmentparametersarechange段参数被转变。例如在定义具有一样段名的两个段中,它们的段参数不全都。Improperalign/combinetype段定义语句中,定义类型/组合类型不正确。Referencemultidefinedsymbol指令中引用了多重定义的标志符Operandexpected需要一个操作数。例如指令中有操作符,而无操作数。Operatorexpected需要一个操作数。例如指令中只有操作数,而没有操作符。Divisionby0oroverflow0,或者除法溢出Negativeshiftcount在运算符SHRSHL表达式中,移位次数为负数。Operandtypemustmatch操作数类型不匹配。例如在双操作数指令中,源和目的操作数的类型不全都。Illegaluseofexternal外部符号的使用不正确。Mustberecordorfieldname却是其他符号。38 Operandmusthavesize应指明操作数的长度大小,即在操作数前加上BYTEPTR,WORDPTY,DWORDPTY等知名长度大小操作符。33 Leftoperandmusthavesegment在一个段超越表达式中,操作符“Oneoperandmustbeconstant其中一个操作数必需是常熟。例如在“+”运算符的表达式中,误将两个内存操作数相加。在这种表达始终必需有一个是常数。Operandmustbeinsamesegment,oronemustbeconstant减操作符“-”使用不正确。例如两个操作数不在同一个段中〔一个在代码段而另一个在数据段中,这是一个必需是常数。Constantexpected要求给出一个常数。例如给出了一个不能计算出常数的操作数或表达式。OperandmusthavesegmentSEG运算符使用错,例如SEG运算符是一个常数,而无法求出段属性。Mustbeassociatedhavewithdata在需要与数据段有关的项位置上,消灭了与代码段有关的项。Mustbeassociatedhavewithcode在需要与代码段有关的项位置上,消灭了与数据段有关的项。Multiplebaseregisters在操作数中使用了多个基地址存放器。例如MOVAX,[BX+BP]语句。Multipleindexregisters在操作数中使用了多个变址存放器。例如MOVAX,[SI+DI]语句。Mustbeindexorregister指令重要就是用变址或基址存放器。例如MOVAX,[DX]。Illegaluseregister非法使用存放器。Valueoutofrange数值太大超过范围。例如MOVAL,300.OperandnotincurrentCSASSUMEsegment操作数不在当前代码段内。通常指转移指令不在当前CS段内。Improperoperanttype操作数类型不恰当,只在某语句中给出了不正确的操作数。例如在语句MOVMEM1,MEM2中,两操作数同为内存操作数。Jumpoutofrangebynumberofbytes条件转移指令的跳转超过了规定的范围。对于8086,跳转范围是:-128~127;80386及其后及处理器,跳转范围是:-32768~32767。Illegalregistervalue7Immediatemodeillegal指令中不能马上操作数,例如MOVDS,DATAMOVCS,2000H中,直接将段2000H传送给DS和CS。Illegalsizeofoperand8086,指令INCmem32就使32位操作数mem32Byteregisterillegal在指令总需要对字或双字的存放器操作数。而使用了字节存放器。例如PUSHDL指令。IllegaluseCSregister使用CS存放器错。例如在MOVCS,AX中,CS作为亩的操作数。Mustbeaccumulatorregister在指令总必需使用AL,AX,EAX等累加存放器。例如在IN和OUT指令中。Improperuseofsegmentregister在不允许使用段存放器的指令中使用了段存放器。例如指令INCCS。Missingorunreachablecodesegment缺少代码段或不行到达的代码段。通常指在ASSUMECS与段间的关联关系Operandcombinationillegal在双操作数指令中,两个操作数间的组合出错。例如指令XCHGmem1,mem2。Nearjump/CALLtodifferencecodesegment试图用近段转移或段内CALL,转移到非当前代码段的鳖的段中。Labelcannothavesegmentoverride段超越前缀使用错。Musthaveinstructionafterprefix在重复前缀指令REP,REPZ,REPNZ等指令后,必需有一条重复被执行的指令。CannotoverrideESfordestination在串操作指令中,不允许用其他段或段存放器来替代ES.例如指令STOSDS:dest。Cannotaddresswithsegmentregister由于在ASSUME语句中未说明段与段存放器的关联关系,因而在指令中不能对该段中的数据进展访问Mustbeinsegmentblock应当在段中的伪指令〔如EVEN,ALIGN〕,而没有用在段中。CannotuseEVENorALIGNbytealignmentEVEN和ALIGN伪指令用在了一个说明字节边界的段内。ForwardreferenceneedsoverrideorFARCALLJUMP令中使用FARPTR进展指定。Illegalvaluefoy\rDUPcountDUP操作符前的重复次数值非法,即可能为负数或是无法求出值。Symbolisalreadyexternal一个符号已经被说明为外部量,但后来又在模块中重定义。DUPnestingtoodeep操作符DUP17层。Illegaluseofundefinedoperand(?)MOVAL,?STUFDBDUP(?+5)中。Toomanyvaluesforstructureorrecordinitialization在定义记录及构造变量时,给定的初始值太多。anglebracketsrequiredaroundinitializedlist定义构造变量时,初始化值未用尖括号“<>”括起来。DirectiveillegalinstructureDB,DW等,一种是用于注释语句前的分号“OverridewithDUPillegal在构造变量初始化表中,使用DUP操作符出错。Fieldcannotbeoverridden在定义构造变量时,试图对构造中不行初始化的字段设置初值。CircularchainofEQUaliases在用EQU定义符号常量时,不能承受循环定义方式。例如:XAEQUXBXBEQUXACannotemulatecoprocessoropcode无法仿真协处理器操作码Endoffile,noENDdirective在源程序文件中,未用END伪指令完毕源程序。Dataemittedwithnosegment生成代码或数据的语句部在定义的段中。*87~97是在程序中使用条件错误伪指令〔Assembly-timeerror〕时而产生。错误的产生与使用的条件错误伪指令相关。Forcederror—pass1用条件错误伪指令。ERR1在第一次扫描中无条件的产生的错误。Forcederror—pass2用条件错误伪指令。ERR1在其次次扫描中无条件的产生的错误。Forcederror用条件错误伪指令。ERR无条件产生的错误。Forcederror—expressiontrue(0)用条件错误伪指令。ERRE0时而产生的错误。Forcederror—expressionfalse(not0)用条件错误伪指令。ERRNZ0时而产生的错误Forcederror—symbolnotdefined用条件错误伪指令。ERRENDEF检测一个标识符,假设该表识符未定义而产生的错误。Forcederror—symbol defined用条件错误伪指令。ERRENDEF检测一个标识符,假设该表识符已定义而产生的错误。Forcederror—stringblankERRB检测传送给MACROForcederror—stringnotblankERRB检测传送给MACRO误。Forcederror—stringidenticalERRB检测传送给MACRO的错误。Forcederror—stringidenticalERRB检测传送给MACRO生的错误。Wronglengthforoverridesymbol在定义构造变量并给某字段赋值时Linetoolongexpandingsymbol使用EQU伪指令定符号常量时而产生错误。Impurememoryreference使用特权指令〔Privilegedinstruction〕和选择项/P时,觉察不适合的存储器引用。例如将一个数据存储到代码段德cword单元中:MOVCS:cword,data在实模式中允许的,但在保护模式重视不允许的。Missingdata:zeroassumed指令中缺少操作数,MASM0MOVAX,”MASM假定为MOVAX,0。Segmentnear(orat)64klimit这个错误是由8028664k边界时,而产生的错误。Alignmustbepowerof2使用ALIGN伪指令定位时,边界定位参数必需是2的幂。例如ALIGN4。JumpwithinshortdistanceJUMP指令的跳转范围在—128~+127SHORT操作符,使targer在—128~+127JUMPSHORTtarget。Expectedelement〔例如标点符号xtr1的语句中,误写为:xtr1xtruc(,则显示信息:expected)Linetoolong源程序语句行太长,超过MASM128个字符。IllegaldigitinnumberNon-digitinnumber按当前进位制表示的常数中,有非法的数。例如xadb23AEmptystringnotallowed不允许用语句nulldb,nulldb0指令。Missoperand在这条指令或伪指令中缺少操作数。Openparenthesisorbracket缺少括号,只是他们不配对。例如MOVCX,(lengthvar*2,MOVAX,SI)。Directivemustbeinmacro一条只能用于宏定义中的伪指令,却用在宏块之外。Unexpectedendofline一条语句非正常完毕,但MASM不能确定到底缺少什么信息。Cannotchangeprocessorinsegment在某一个段内使用了处理器微指令〔如.8038义前,或者段间,或者相反,而不能在段内。Operandsizenotmatchsegmentwordsize操作数的尺寸大小〔size〕16位段中使用了32位操作数,或者相反。Addresssizenotmatchsegmentwordsize地址尺寸大小〔size〕与段的大小不匹配。也就是说,在1632位地址,或者相反。二:不带编号的错误信息能是由命令行的错误、存储器安排错误及访问文件错误。访问文件错误MASM再读取文件、处理和存储过程中,可能发生的错误。这些错误可能使磁盘空间缺乏、文件被损坏和其他与文件操作的错误。Endoffileencounteredoninputfile在未读完文件时,遇到文件完毕符Includefilefilenamenotfound未找到includefilenameReaderroronstandardinput读标准输入设备错Unabletoaccessinputfile:filename无法存取输入文件:filenameUnabletoopencreffile:filename无法翻开穿插引用文件:filenameUnabletoopeninputfile:filename无法翻开输入文件:filenameUnabletoopenlistingfile:fil
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度山林承包权联合经营合同4篇
- 2025年度智慧社区建设项目承包合同补充协议4篇
- 2025年度大型水电站PC构件吊装施工合同3篇
- 2025年度事业单位离职创业人员创业项目风险补偿基金合作协议4篇
- 2024版轮流抚养的离婚协议范本
- 2025年度生态园区车位租赁电子合同(含绿色出行)4篇
- 2025年度智能充电桩一体化解决方案购销合同范本4篇
- 2024绿化施工劳务分包合同范本
- 2025年度智能家居窗帘系统定制安装合同范本4篇
- 2024面粉公司社区团购代理销售合同范本3篇
- 谅解书(标准样本)
- 2022年浙江省事业编制招聘考试《计算机专业基础知识》真题试卷【1000题】
- 认养一头牛IPO上市招股书
- GB/T 3767-2016声学声压法测定噪声源声功率级和声能量级反射面上方近似自由场的工程法
- GB/T 23574-2009金属切削机床油雾浓度的测量方法
- 西班牙语构词.前后缀
- 动物生理学-全套课件(上)
- 河北省衡水市各县区乡镇行政村村庄村名居民村民委员会明细
- DB32-T 2665-2014机动车维修费用结算规范-(高清现行)
- 智能消防设备公司市场营销方案
- 最新6000亩海带筏式养殖投资建设项目可行性研究报告
评论
0/150
提交评论