本文的目标是收集大部分汇编中常见错误信息及对其的中文注解,方便大家在写汇编程序时能够快速地定位错误并解决问题。
ml.exe错误信息:
复制代码 代码如下:
FATAL 严重错误
cannot open file不能打开文件
I/O error closing fileI/O错误 正在关闭文件
I/O error writing fileI/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,停止汇编 i
nvalid 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 指令不允许远间接寻址
以上就是汇编中常见错误信息及中文注解,希望对你有所帮助