半個(gè)月沒有學(xué)習(xí)Win32匯編了,調(diào)試能力弱了不少。
一段代碼居然死活編譯不通過,報(bào)錯(cuò): error A2022: instruction operands must be the same size
在網(wǎng)上搜得這一篇好文,收藏之。
ml.exe錯(cuò)誤信息
FATAL 嚴(yán)重錯(cuò)誤
cannot open file 不能打開文件
I/O error closing file I/O錯(cuò)誤 正在關(guān)閉文件
I/O error writing file I/O錯(cuò)誤 正在寫文件
I/O error reading file I/O錯(cuò)誤 正在讀取文件
out of memory 缺少內(nèi)存
assembler limit : macro parameter name table full 匯編限制:宏參數(shù)名表已滿
invalid command-line option 無效命令行參數(shù)
nesting level too deep 嵌套過深
unmatched macro nesting 不正確的宏嵌套
line too long 行太長(zhǎng)
unmatched block nesting 不正確的區(qū)、段嵌套
directive must be in control block 指令必須在控制段
error count exceeds 100; stopping assembly 錯(cuò)誤數(shù)超過100,停止匯編
invalid numerical command-line argument 無效命令行參數(shù)
too many arguments 太多參數(shù)、定義、沖突
statement too complex 聲明太復(fù)雜
Internal Assembler Error 內(nèi)部匯編錯(cuò)誤
missing source filename 找不到源文件名
COFF error writing file COFF錯(cuò)誤,正在寫文件
invalid debug and browser data; file exceeds line limit 不能排除故障和瀏覽數(shù)據(jù);文件超過行限制
cannot find link.exe 找不到連接程序
cannot find cvpack.exe 找不到cvpack.exe
SEVERE 嚴(yán)重的錯(cuò)誤
memory operand not allowed in context 內(nèi)存操作數(shù)無法載入上下文環(huán)境
immediate operand not allowed 當(dāng)前操作數(shù)無法載入
cannot have more than one ELSE clause per IF block IF段只能有一個(gè)ELSE從句
extra characters after statement 附加的字符在聲明之后
symbol type conflict 符號(hào)類型沖突
symbol redefinition 符號(hào)已經(jīng)定義
undefined symbol 符號(hào)沒有定義
non-benign record redefinition 沒有利于記錄的定義
syntax error 語法錯(cuò)誤
syntax error in expression 表達(dá)式存在語法錯(cuò)誤
invalid type expression 無效的類型表達(dá)式
distance invalid for word size of current segment 當(dāng)前區(qū)、段的大小命令無效
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 區(qū)、段屬性不能更換
expression expected 預(yù)期表達(dá)式
operator expected 預(yù)期操作數(shù)
invalid use of external symbol 使用了無效的外部符號(hào)
operand must be RECORD type or field 操作數(shù)必須是RECORD類型或域
identifier not a record 沒有記錄標(biāo)示符
record constants may not span line breaks 連續(xù)記錄不能超過行間隔
instruction operands must be the same size 命令操作數(shù)必須是一樣的長(zhǎng)度
instruction operand must have size 命令操作數(shù)必須有長(zhǎng)度
invalid operand size for instruction 操作數(shù)長(zhǎng)度對(duì)于指令無效
operands must be in same segment 操作數(shù)必須在相同的段
constant expected 連續(xù)預(yù)期
operand must be a memory expression 操作數(shù)必須是一個(gè)內(nèi)存表達(dá)式
expression must be a code address 表達(dá)式必須是一個(gè)代碼地址
multiple base registers not allowed 不允許多重基礎(chǔ)寄存器
multiple index registers not allowed 不允許多重標(biāo)志寄存器
must be index or base register 必須是基礎(chǔ)或標(biāo)志寄存器
invalid use of register 使用的寄存器無效
invalid INVOKE argument 無效的INVOKE符號(hào)
must be in segment block 必須在區(qū)、段、塊中
DUP too complex DUP太復(fù)雜
too many initial values for structure 太多結(jié)構(gòu)的基礎(chǔ)資料
statement not allowed inside structure definition 聲明不允許在結(jié)構(gòu)里面
missing operand for macro operator 找不到宏的操作數(shù)
line too long
segment register not allowed in context 上下文不允許有寄存器
string or text literal too long 文本或字符串太長(zhǎng)
statement too complex 聲明太復(fù)雜
identifier too long 標(biāo)識(shí)符太長(zhǎng)
invalid character in file 文件里有無效字符
missing angle bracket or brace in literal 語句里找不到同樣的括弧或框架
missing single or double quotation mark in string 找不到單引號(hào)或雙引號(hào)
empty (null) string 沒有字符串
nondigit in number 沒有總數(shù)
syntax error in floating-point constant 不確定的指向中有語法錯(cuò)誤
real or BCD number not allowed 不允許real或BCD編碼
text item required 必須的文本項(xiàng)
forced error 強(qiáng)制錯(cuò)誤
forced error : value equal to 0 標(biāo)準(zhǔn)等于零
forced error : value not equal to 0 標(biāo)準(zhǔn)不等于零
forced error : symbol not defined 符號(hào)沒有定義
forced error : symbol defined 符號(hào)已定義
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不允許單獨(dú)匯編
expression too complex for .UNTILCXZ .UNTILCXZ表達(dá)式太復(fù)雜
can ALIGN only to power of 2 僅能對(duì)齊到2的冪
structure alignment must be 1, 2, 4, 8, or 16 結(jié)構(gòu)對(duì)齊必須是1,2,4,8或16
expected 預(yù)定義
incompatible CPU mode and segment size 不匹配的CPU模式和段尺寸
LOCK must be followed by a memory operation LOCK指令必須跟在內(nèi)存操作之后
instruction prefix not allowed 不允許的命令前綴
no operands allowed for this instruction 指令沒有操作數(shù)
invalid instruction operands 無效的指令操作數(shù)
initializer magnitude too large for specified size 初始指定尺寸太大
cannot access symbol in given segment or group 在特定的段或類不能存取符號(hào)
operands have different frames 操作數(shù)存在不同的結(jié)構(gòu)
cannot access label through segment registers 在段寄存器中不能存取標(biāo)記
jump destination too far 跳轉(zhuǎn)目標(biāo)太遠(yuǎn)
jump destination must specify a label 跳轉(zhuǎn)目標(biāo)必須指定一個(gè)標(biāo)記
instruction does not allow NEAR indirect addressing 指令不允許近間接尋址
instruction does not allow FAR indirect addressing 指令不允許遠(yuǎn)間接尋址
instruction does not allow FAR direct addressing 指令不允許遠(yuǎn)直接尋址
jump distance not possible in current CPU mode 跳轉(zhuǎn)距離不適合當(dāng)前CPU模式
missing operand after unary operator 一元運(yùn)算符之后找不到操作數(shù)
cannot mix 16- and 32-bit registers 不能結(jié)合16位和32位寄存器
invalid scale value 無效范圍標(biāo)準(zhǔn)
constant value too large 連續(xù)標(biāo)準(zhǔn)太多
instruction or register not accepted in current CPU mode 當(dāng)前CPU模式不認(rèn)可的指令或寄存器
reserved word expected 預(yù)期的保留字
instruction form requires 80386/486 指令需要80386/486指示
END directive required at end of file END指令必須在文件結(jié)尾
too many bits in RECORD 太多位在記錄里
positive value expected 預(yù)期的明確的標(biāo)準(zhǔn)
index value past end of string 索引標(biāo)準(zhǔn)在字符串結(jié)尾之后
count must be positive or zero 計(jì)數(shù)必須是零或明確的
count value too large 計(jì)數(shù)標(biāo)準(zhǔn)太多
operand must be relocatable 操作數(shù)必須是轉(zhuǎn)移表
constant or relocatable label expected 預(yù)期的轉(zhuǎn)移表或連續(xù)的
segment, group, or segment register expected 預(yù)期的段,類型或段寄存器
segment expected 預(yù)期的區(qū)段
invalid operand for OFFSET OFFSET操作數(shù)無效
invalid use of external absolute 由于完全外部的使用無效
segment or group not allowed 區(qū)段或類型不允許
cannot add two relocatable labels 不能增加雙重轉(zhuǎn)移表標(biāo)記
cannot add memory expression and code label 不能增加內(nèi)存表達(dá)式和代碼標(biāo)記