本文的目標是收集大部分匯編中常見錯誤信息及對其的中文注解,方便大家在寫匯編程序時能夠快速地定位錯誤并解決問題。
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 指令不允許遠間接尋址
以上就是匯編中常見錯誤信息及中文注解,希望對你有所幫助