本文主要是介绍8086汇编言语错误的集合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
源程序文件行:WARNING/ERROR错误信息码:错误描述信息
错误描述信息码由五字符组第字母A,表示汇编语言程序错;接着数字指明错类别:'2'严重错误,'4'严肃警告,'5'建议性警告, 三位错误编号. 错误编号 错误描述 0 Block nesting error 嵌套错.嵌套程,段,结构,宏指令或重复块等非 结束.例嵌套语句外层结束语句,内层 结束语局 1 Extra characters on line 语句行余字符,能语句给参数太 2 Internal error-Register already defined 内部错误.现该错误,请记发错误条 件,并使用Product Assistance Request 表与Microsoft 公司联系 3 Unkown type specifer 未知类型说明符.例类型字符拼错,BYTE写 BIT,NEAR写NAER等 4 Redefinition of symbol 符号重定义.同标识符两位置定义.汇编第 遍扫描,标识符第二定义位置给错 误 5 Symbol is multidefined 符号重定义.同标识符两位置定义.汇编第 二遍扫描,每遇标识符都给错误 6 Phase error between passes 两扫描间遍错.标号二扫描同 址值,给种错误.若启MASM使用/D任选项, 产第遍扫描列表文件,帮助查找种错误 7 Already had ELSE clause 已ELSE语句.条件块使用于ELSE语句 8 Must be in conditional block 没条件块.通ENDIF或ELSE语句,IF 语 句 9 Symbol not defined 符号未定义,程序引用未定义标识符 10 Syntax error 语错误.汇编程序所能识别语句 11 Type illegal in context 指定非类型.例程指定BYTE类型, NEAR或FAR 12 Group name must be unique 组名应唯.作组名符号作其符号使用 13 Must be declared during pass 1 必须第遍扫描期间定义.第遍扫描期间, 符号未定义前引用,现种错误. 14 Illegal public declaration 标识符非指定PUBLIC类型 15 Symbol already defferent kind 重新定义符号同种类符号.例段名重新 作变量名定义使用 16 Reserved word used as symbol 汇编语言规定保留字作标识符使用 17 Forward reference illegal 非向前引用.第遍扫描期间,引用未定义符 号. 18 Operand must be register 操作数位置应寄存器,现标识符 19 Wrong type of register 使用寄存器错 20 Operand must be segment or group 应该给段名或组名.例ASSUME语句应某段寄 存器指定段名或组名,应别标号或变量名 等 21 Symbol has no segment 知道标识符段属性 22 Operand must be type specifier 操作数应给类型说明,NEAR,FAR,BYTE等 23 Symbol alread defined locally 指定内部标识符,企图EXTRN语句定义外 部标识 24 Segment paraneters are changed 段参数改变.同标识符定义同段内 25 Improper align/combin type 段定义定位类型/组合类型使用错 26 Reference to multidefined symbol 指令引用重定义标识符 27 Operand expected 需要操作数,操作符 28 Operator expected 需要操作符,操作数 29 Divdsion by 0 or overflow 除0或溢 30 Negative shift count 运算符SHL或SHR移位表达式值负数 31 Operand type must match 操作数类型匹配.双操作数指令两操作数度 致,字节,字 32 Illegal use of external 外部符号使用错 33 Must be record field name 应记录字段名.记录字段名位置现另外符号 34 Must be record name or field name 应记录名或记录字段名.记录名或记录字段名位置 现另外符号 35 Operand must be size 应指明操作数度(BYTE,WORD等).通使用PTR运算 即改 36 Must be variable,label,or constant 应该变量名,标号,或数位置现其信息 37 Must be stucture field name 应该结构字段名.结构字段名位置现另外符 号 38 Lefe operand must segment 操作数左边应该段信息.设DA1,DA2均变量名, 列语句错误:"MOV AX,DA1:DA2".DA1位置应使 用某段寄存器名 39 One operand must constant 操作数必须数. 40 Operand must be in same segment or one constant "—"运算符用错.例"MOV AL,—VAR",其VAR变量名 ,应数参加运算.两同段变量名相减 错 41 Normal type operand expected 要求给操作数. 42 Constant expected 要求给数. 43 Operand must have segment 运算符SEG用错. 44 Must be associated with data 必须与数据段关位置现代码段关项 45 Must be associated with code 必须与代码段关位置现数据段关项 46 Multiple base registers 同使用基址寄存器."MOV AX ,[SI][BP]" 47 Multiple index registers 同使用变址寄存器."MOV AX ,[SI][DI]" 48 Must be index or base register 指令仅要求使用基址寄存器或变址寄存器,能使用其 寄存器. 49 Illegal use of register 非使用寄存器错 50 Value is out of range 数值太,超允许值.例:"MOV AL ,100H" 51 Operand not in current CS ASSUME segment 操作数前代码段内.通指转移指令目标址 前CS段内 52 Improper operand type 操作数类型使用.例:"MOV VAR1,VAR2".两操作 数均存储器操作数,能汇编目标代码 53 Jump out of range by %ld byte 条件转移指令跳转范围超-128~ 127字节.错厂,信 息同给超字节数 54 Index displacement must be constant 变址寻址位移量必须数 55 Illegal register value 非寄存器值.目标代码表达寄存器值超7 56 Immediate mode illegal 允许使用立即数寻址.例"MOV DS,CODE"其CODE 段名,能段名作立即数传送给段寄存器DS 57 Illegal size for operand 使用操作数(字节数)错.例:使用双字存储器 操作数 58 Byte register illegal 要求用字寄存器指令使用字节寄存器.PUSH,POP指 令操作数寄存器必须字寄存器 59 Illegal uer of CS register 指令错误使用段寄存器CS.:"MOV CS,AX"CS能做 目操作数 60 Must be accumulator register 要求用AX或AL位置使用其寄存器.IN,OUT指令 必须使用累加器AX或AL 61 Improper uer of segment register 允许使用段寄存器位置使用段寄存器."SHL DS,1" 62 Missing or unreachable CS 试图跳转执行CS达标号.通指缺少 ASSUME语句CS与代码段相关联 63 Operand combination illegal 双操作数指令两操作数组合错 64 Near JMP/CALL to different CS 试图用NEAR属性转移指令跳转前段 址 65 Label cannot have segment override 段前缀使用错 66 Must have instuction agter prefix 重复前缀REP,REPE,REPNE面必须指令 67 Cannot override ES for destination 串操作指令目操作数能用其段寄存器替代ES 68 Cannot address with srgment register 指令寻找操作数,ASSUME语句未指明哪段寄 存器与该操作数所段关联 69 Must be in segment block 指令语句没段内 70 Cannot use EVEN or ALIGN with byte alignment 段定义伪指令定位类型选用BYTE,能使用 EVEN或ALIGN伪指令 71 Forward needs override or FAR 转移指令目标没源程序说明FAR属性,用PTR 指定 72 Illegal value for DUP count 操作符DUP前重复数非或未定义 73 Symbol id already external 模块内试图定义符号,已外部符号伪指令说明 74 DUP nesting too deep 操作数DUP嵌套太深 75 Illegak use of undefinde operand( ) 定操作符" "使用.例"DB 10H DUP( 2)" 76 Too many valer for struc or record initialization 定义结构变量或记录变量,初始值太 77 Angle brackets requored around initialized list 定义结构体变量,初始值未用尖括号()括起 78 Directive illegal structure 结构体定义伪指令使用.结构定义伪指令 语句仅二种:号(;)始注释语句用DB,DW等数据定 义伪指令语句 79 Override with DUP illegal 结构变量初始值表使用DUP操作符错 80 Field cannot be overridden 定义结构变量语句试图允许修改字段设 置初值 81 Override id of wrong type 定义结构变量语句设置初值类型错 82 Circular chain of EQU aliases 用等值语句定义符号名,返指向自.: A EQU B B EQU A 83 Cannot emulate cooprocessor opcode 仿真器能支持 8087协处理器操作码 84 End of file,not END directive 源程序文件END文件 85 Data emitted with no segment 语句数据没段内
这篇关于8086汇编言语错误的集合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!