汇编程序MASM错误信息

更新时间:2023-07-23 03:29:03 阅读: 评论:0

汇编程序MASM 5.0编译出错信息表-中文说明
MASM 5.0对汇编程序进行汇编的时候,如果检查出某行语句有错误,就会在屏幕上给出出错信息,若指定了列表文件(.LST),MASM 5.0也会在列表文件中给出错误信息。
        MASM5.0出错信息格式: WARNING/ERROR错误信息码:错误描述信息
        错误描述信息码由五个字符组成,第一个是字母A,表示汇编语言程序出错;接着有一个数字指明出错类别:2为致命错误,4为严肃警告,5为建议性警告,最后三位为错误编号。
        下面的手册中给出了错误编号、错误描述以及中文解释说明,方便大家查阅,包括MASM 5.0常见编译错误。
000          Block nesting error 
嵌套出错.嵌套的过程,,结构,宏指令或重复块等非正常结束.例如在嵌套语句中有外层的结束语句,而无内层的结束语局
001          Extra characters on line
一语句行有多余字符,可能是语句中给出的参数太多
002          Internal error-Register already defined
这是一个内部错误.如出现该错误,请记下发生错误的条件,并使用Product Assistance Request 表与Microsoft公司联系
003          Unkown type specifer
未知的类型说明符.例如类型字符拼错,BYTE写成BIT,NEAR写成NAER
004          Redefinition of symbol
符号重定义.同一标识符在两个位置上定义.在汇编第一遍扫描时去黄气,在这个标识符的第二个定义位置上给出这个错误
005          Symbol is multidefined
符号多重定义.同一标识符在两个位置上定义.在汇编第二遍扫描时,每当遇到这个标识符都给出这个错误
006          Pha error between pass
两次扫描间的遍错.一个标号在二次扫描时得到不同的地址值,就会给出这种错误.若在启动MASM时使用/D任选项,产生第一遍扫描的列表文件,它可帮助你查找这种错误
007          Already had ELSE clau
已有ELSE语句.在一个条件块里使用多于一个的ELSE语句
008          Must be in conditional block
没有在条件块里.通常是有ENDIFELSE语句,而无IF 语句
009          Symbol not defined
符号未定义,在程序中引用了未定义的标识符
010          Syntax error
语法错误.不是汇编程序所能识别的一个语句
011          Type illegal in context
我最敬佩的老师指定非法类型.例如对一个过程指定BYTE类型,而不是NEARFAR
012          Group name must be unique
组名应是唯一的.作为组名的符号作为其他符号使用
013          Must be declared during pass 1
必须在第一遍扫描期间定义.在第一遍扫描期间,如一个符号在未定义前就引用,就会出现这种错误.
皇族姓氏014          Illegal public declaration
一个标识符被非法的指定为PUBLIC类型
015          Symbol already defferent kind
重新定义一个符号为不同种类符号.例如一个段名重新被当作变量名定义使用
016          Rerved word ud as symbol
把汇编语言规定的保留字作标识符使用
017          Forward reference illegal
非法的向前引用.在第一遍扫描期间,引用一个未定义符号.
018          Operand must be register
操作数位置上应是寄存器,但出现了标识符
019          Wrong type of register
使用寄存器出错
020          Operand must be gment or group
应该给出一个段名或组名.例如ASSUME语句中应为某段寄存器和指定一个段名或组名,而不应是别的标号或变量名等
021          Symbol has no gment
不知道标识符的段属性
022          Operand must be type specifier
操作数应给出类型说明,NEAR,FAR,BYTE
023          Symbol alread defined locally
以被指定为内部的标识符,企图在EXTRN语句中又定义外部标识
024          Segment paraneters are changed 金色的世界
段参数被改变.如同一标识符定义在不同段内
025          Improper align/combin type
段定义时的定位类型/组合类型使用出错
026          Reference to multidefined symbol
指令引用了多重定义的标识符
027          Operand expected
需要一个操作数,只有操作符
028          Operator expected
需要一个操作符,但只有操作数
029          Divdsion by 0 or overflow
除以0或溢出
030          Negative shift count
运算符SHLSHR的移位表达式值为负数
031          Operand type must match
操作数类型不匹配.双操作数指令的两个操作数长度不一致,一个是字节,一个是字
032          Illegal u of external
外部符号使用出错
033          Must be record field name
应为记录字段名.在记录字段名位置上出现另外的符号
034          Must be record name or field name
应为记录名或记录字段名.在记录名或记录字段名位置上出现另外的符号
035          Operand must have size
应指明操作数的长度(BYTE,WORD).通常使用PTR运算即可改正
036          Must be variable,label,or constant
应该是变量名,标号,或常数的位置上出现了其他信息
037          Must be stucture field name
应该为结构字段名.在结构字段名位置上出现了另外的符号
038          Lefe operand must gment
操作数的左边应该是段的信息.如设DA1,DA2均是变量名,下列语句就是错误的:"MOV AX,DA1:DA2".DA1位置上应使用某段寄存器名
039          One operand must constant
操作数必须是常数.
040          Operand must be in same gment or one constant
运算符用错.例如"MOV AL,—VAR",其中VAR是变量名,应有一常数参加运算.又如两个不同段的变量名相减出错
041          Normal type operand expected
要求给出一个正常的操作数.
042          Constant expected
要求给出一个常数.
043          Operand must have gment
运算符SEG用错.
044          Must be associated with data
在必须与数据段有关的位置上出现了代码段有关的项
045          Must be associated with code
在必须与代码段有关的位置上出现了数据段有关的项
046          Multiple ba registers
同时使用了多个基址寄存器."MOV AX ,[SI][BP]"
047          Multiple index registers
同时使用了多个变址寄存器."MOV AX ,[SI][DI]"
048          Must be index or ba register
指令仅要求使用基址寄存器或变址寄存器,而不能使用其他寄存器.
049          Illegal u of register
非法使用寄存器出错
050          Value is out of range
数值太大,超过允许值.例如:"MOV AL ,100H"
051          Operand not in current CS ASSUME gment
操作数不在当前代码段内.通常指转移指令的目标地址不在当前CS段内
052          Improper operand type
操作数类型使用不当.例如:"MOV VAR1,VAR2".两个操作数均为存储器操作数,不能汇编出目标代码
053          Jump out of range by %ld byte
条件转移指令跳转范围超过-128~ 127个字节.出错厂,信息同时给出超过的字节数
054          Index displacement must be constant
变址寻址的位移量必须是常数
055          Illegal register value
非法的寄存器值.目标代码中表达寄存器的值超过7
056          Immediate mode illegal
不允许使用立即数寻址.例如"MOV DS,CODE"其中CODE是段名,不能把段名作为立即数传
送给段寄存器DS
057          Illegal size for operand
使用操作数大小(字节数)出错.例如:使用双字的存储器操作数
058          Byte register illegal
要求用字寄存器的指令使用了字节寄存器.PUSH,POP指令的操作数寄存器必须是字寄存器
059          Illegal uer of CS register
指令中错误使用了段寄存器CS.:"MOV CS,AX"CS不能做目的操作数
060          Must be accumulator register
要求用AXAL的位置上使用可其他寄存器.IN,OUT指令必须使用累加器AXAL
061          Improper uer of gment register
不允许使用段寄存器的位置上使用了段寄存器."SHL DS,1"
062          Missing or unreachable CS
试图跳转去执行一个CS达不到的标号.通常是指缺少ASSUME语句中CS与代码段相关联
063          Operand combination illegal
双操作数指令中两个操作数组合出错
064          Near JMP/CALL to different CS
试图用NEAR属性的转移指令跳转到不在当前段的一个地址
065          Label cannot have gment override
段前缀使用出错
066          Must have instuction agter prefix
在重复前缀REP,REPE,REPNE后面必须有指令
067          Cannot override ES for destination
串操作指令中目的操作数不能用其他段寄存器替代ES
068          Cannot address with srgment register
指令中寻找一个操作数,ASSUME语句中未指明哪个段寄存器与该操作数所在段有关联
069          Must be in gment block
指令语句没有在段内
070          Cannot u EVEN or ALIGN with byte alignment
在段定义伪指令的定位类型中选用BYTE,这时不能使用EVENALIGN伪指令
071          Forward needs override or FAR
转移指令的目标没有在源程序中说明为FAR属性,可用PTR指定
072          Illegal value for DUP count
操作符DUP前的重复次数是非法的或未定义
073          Symbol id already external
在模块内试图定义的符号,它已在外部符号伪指令中说明
074          DUP nesting too deep
操作数DUP的嵌套太深
075          Illegak u of undefinde operand( )
不定操作符" "使用不当.例如"DB 10H DUP( 2)"
076          Too many valer for struc or record initialization
在定义结构变量或记录变量时,初始值太多
077          Angle brackets requored around initialized list
定义结构体变量时,初始值未用尖括号()括起来
078          Directive illegal structure
在结构体定义中的伪指令使用不当.结构定义中的伪指令语句仅二种:分号(;)开始的注释语句和用DB,DW等数据定义伪指令语句
079          Override with DUP illegal
在结构变量初始值表中使用DUP操作符出错
080          Field cannot be overridden
在定义结构变量语句中试图对一个不允许修改的字段设置初值
081          Override id of wrong type
在定义结构变量语句中设置初值时类型出错
083          Circular chain of EQU alias
横江词用等值语句定义的符号名,最后又返回指向它自己.: A EQU B B EQU A
084          Cannot emulate cooprocessor opcode
仿真器不能支持的8087协处理器操作码
085          End of file,not END directive
源程序文件无END文件
086          Data emitted with no gment
语句数据没有在段内
087          Forced error---pass1
.ERR1伪指令强制形成的错误
088          Forced error---pass2
.ERR2伪指令强制形成的错误
象数学089          Forced error
.ERR伪指令强制形成的错误
090          Forced error---expression true(0)
暖气片和地暖.ERRZ伪指令强制形成的错误
091          Forced error---pression fal(not 0)
.ERRZ伪指令强制形成的错误
092          Forced error---symbol not defined
.ERRNDEF伪指令强制形成的错误
093          Forced error---symbol defined
.ERRDEF伪指令强制形成的错误
094          Forced error---string blank
.ERRB伪指令强制形成的错误
095          Forced error---string not blank
.ERRNB伪指令强制形成的错误
096          Forced error---string identical
.ERRIDN伪指令强制形成的错误
097          Forced error---string different
.ERRDIF伪指令强制形成的错误
098          Wrong length for override value
结构域的重新设置太大以致不能适合这个域
099          Line too long expanding symbol:EQU
使用EQU伪指令定义的等式太长
100          Impure memory reference
不合适的处理器参考,当/P选项和特权指令有效时(用.286.386),数据存到代码段
101          Missing data;zero assumed
缺少操作数,假定是0。如 MOV AL,0
102          Segment near(or at) 64K linit
当一个代码段接近64KB边界时,若在特权方式下,80286处理器将产生转移错误
103          Align must be power of 2
ALIGN 伪指令用了不是2的幂的数
104          Jump within short distance
JMP语句的转移范围在短标号内,故可在标号前加SHORT操作符,从而使指令代码减少1B
元日古诗105          Expected element
少了一个元素,如标点符号或操作符。如:Expected:commaExpected:instruction or directive
106          Line tool long
源行超过MASM允许的最大长度。MASM 5.0规定为128个字符
107          Illegal digit in number
常数内包含当前的基不允许的数字,如:108Q
108          Empty string not allowed
空串不允许出现,如"NULL DB"语句为非法
109          Missig operand
语句中缺少一个必须的操作数
110          Open parenthesis or bracket
语句中缺少一个圆括号或方括号
111          Directive must be in macro
只在宏定义里面要求的伪指令用在宏定义之外
112          Unexpected end of line
语句行不完整

本文发布于:2023-07-23 03:29:03,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1092820.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:错误   使用   语句   寄存器
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图