匯編語言常見錯誤信息解釋_第1頁
匯編語言常見錯誤信息解釋_第2頁
匯編語言常見錯誤信息解釋_第3頁
匯編語言常見錯誤信息解釋_第4頁
匯編語言常見錯誤信息解釋_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、匯編語言常見錯誤信息解釋錯誤編號錯誤描述0Block nesting error嵌套出錯.嵌套的過程,段,結構,宏指令或重復塊等非正常結束.例如在嵌套語句中有外層的結束語句,而無內層的結束語局1Extra characters on line一語句行有多余字符,可能是語句中給出的參數太多2Internal error-Register already defined這是一個內部錯誤.如出現該錯誤,請記下發(fā)生錯誤的條件,并使用Product Assistance Request 表與 Microsoft 公司聯系3Unkown type specifer未知的類型說明符.例如類型字符拼錯,把BY

2、TE寫成BIT,NEAR寫成NAER 等4Redefinition of symbol符號重定義.同一標識符在兩個位置上定義.在匯編第一遍掃描時,在這個標識符的第二個定義位置上給出這個錯誤Symbol is multidefined符號多重定義.同一標識符在兩個位置上定義.在匯編第二遍掃描時,每當遇到這個標識符都給出這個錯誤6Phase error between passes兩次掃描間的遍錯.一個標號在二次掃描時得到不同的地址值,就會給出這種錯誤.若在啟動MASM時使用/D任選項,產生第一遍掃描的列表文件,它可幫助你查找這種錯誤7Already had ELSE clause已有ELSE語句

3、.在一個條件塊里使用多于一個的ELSE語句8Must be in conditional block沒有在條件塊里.通常是有ENDIF或ELSE語句,而無IF語句9Symbol not defined符號未定義,在程序中引用了未定義的標識符10Syntax error語法錯誤.不是匯編程序所能識別的一個語句Type illegal in context 指定非法類型.例如對一個過程指定BYTE類型,而不是NEAR或FAR 12Group name must be unique組名應是唯一的.作為組名的符號作為其他符號使用13Must be declared during pass 1必須在第一

4、遍掃描期間定義.在第一遍掃描期間,如一個符號在未定 義前就引用,就會出現這種錯誤.14Illegal public declaration一個標識符被非法的指定為PUBLIC類型15Symbol already defferent kind重新定義一個符號為不同種類符號.例如一個段名重新被當作變量名 定義使用16Reserved word used as symbol把匯編語言規(guī)定的保留字作標識符使用17Forward reference illegal非法的向前引用.在第一遍掃描期間,引用一個未定義符號.Operand must be register操作數位置上應是寄存器,但出現了標識符1

5、9Wrong type of register使用寄存器出錯20Operand must be segment or group應該給出一個段名或組名.例如ASSUME語句中應為某段寄存器和指定一個段名或組名,而不應是別的標號或變量名等21Symbol has no segment不知道標識符的段屬性22Operand must be type specifier操作數應給出類型說明,如NEAR,FAR,BYTE等23Symbol alread defined locally以被指定為內部的標識符,企圖在EXTRN語句中又定義外部標識24Segment paraneters are chang

6、ed段參數被改變.如同一標識符定義在不同段內Improper align/combin type段定義時的定位類型/組合類型使用出錯26Reference to multidefined symbol指令引用了多重定義的標識符27Operand expected需要一個操作數,只有操作符28Operator expected需要一個操作符,但只有操作數29Divdsion by 0 or overflow除以0或溢出30Negative shift count運算符SHL或SHR的移位表達式值為負數31Operand type must match操作數類型不匹配.雙操作數指令的兩個操作數長度

7、不一致,一個是 字節(jié),一個是字Illegal use of external外部符號使用出錯33Must be record field name應為記錄字段名.在記錄字段名位置上出現另外的符號34Must be record name or field name應為記錄名或記錄字段名.在記錄名或記錄字段名位置上出現另外的 符號35Operand must be size應指明操作數的長度(如BYTE,WORD等).通常使用PTR運算即可改正 36Must be variable,label,or constant應該是變量名,標號,或常數的位置上出現了其他信息37Must be stuctu

8、re field name應該為結構字段名.在結構字段名位置上出現了另外的符號38Lefe operand must segment操作數的左邊應該是段的信息.如設DA1,DA2均是變量名,下列語句就是錯誤的:MOV AX,DA1:DA2.DA 1位置上應使用某段寄存器名39One operand must constant操作數必須是常數.40Operand must be in same segment or one constant一運算符用錯.例如MOV AL, VAR,其中VAR是變量名,應有一常數參加運算.又如兩個不同段的變量名相減出錯41Normal type operand e

9、xpected要求給出一個正常的操作數.42Constant expected要求給出一個常數.43Operand must have segment運算符SEG用錯.44Must be associated with data在必須與數據段有關的位置上出現了代碼段有關的項45Must be associated with code 在必須與代碼段有關的位置上出現了數據段有關的項 46Multiple base registers同時使用了多個基址寄存器.如MOV AX ,SIBP 47Multiple index registers同時使用了多個變址寄存器.如MOV AX ,SIDI 48M

10、ust be index or base register指令僅要求使用基址寄存器或變址寄存器,而不能使用其他寄存器. 49Illegal use of register非法使用寄存器出錯50Value is out of range數值太大,超過允許值.例如:MOV AL ,100H 51Operand not in current CS ASSUME segment操作數不在當前代碼段內.通常指轉移指令的目標地址不在當前CS 段內52Improper operand type操作數類型使用不當.例如:MOV VAR1,VAR2.兩個操作數均為存儲器操作數,不能匯編出目標代碼 53Jump

11、out of range by %ld byte條件轉移指令跳轉范圍超過T28 127個字節(jié).出錯廠,信息同時給出超過的字節(jié)數54Index displacement must be constant變址尋址的位移量必須是常數55Illegal register value非法的寄存器值.目標代碼中表達寄存器的值超過756Immediate mode illegal不允許使用立即數尋址.例如MOV DS,CODE其中CODE是段名,不能把段名作為立即數傳送給段寄存器DS57Illegal size for operand使用操作數大?。ㄗ止?jié)數)出錯.例如:使用雙字的存儲器操作數58Byte r

12、egister illegal要求用字寄存器的指令使用了字節(jié)寄存器.如PUSH,POP指令的操作數寄存器必須是字寄存器 59Illegal uer of CS register指令中錯誤使用了段寄存器CS.如:MOV CS,AXCS不能做目的操作數 60Must be accumulator register要求用AX或AL的位置上使用可其他寄存器.如IN,OUT指令必須使用累加器AX或AL61Improper uer of segment register不允許使用段寄存器的位置上使用了段寄存器.如SHL DS,162Missing or unreachable CS試圖跳轉去執(zhí)行一個CS達

13、不到的標號.通常是指缺少ASSUME語句中CS與代碼段相關聯63Operand combination illegal雙操作數指令中兩個操作數組合出錯64Near JMP/CALL to different CS試圖用NEAR屬性的轉移指令跳轉到不在當前段的一個地址65Label cannot have segment override段前綴使用出錯66Must have instuction agter prefix在重復前綴REP,REPE,REPNE后面必須有指令67Cannot override ES for destination串操作指令中目的操作數不能用其他段寄存器替代ES68C

14、annot address with srgment register指令中尋找一個操作數,但ASSUME語句中未指明哪個段寄存器與該操作數所在段有關聯69Must be in segment block指令語句沒有在段內70Cannot use EVEN or ALIGN with byte alignment在段定義偽指令的定位類型中選用BYTE,這時不能使用EVEN或ALIGN偽指令71Forward needs override or FAR轉移指令的目標沒有在源程序中說明為FAR屬性,可用PTR指定Illegal value for DUP count操作符DUP前的重復次數是非法的

15、或未定義73Symbol id already external在模塊內試圖定義的符號,它已在外部符號偽指令中說明74DUP nesting too deep操作數DUP的嵌套太深75Illegak use of undefinde operand()不定操作符 使用不當.例如DB 10H DUP( 2) 76Too many valer for struc or record initialization在定義結構變量或記錄變量時,初始值太多77Angle brackets requored around initialized list定義結構體變量時,初始值未用尖括號()括起來78Directive illegal structure在結構體定義中的偽指令使用不當.結構定義中的偽指令語句僅二種:分號(;)開始的注釋語句和用DB,DW等數據定義偽指令語句Override with DUP illegal在結構變量初始值表中使用DUP操作符出錯80Field cannot be overridden在定義結構變量語句中試圖對一個不允許修改的字段設置初值81Override i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論