汇编语言常见的错误提示代码及含义

更新时间:2023-05-16 03:20:06 阅读: 评论:0

汇编语⾔常见的错误提⽰代码及含义
对于初学者来说,汇编代码的调试是⼀个艰苦的过程。今天偶然见到⼀篇⽂章,总结的不错,特意做个笔记于此:————————————————————————————————————————————————————————————
代码                                  错误含义
00 Block nesting error嵌套出错。嵌套的过程、段、结构、宏指令或重复块等⾮正常结束。例如:在嵌套语句中有外层的结束语句,⽽⽆内层的结束语句影评英文
01 Extra characters on line⼀语句⾏有多余字符,可能是语句中给出的参数太多
02 Internal error-Register already defined这是⼀个内部错误.若出现该错误,请记下发⽣的条件,并使⽤ProductAssistance Requst表与Microsoft公司联系.
03 Unknown type specifier表识符指定类型出错.例如类型字符拚错
04 Redefinition of symbol符号重定义.同⼀个标识符在两个位置上定义.在汇编第⼀遍扫描时,在这个标
识符的第⼆个定义位置上给出这个错误.
05 Symbol is multidefined符号重定义.同⼀个标识符在两个位置上定义.在汇编第⼆遍扫描时,每当遇到
这个标识符都给出这个错误.
06 Pha error betwween pass 两次扫描不同.⼀个标号在⼆次扫描时得到不同的地址值,就会给出这种
错误.例:在启动MASM时使⽤/D任选项,产⽣第⼀遍扫描的列表⽂件,它可帮助你查找这种错误.
07 Already had ELSEclau已有ELSE语句.在⼀个条件块⾥使⽤多于⼀个的ELSE语句.
08 Must be in conditional block没有在条件块⾥.通常是有ENDIF或ELSE语句,⽽⽆IF语句
09 Synbol not defined符号未定义.在程序中引⽤了未定义的标识符.
10 Syntax error语法错误.不是汇编所能识别的⼀个语句.
11  Type illegal in context指定⾮法类型.例如:指定过程TYPE类型,⽽不是NEAR或FAR.
12 Group name must be unique组名应是唯⼀的.
13 Must be declared during pass 1必须在第⼀遍扫描期间定义.clid
14 Illegal public declaration⼀个标识符被⾮法的指定为PUBLIC类型.
15 Symmol already different kind重新定义⼀个符号为不同种类符号.例如:⼀个段名重新当作变量名定义使⽤.
jubilee
16 Rerved word ud as symbol把汇编语⾔规定的保留字作标识符使⽤.
17 Forward reference illegal⾮法的前向引⽤.
18 Operand musr be register操作数位置上应是寄存器,但出现标识符.
onaka19 Wrong type of register使⽤的寄存器类型出错.
20 Operand must be gment or group应该给出⼀个段名或组名(grup).
21 Symbol has no gment不知道标识符的段属性.
22 Operand must be type specifier操作数应出类型说明符
23 Symbol already defined locally已被指定为内部(Local)的标识符,企图在Extrn语句中⼜定义外部标
识符.
规律英语24 Segment parameters are changed段参数被改变.
25 Improper align/conbine type段定义时的定位类型/组合类型使⽤出错.
26 Refrence to multine symbol指令引⽤了多重定义的标识符.
27 Operand expected需要⼀个操作数,但只有操作符,如:"MOV BX,OFFSET".
28 Operator expected需要⼀个操作符,但只有操作数
郑州新东方英语官网
29 Division by 0 or overflow除以0或溢出出错.
30 Negative shift count运算符SHL或SHR的移位表达式值为负数.
31 Operand type must match操作数类型不匹配.
佛山暑假英语培训
32 Illegal u of external外部符号使⽤出错.
33 Must be record field name应为记录字段名.
34 Must be record name or record field name应为记录字段名或记录名,在记录字段名或记录名位置上出现另外的符号.
35 Operand must have size应指明操作数的长度(如BYTE,WORD).通常使⽤PTR运算符可改正错误.
36 Must be variable,lableor constant应该是变量名,标号,常数的位置上出现了其他信息.
37 Must be structure field name应为结构字段名.在结构字段名位置上出现另外的符号.
康纳尔大学
38 Left operand must be gment操作数的左边应是段的信息. 
39 One operand must be constant操作数必须是常数. 
40 Operand must be in same gment or one constant"-"运算符⽤错. 
41 Normal type operand expected要求给出⼀个正常的操作数. 
42 Constant expected要求给出⼀个常数. 
43 Operand must have gment运算符SEG⽤错. 
44 Must be associated with data在必须与数据段有关的位置上出现了代码段有关的项.例如:MOV AX,LENGTH CS:VAR".其中VAR是数据段中的变量名. 
45 Must be associated with code在必须与代码段有关的位置上出现了数据段有关的项.
46 Multiple ba registers同时使⽤了多个基址寄存器. 
47 Multiple index registers同时使⽤了多个变址寄存器. 
48 Must be index orba register指令仅要求使⽤基址或变址寄存器,⽽不能⽤其他寄存器.例如:"MOV AX,[SI+CX]" 
49 Illegal u of register⾮法使⽤寄存器出错
50 Value is out of range数值太⼤.
51 Operand not in current CS ASSUME gment操作数不在当前代码段内.
52 Improper operand type操作数类型使⽤不当.
53 Jump out of range by %ld byte(s) 条件转移指令跳转范围超过-128+127个字节.
54 Index displacement must be constant变址寻址的位移量必须是常数.
55 Illegal register value⾮法寄存器的值.⽬标代码中表达寄存的值超过’7’.
56 Immediate mode illegal不合法的⽴即数寻址⽅式.
57 Illegal size for operand使⽤的操作数太⼩(字节数)出错.
58 Byte register illegal要求⽤字寄存器⽽使⽤了字节寄存器.
59 Illegal u of CS register指令中错误的使⽤段寄存器.
60 Must be accumulator register要求⽤AX或AL的位置上出现了其他寄存器.
61 Improper u of gment register不允许⽤段寄存器的位置上使⽤了段寄存器.
62 Missing or unrechable CS试图跳转去执⾏⼀个CS达不到的标号.spaced
62 Missing or unrechable CS试图跳转去执⾏⼀个CS达不到的标号.
63 Operand combination illegal双操作数指令指令中⼆个操作数组合出错.
成都外国语专业学校
64 Near JMP/CALL to different cs试图⽤NEAR属性的转移指令跳转到不在当前段的⼀个地址. 
65 Label cannot have gment override段前缀使⽤出错. 
66 Must have instruction after prefix在重复前缀REG,REPE,REPNE的后⾯必须有指令. 
67 Cannot override ES for destination串操作指令中⽬的操作数不能⽤其他段寄存器替代ES. 
68 Cannot address with gment register指令中寻找⼀个操作数,但ASSUME语句中未指明哪个段寄存器与操作数所在段有关联
69 Must be in gment block指令语句没有在段内. 
70 Cannot u EVEN or ALIGN with byte alignment在段定义的定位类型中选⽤BYTE,这时不能使⽤EVEN 或ALIGN伪指令.
71 Forward needs override or FAR转移指令的⽬标没有在源程序中说明为FAR属性,可⽤PTR指定.
72 Illegal value for DUP count操作符DUP前的重复次数是⾮法的(例如负数)或未定义.
73 Symbol is already external在模块内试图定义的符号,它已在外部符号伪指令中说明.
74 DUP nesting too deep操作符DUP嵌套太深.
75 Illegal u of undefined operand(?)不定操作符’?’使⽤不当.
76 Too may value for structure or record initialization在定义结构变量或记录时,初始值太多.
77 Angle brackets required around initialized list定义结构变量时,初始值未⽤尖括号"<>"括起来.
78 Directie illegal in structure在结构定义中的语句伪指令使⽤不当.
79 Override with DUP illegal在结构变量初始值表中使⽤DUP操作符出错.
80 Field cannot be overridden在定义结构变量语句中试图对⼀个不允许修改的字段设置初值.
81 Override is of wrong type在定义结构变量语句中设置初值时类型出错
82 Circular chain of EQU alias⽤等值语句定义的符号名,最后⼜指向它⾃⼰.
83 Cannot emulate coprocessor opcode访真器不能⽀持的8087协处理器操作码.
84 End of file,no END directive源程序⽆END语句.
85 Data emitted with no gment数据语句没有在段内.

本文发布于:2023-05-16 03:20:06,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/110113.html

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

标签:语句   定义   类型   寄存器   位置   结构
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图