汇编语言常见错误(转载)

中英文对照—masm编译时错误性息提示
 

方便一下喜欢汇编的人,里面有一些错误,望牛人帮忙改正。

ml.exe错误性息

FATAL     严重错误
cannot open file   不能打开文件 
I/O error closing file  I/O错误 正在关闭文件
I/O error writing file  I/O错误 正在写文件
I/O error reading file           I/O错误 正在读取文件
out of memory             缺少内存
assembler limit : macro parameter name table full     汇编限制:宏参数名表已满
invalid command-line option          无效命令行参数
nesting level too deep            嵌套过深
unmatched macro nesting           不正确的宏嵌套
line too long                 行太长
unmatched block nesting                  不正确的区、段嵌套
directive must be in control block               指令必须在控制段
error count exceeds 100; stopping assembly            错误数超过100,停止汇编
invalid numerical command-line argument               无效命令行参数
too many arguments                                    太多参数、定义、冲突
statement too complex                                  声明太复杂
Internal Assembler Error                        内部汇编错误
missing source filename                               找不到源文件名
COFF error writing file                     COFF错误,正在写文件
invalid debug and browser data; file exceeds line limit       不能排除故障和浏览数据;文件超过行限制
cannot find link.exe                             找不到连接程序
cannot find cvpack.exe                         找不到cvpack.exe 
SEVERE                             严重的错误
memory operand not allowed in context                 内存操作数无法载入上下文环境
immediate operand not allowed                     当前操作数无法载入
cannot have more than one ELSE clause per IF block           IF段只能有一个ELSE从句
extra characters after statement                          附加的字符在声明之后
symbol type conflict                            符号类型冲突
symbol redefinition                          符号已经定义
undefined symbol                         符号没有定义
non-benign record redefinition                     没有利于记录的定义
syntax error                               语法错误
syntax error in expression                  表达式存在语法错误
invalid type expression                     无效的类型表达式
distance invalid for word size of current segment          当前区、段的大小命令无效
PROC, MACRO, or macro repeat directive must precede LOCAL     PROC, MACRO, 或 macro repeat指令必须在LOCAL之前
.MODEL must precede this directive                          .MODEL必须在指令之前
cannot define as public or external                    不能定义为公有或外部的
segment attributes cannot change                       区、段属性不能更换
expression expected                  预期表达式
operator expected                     预期操作数
invalid use of external symbol              使用了无效的外部符号
operand must be RECORD type or field           操作数必须是RECORD类型或域
identifier not a record                     没有记录标示符
record constants may not span line breaks                连续记录不能超过行间隔
instruction operands must be the same size       命令操作数必须是一样的长度
instruction operand must have size            命令操作数必须有长度
invalid operand size for instruction           操作数长度对于指令无效
operands must be in same segment             操作数必须在相同的段
constant expected                        连续预期
operand must be a memory expression            操作数必须是一个内存表达式
expression must be a code address            表达式必须是一个代码地址
multiple base registers not allowed            不允许多重基础寄存器
multiple index registers not allowed          不允许多重标志寄存器
must be index or base register                 必须是基础或标志寄存器
invalid use of register                    使用的寄存器无效
invalid INVOKE argument                  无效的INVOKE符号
must be in segment block                 必须在区、段、块中
DUP too complex                         DUP太复杂
too many initial values for structure               太多结构的基础资料
statement not allowed inside structure definition        声明不允许在结构里面
missing operand for macro operator            找不到宏的操作数
line too long
segment register not allowed in context           上下文不允许有寄存器
string or text literal too long                文本或字符串太长
statement too complex                   声明太复杂
identifier too long                      标识符太长
invalid character in file                文件里有无效字符
missing angle bracket or brace in literal        语句里找不到同样的括弧或框架
missing single or double quotation mark in string         找不到单引号或双引号
empty (null) string               没有字符串
nondigit in number                  没有总数
syntax error in floating-point constant          不确定的指向中有语法错误
real or BCD number not allowed               不允许real或BCD编码
text item required                      必须的文本项
forced error                          强制错误
forced error : value equal to 0                标准等于零
forced error : value not equal to 0            标准不等于零
forced error : symbol not defined           符号没有定义
forced error : symbol defined              符号已定义
forced error : string blank                  字符串是空的
forced error : string not blank            字符串不是空的
forced error : strings equal             字符串是相同的
forced error : strings not equal             字符串不是相同的
[ELSE]IF2/.ERR2 not allowed : single-pass assembler         [ELSE]IF2/.ERR2不允许单独汇编
expression too complex for .UNTILCXZ            .UNTILCXZ表达式太复杂
can ALIGN only to power of 2                   仅能对齐到2的幂
structure alignment must be 1, 2, 4, 8, or 16            结构对齐必须是1,2,4,8或16
expected              预定义  
incompatible CPU mode and segment size             不匹配的CPU模式和段尺寸
LOCK must be followed by a memory operation         LOCK指令必须跟在内存操作之后
instruction prefix not allowed                   不允许的命令前缀
no operands allowed for this instruction         指令没有操作数
invalid instruction operands                  无效的指令操作数
initializer magnitude too large for specified size       初始指定尺寸太大
cannot access symbol in given segment or group       在特定的段或类不能存取符号
operands have different frames                 操作数存在不同的结构
cannot access label through segment registers       在段寄存器中不能存取标记
jump destination too far                           跳转目标太远
jump destination must specify a label          跳转目标必须指定一个标记
instruction does not allow NEAR indirect addressing     指令不允许近间接寻址
instruction does not allow FAR indirect addressing     指令不允许远间接寻址
instruction does not allow FAR direct addressing      指令不允许远直接寻址
jump distance not possible in current CPU mode      跳转距离不适合当前CPU模式
missing operand after unary operator                一元运算符之后找不到操作数
cannot mix 16- and 32-bit registers                不能结合16位和32位寄存器
invalid scale value                               无效范围标准
constant value too large            连续标准太多
instruction or register not accepted in current CPU mode  当前CPU模式不认可的指令或寄存器
reserved word expected                     预期的保留字
instruction form requires 80386/486                指令需要80386/486指示   
END directive required at end of file                       END指令必须在文件结尾
too many bits in RECORD                                     太多位在记录里
positive value expected                                     预期的明确的标准
index value past end of string                             索引标准在字符串结尾之后
count must be positive or zero                             计数必须是零或明确的
count value too large                                       计数标准太多
operand must be relocatable                                 操作数必须是转移表
constant or relocatable label expected                      预期的转移表或连续的
segment, group, or segment register expected                  预期的段,类型或段寄存器
segment expected                                               预期的区段
invalid operand for OFFSET                                   OFFSET操作数无效
invalid use of external absolute                            由于完全外部的使用无效
segment or group not allowed                              区段或类型不允许
cannot add two relocatable labels                        不能增加双重转移表标记
cannot add memory expression and code label                 不能增加内存表达式和代码标记
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                                          结构包含不可能的成员

 

来源:https://blog.csdn.net/ywbhnay/article/details/51106505

你可能感兴趣的:(汇编)