汇编常见错误解决方法总结

更新时间:2023-06-02 15:11:18 阅读: 评论:0

汇编常见错误解决⽅法总结汇编常见错误总结
Block nesting error
嵌套出错.嵌套的过程,段,结构,宏指令或重复块等⾮正常结束.例如在嵌套语句中有外层的结束语句,⽽⽆
内层的结束语局
1
Extra characters on line
⼀语句⾏有多余字符,可能是语句中给出的参数太多
2
Internal error-Register already defined
这是⼀个内部错误.如出现该错误,请记下发⽣错误的条件,并使⽤Product Assistance Request 表与Microsoft公司联系
3
Unkown type specifer
未知的类型说明符.例如类型字符拼错,把BYTE写成BIT,NEAR写成NAER等
4
Redefinition of symbol
符号重定义.同⼀标识符在两个位置上定义.在汇编第⼀遍扫描时,在这个标识符的第⼆个定义位置上给出这个错误
5
Symbol is multidefined
符号多重定义.同⼀标识符在两个位置上定义.在汇编第⼆遍扫描时,每当遇到这个标识符都给出这个错误6
Pha error between pass
两次扫描间的遍错.⼀个标号在⼆次扫描时得到不同的地址值,就会给出这种错误.若在启动MASM时使⽤/D 任选项,产⽣第⼀遍扫描的列表⽂件,它可帮助你查找这种错误
7
世界之外
Already had ELSE clau
已有ELSE语句.在⼀个条件块⾥使⽤多于⼀个的ELSE语句
8
Must be in conditional block
没有在条件块⾥.通常是有ENDIF或ELSE语句,⽽⽆IF 语句
9
Symbol not defined
符号未定义,在程序中引⽤了未定义的标识符
10
Syntax error
语法错误.不是汇编程序所能识别的⼀个语句
11
Type illegal in context
指定⾮法类型.例如对⼀个过程指定BYTE类型,⽽不是NEAR或FAR
12
Group name must be unique
组名应是唯⼀的.作为组名的符号作为其他符号使⽤
13
Must be declared during pass 1
必须在第⼀遍扫描期间定义.在第⼀遍扫描期间,如⼀个符号在未定义前就引⽤,就会出现这种错误.
14
Illegal public declaration
⼀个标识符被⾮法的指定为PUBLIC类型
15
Symbol already defferent kind
重新定义⼀个符号为不同种类符号.例如⼀个段名重新被当作变量名定义使⽤
16
Rerved word ud as symbol
把汇编语⾔规定的保留字作标识符使⽤
17
Forward reference illegal
⾮法的向前引⽤.在第⼀遍扫描期间,引⽤⼀个未定义符号.
18
Operand must be register
操作数位置上应是寄存器,但出现了标识符
19
Wrong type of register
使⽤寄存器出错
20
Operand must be gment or group
大清朝应该给出⼀个段名或组名.例如ASSUME语句中应为某段寄存器和指定⼀个段名或组名,⽽不应是别的标号或变量名等
21
Symbol has no gment
不知道标识符的段属性
22
Operand must be type specifier
Symbol alread defined locally
以被指定为内部的标识符,企图在EXTRN语句中⼜定义外部标识
24
Segment paraneters are changed
段参数被改变.如同⼀标识符定义在不同段内
25
Improper align/combin type
段定义时的定位类型/组合类型使⽤出错
26
Reference to multidefined symbol
指令引⽤了多重定义的标识符
手忙脚乱的近义词27
Operand expected
需要⼀个操作数,只有操作符
28
Operator expected
需要⼀个操作符,但只有操作数
29
Divdsion 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 field name
应为记录名或记录字段名.在记录名或记录字段名位置上出现另外的符号
35
Operand must be size
Must be variable,label,or constant
应该是变量名,标号,或常数的位置上出现了其他信息
37
Must be stucture field name
应该为结构字段名.在结构字段名位置上出现了另外的符号
38
Lefe operand must gment
操作数的左边应该是段的信息.如设DA1,DA2均是变量名,下列语句就是错误的:"MOV AX,DA1:DA2".DA1位置上应使⽤某段寄存器名
39
One operand must constant
操作数必须是常数.
40
Operand must be in same gment or one constant
"—"运算符⽤错.例如"MOV AL,—VAR",其中VAR是变量名,应有⼀常数参加运算.⼜如两个不同段的变量名
相减出错
41
Normal type operand expected
要求给出⼀个正常的操作数.
42菜饭的做法
Constant expected
要求给出⼀个常数.
43
Operand must have gment
运算符SEG⽤错.
44
Must be associated with data
在必须与数据段有关的位置上出现了代码段有关的项
45
Must be associated with code
在必须与代码段有关的位置上出现了数据段有关的项
46
Multiple ba registers
同时使⽤了多个基址寄存器.如"MOV AX ,[SI][BP]"
47
Multiple index registers
同时使⽤了多个变址寄存器.如"MOV AX ,[SI][DI]"
Must be index or ba register
指令仅要求使⽤基址寄存器或变址寄存器,⽽不能使⽤其他寄存器.
49
Illegal u of register
⾮法使⽤寄存器出错
50
Value is out of range
数值太⼤,超过允许值.例如:"MOV AL ,100H"
51
Operand not in current CS ASSUME gment
操作数不在当前代码段内.通常指转移指令的⽬标地址不在当前CS段内
52
Improper operand type
操作数类型使⽤不当.例如:"MOV VAR1,VAR2".两个操作数均为存储器操作数,不能汇编出⽬标代码
53
Jump out of range by %ld byte
条件转移指令跳转范围超过-128~ 127个字节.出错⼚,信息同时给出超过的字节数
54
Index displacement must be constant
变址寻址的位移量必须是常数
55
Illegal register value
⾮法的寄存器值.⽬标代码中表达寄存器的值超过7
足智多谋56
Immediate mode illegal
不允许使⽤⽴即数寻址.例如"MOV DS,CODE"其中CODE是段名,不能把段名作为⽴即数传送给段寄存器DS 57
Illegal size for operand
使⽤操作数⼤⼩(字节数)出错.例如:使⽤双字的存储器操作数
成品舞58
Byte register illegal
要求⽤字寄存器的指令使⽤了字节寄存器.如PUSH,POP指令的操作数寄存器必须是字寄存器
申请电子驾驶证
59
Illegal uer of CS register
指令中错误使⽤了段寄存器CS.如:"MOV CS,AX"CS不能做⽬的操作数
60
Must be accumulator register
要求⽤AX或AL的位置上使⽤可其他寄存器.如IN,OUT指令必须使⽤累加器AX或AL

本文发布于:2023-06-02 15:11:18,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/834043.html

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

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