【转】汇编中常见的错误
http://hi.baidu.com/symdfbb/item/2fd6cdb446603e9b19469703
segment exceeds 64K limit 区段超过64K限制
invalid type for a data declaration 数据声明了一个无效的类型
HIGH and LOW require immediate operands HIGH和LOW指令依赖立即操作数
N/A
cannot have implicit far jump or call to near label 不能有不明确的远跳转或近调用
use of register assumed to ERROR 使用寄存器指定错误
only white space or comment can follow backslash 仅空白区域或注释能削减
COMMENT delimiter expected 预期的注释分割符
conflicting parameter definition 汇集参数定义
PROC and prototype calling conventions conflict PROC和proto的类型冲突
invalid radix tag 无效标签
INVOKE argument type mismatch : argument INVOKE定义的类型匹配不当
invalid coprocessor register 无效工作记录
instructions and initialized data not allowed in AT segments 指令和数据不允许在AT段
/AT switch requires the TINY memory model /AT开关使用在TINY模式
cannot have segment address references with TINY model TINY模式段段地址没有确定
language type must be specified 语言类型必须指定
PROLOGUE must be macro function PROLOGUE必须是宏函数
EPILOGUE must be macro procedure EPILOGUE必须是宏程序
alternate identifier not allowed with EXTERNDEF 交替标示符不允许和EXTERNDEF在一起
text macro nesting level too deep 文本宏嵌套太深
N/A
missing macro argument 找不到宏定义
EXITM used inconsistently EXITM常用于不稳定时
macro function argument list too long 宏函数定义表太长
N/A
VARARG parameter must be last parameter VARARG参数必须在最后
VARARG parameter not allowed with LOCAL VARARG参数不允许和LOCAL在一起
VARARG parameter requires C calling convention VARARG参数依赖C调用协议
ORG needs a constant or local offset ORG必须是常量或局部偏移量
register value overwritten by INVOKE 寄存器标准扩展到INVOKE
structure too large to pass with INVOKE : argument 结构太大超过INVOKE标准
not overriding private proc as public 不能使private函数成为public
too many arguments to INVOKE INVOKE中定义太多
too few arguments to INVOKE INVOKE中定义太少
invalid data initializer 无效初始化数据
N/A
RET operand too large RET操作数太大
too many operands to instruction 指令操作数过多
cannot have more than one .ELSE clause per .IF block .IF段不能超过一个.ELSE从句
expected data label 预期的数据标签
cannot nest procedures 不能构造程序
EXPORT must be FAR EXPORT不许是FAR
procedure declared with two visibility attributes 程序已声明两个可见属性
macro label not defined 宏标签未定义
invalid symbol type in expression 表达式有无类型的符号
byte register cannot be first operand 字节寄存器不能是第一操作数
word register cannot be first operand 字寄存器不能是第一操作数
special register cannot be first operand 特殊寄存器不能是第一操作数
coprocessor register cannot be first operand 设备寄存器不能是第一操作数
cannot change size of expression computations 不能改变表达式尺寸
syntax error in control-flow directive 流控制指令中有语法错误
cannot use 16-bit register with a 32-bit address 不能用16位寄存器标示32位地址
constant value out of range 常量标准输出范围
missing right parenthesis 找不到正确的圆括号
type is wrong size for register 对于寄存器类型不正确
structure cannot be instanced 结构不能是实例
non-benign structure redefinition: label incorrect 无益的结构定义:标签组合
non-benign structure redefinition: too few labels 无益的结构定义:太少标签
OLDSTRUCTS/NOOLDSTRUCTS state cannot be changed OLDSTRUCTS/NOOLDSTRUCTS状态不能改变
non-benign structure redefinition: incorrect initializers 无益的结构定义:初始化组合
non-benign structure redefinition: too few initializers 无益的结构定义:缺少初始化
non-benign structure redefinition: label has incorrect offset 无益的结构定义:标签包含偏移地址
structure field expected 预期的结构域
unexpected literal found in expression 表达式没有预期的构建
N/A
divide by zero in expression 表达式除零错误
directive must appear inside a macro 指令必须出现在宏里面
cannot expand macro function 不能扩展宏函数
too few bits in RECORD RECORD里位太少
macro function cannot redefine itself 宏函数不能定义自己
N/A
invalid qualified type 无效的不合适的类型
floating-point initializer on an integer variable 整数里有浮点初始化
nested structure improperly initialized 构造结构时初始化不当
invalid use of FLAT 平坦模式使用无效
structure improperly initialized 结构初始化不当
improper list initialization 列表初始化不当
initializer must be a string or single item 初始化必须是字符或单独的项
initializer must be a single item 初始化必须是单独的项
initializer must be a single byte 初始化必须是单一字节
improper use of list initializer 没有恰当地使用初始化表
improper literal initialization 初始化不当
extra characters in literal initialization 语句初始化中有外部字符
must use floating-point initializer 必须使用浮点初始化
cannot use .EXIT for OS_OS2 with .8086 不能用.EXIT到OS_OS2在.8086时
invalid combination with segment alignment 无效的对齐组合
INVOKE requires prototype for procedure INVOKE依赖于函数原型
cannot include structure in self 不能连接结构在自己
symbol language attribute conflict 符号表达式可能冲突
non-benign COMM redefinition 无益的COMM定义
COMM variable exceeds 64K COMM变量超过64K
parameter or local cannot have void type 参数或局部量不能有空类型
cannot use TINY model with OS_OS2 TINY不能用于OS_OS2
expression size must be 32 bits 表达式长度必须是32位
.EXIT does not work with 32-bit segments .EXIT不能工作在32位段
.STARTUP does not work with 32-bit segments .STARTUP不能工作在32位段
ORG directive not allowed in unions 联合里不允许有ORG指令
D/T
illegal use of segment register 不合法地使用了段寄存器
cannot declare scoped code label as PUBLIC 不能声明代码范围标签如PUBLIC
.MSFLOAT directive is obsolete : .MSFLOAT ignored .MSFLOAT指令已废弃:忽略.MSFLOAT指令
ESC instruction is obsolete : ESC ignored ESC指令已废弃:忽略ESC指令
missing operator in expression 找不到操作表达式的指令
missing right parenthesis in expression 找不到表达式右侧的括号
missing left parenthesis in expression 找不到表达式左侧的括号
reference to forward macro definition 参考前面的宏定义
16 bit segments not allowed with /coff option 16位段不允许用/COFF参数
FAR not allowed in flat model comm variables FAR不允许在平坦模式COMM变量里
invalid .model parameter for flat model 无效的.model参数对于平坦模式
ALIAS name is empty 别名是空的
GROUP directive not allowed with /coff option GROUP指令不允许/COFF选项
.FPO is not compatible with nested procedures .FPO不相容于构建过程
LEVEL 1
cannot modify READONLY segment 不能修改READONLY段
N/A
non-unique STRUCT/UNION field used without qualification 没有限制时STRUCT/UNION域不唯一
start address on END directive ignored with .STARTUP 有起始地址时END指令忽略.STARTUP
cannot ASSUME CS 不允许 ASSUME CS
unknown default prologue argument 未知的预处理定义
too many arguments in macro call 在宏调用中有太多定义
option untranslated, directive required 参数未转化,指令必须
invalid command-line option value, default is used 无效的命令行选项定,使用默认参数
insufficent memory for /EP : /EP ignored /EP要有足够的内存:/EP忽略
expected '>' on text literal 文本有预期的>符号
multiple .MODEL directives found : .MODEL ignored 多个.MODEL指示创建:.MODEL忽略
line number information for segment without class 'CODE' 不附带CODE时告知行号
instructions and initialized data not supported in AT segments 在AT段不支持指令和初始化数据
instructions and initialized data not supported in BSS segments 在BSS段不支持指令和初始化数据
directive ignored with /coff switch 指令忽略/COFF开关
/Gc switch incompatible with flat model /Gc开关不符合平坦模式
/AT switch incompatible with flat model /AT开关不符合平坦模式
invalid command-line option 无效命令行选项
directive ignored without /coff switch 在没有/COFF开关时忽略指令
directive ignored outside a procedure 在程序之外指令忽略
LOADDS ignored in flat model 在远模式忽略LOADDS
debug information too complex for 调试信息太复杂
with /coff switch, leading underscore required for start address 必须的起始地址之下 /COFF开关
LEVEL 2
@@: label defined but not referenced @@:标签明确但是没有提及
expression expected, assume value 0 表达式预期标准指定零
EXTERNDEF previously assumed to be external EXTERNDEF在指定之前是外部的
length of symbol previously assumed to be different 符号的长度在指定之前不同
symbol previously assumed to not be in a group 符号指定之前在不同的集合
types are different 类型不同
calling convention not supported in flat model CALL协定不支持远模式
LEVEL 3
N/A
no return from procedure 没有返回步骤
N/A
conditional jump lengthened 条件跳转延长
procedure argument or local not referenced 程序段或局部段不确定
expression may be pass-dependent 表达式可能经过依赖
structure contains no members 结构包含不可能的成员