汇编错误信息

时间:2024-03-22 17:01:38

文章目录


扫码关注我的小程序,可以获取更多汇编内容

汇编错误信息

Already defined locally

试图定义一个符号作为 EXTERNAL,但这个符号已经在局部定义过了

Already had ELSE clause

在ELSE从句中试图定义ELSE从句

Already have base register

试图重复基地址

Already have index register

试图重复变址地址

Block nesting error

嵌套过程,段,结构,宏指令,IRP,IRPC或REPT不是正确结束.如嵌套的外层已终止,而内层还是打开状态

Byte register is illegal

在上下文中,使用一个字节寄存器是非法的.例如:PUSH AL.

Can’t override ES segment

企图非法地在一条指令中取代ES寄存器.例如:存储字符串

Can’t reach with segment reg

没有使变量可达到的ASSUME语句

Can’t use EVEN on BYTE segment

被提出的一个字节段,但试图使用EVEN

Constant was expected

需要的是一个常量,得到的却是另外的内容

CS register illegal usage

试图非法使用CS寄存器.例如:XCHG CS,AX

Division by 0 or overflow

给出一个用0作除数的表达式

DUP is too large for linker

DUP嵌套太长,以至于连接程序不能得到所要的记录

Extra characters on line

当一行上已接受了定义指令的足够信息,而又出现了多余的字符

Forward needs override

目前不使用这个信息

Forward reference is illegal

向前引用必须是在第一遍扫视中定义过的

Illegal use of external

用非法手段进行外部使用

Illegal use of register

在指令中使用了8088指令中没有的寄存器

Illegal register value

指定的寄存器值不能放入"reg"字段中.(即"reg"字段大于7)

Illegal size for item

引用的项的长度是非法的.例如:双字移位.

Illegal value for DUP count

DUP计数必须是常数,不能是0或负数

Improper operand type

使用的操作数不能产生操作码

Improper use of segment reg

段寄存器使用不合法.例如: 1 立即数传送到段寄存器

Must be associated with code

有关项用的是数据,而这里需要的是代码

Must be associated with data

有关项用的是代码,而这里需要的是数据,例如一个过程的DS取代

Must be Ax or AL

某些指令只能用AX或AL.例如:IN 指令

Must be declared in pass 1

得到的不是汇编程序所要求的常数值.例如,向前引用的向量长度.

Must be in segment block

企图在段外产生代码

Must be index or base register

指令需要基址或变址寄存器,而指定的是其它寄存器.

Must be record field name

需要的是记录字段名,但得到的是其它东西

Must be record or field name

需要的是记录名或字段名,但得到的是其它东西

Must be register

希望寄存器作为操作数,但用户提供的是符号而不是寄存器

Must be segment or group

希望给出段或组,而不是其它

Must be structure field name

需要的是结构字段名,但得到的是其它内容

Must be symbol type

必须是WORD,DW,QW,BYTE或TB,但接收的是其它内容

Must be var,label or constant

需要的是变量,标号或常数,但得到的是其它内容

Must have opcode after prefix

使用前缀指令之后,没有正确的操作码说明

Near JMP/CALL to different CS

企图在不同的代码段内执行NEAR转移或调用

No immediate mode

指定的立即方式或操作码都不能接收立即数.例如:PUSH

No or unreachable CS

试图转移到不可到达的标号

Normal type operand expected

当需要变量,标号时,得到的却是STRUCT,FIELDS,NAMES,BYTE,WORD或DW

Not in conditional block

在没有提了供条件汇编指令的情况下,指定了ENDIF或ELSE

Not proper align/combine type

SEGMENT参数不正确

One operand must be const

这是加法指令的非法使用

Operand combination illegal

在双操作数指令中,两个操作数的组合不合法

Operand must have segment

SEG伪操作使用不合法

Operand must have size

需要的是操作数的长度,但得到的是其它内容

Operand not in IP segment

由于操作数不在当前IP段中,因此不能存取

Operand type must match

在自变量的长度或类型应该一致的情况下,汇编程序得到的并不一样.例如,交换.

Operand was expected

汇编程序需要的是操作数,但得到的却是其它内容

Operands must be same or 1 abs

这是减法指令的非法使用

Operator was expected

汇编程序需要的是操作符,但得到的却是其它内容

Phase error between passes

程序中有模棱两可的指令,以至于在汇编程序的两次扫视中,程序标号的位置在数值上改变了

Redefinition of symbol

在第二遍扫视时,接着又定义一个符号

Reference to mult defined

指令引用的内容已是多次定义过的

Register already defined

汇编内部出现逻辑错误

Relative jump out of range

指定的转移超出了允许的范围

Segment parameters are changed

SEGMENT的自变量表与第一次使用这个段的情况不一样

Shift count is negative

移位表达式产生的移位计数值为负数

Should have been group name

给出的组合不符合要求

Symbol already different kind

企图定义与以前定义不同的符号

Symbol already external

企图定义一个局部符号,但此符号已经是外部符号了

Symbol has no segment

想使用带有SEG的变量,而这个变量不能识别段

Symbol is multi-defined

重复定义一个符号

Symbol is reserved word

企图非法使用一个汇编程序的保留字(例如,宣布MOV为一个变量)

Symbol not defined

符号没有定义

Symbol type usage illegal

PUBLIC 符号的使用不合法

Syntax error

语句的语法与任何可识别的语法不匹配

Type illegal in context

指定的类型在长度步可接收

Unknown symbol type

在符号语句的类型字段中,有些不能识别的东西

Usage of ? (indeterminate)bad

"?"使用不合适.例如:? +5.

Value is out of range

数值大于需要使用的,例如将DW传送到寄存器中.

Wrong type of register

指定的寄存器类型并不是指令中或伪操作中所要求的.例如ASSUME AX