汇编错误总结.doc_第1页
汇编错误总结.doc_第2页
汇编错误总结.doc_第3页
汇编错误总结.doc_第4页
汇编错误总结.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 test.asm(54): error A2000: Block nesting error 、 说明:此错误信息通常见于一个段定义起始段名和末尾段名不一致。 说明:此错误信息通常见于一个段定义起始段名和末尾段名不一致。 修改:检查段定义,使段名前后保持一致。 修改:检查段定义,使段名前后保持一致。2、 test.asm(5): error A2005: Symbol is multidefined: DATA 说明: 符号重复定义了。 说明:此错误信息提示 DATA 符号重复定义了。 修改: 重新设置。 修改:将其中一个符号 DATA 重新设置。3、 test.asm(7): error A2009: Symbol not defined: B9H 、 说明: 行指令出错,查看该指令, 说明:此错误信息为 test.asm 中第 7 行指令出错,查看该指令,源操作 数为十六进制数 B9H。按规定以字母开始的十六进制数,应在其 。按规定以字母开始的十六进制数, 以便汇编程序区分常数和符号。 前面加上数字 0 以便汇编程序区分常数和符号。另一种出错的可 能原因是程序中使用的符号变量没有定义。 能原因是程序中使用的符号变量没有定义。 修改: 修改:以 0B9H 取代 B9H;使用伪指令定义变量。 ;使用伪指令定义变量。4、 test.asm(11): error A2009: Symbol not defined: NO 、 说明: 说明:test.asm 中第 11 行指令 JLE no-count,符号中使用了中折线,中 ,符号中使用了中折线, 折线在汇编中是作为减号,因此, 没有定义。 折线在汇编中是作为减号,因此,汇编提示标号 NO 没有定义。 注意,汇编语言规定符号中可以使用下划线。 注意,汇编语言规定符号中可以使用下划线。 修改: 修改:将 no-count 改为 no_count。 。5、 test.asm(28): error A2010: Syntax error 、 说明: 此错误信息提示源程序中第 28 行的指令语句的语法与任何可识别 说明: 的语法不匹配,出错。 的语法不匹配,出错。 修改:按照汇编指令的规定格式重新编写。 修改:按照汇编指令的规定格式重新编写。6、 test.asm(2): error A2018: Operand must be register: DX 、 说 明 : 指 定 的 寄 存 器 不 是 指 令 或 伪 指 令 所 要 求 的 。 如 : ASSUME DX:DATA 修改:查看汇编指令的规定格式。 修改:查看汇编指令的规定格式。7、 test.asm(16): error A2028: Operator expected 、 说明:汇编程序需要的是操作符,得到的却是其它内容。 说明:汇编程序需要的是操作符,得到的却是其它内容。test.asm 中第 16 行 MOV DX OFFSET BUF2,显然是两操作数中间缺少“,” ,显然是两操作数中间缺少“ ” 符号导致出错。 符号导致出错。 修改:两操作数之间用“ ”号分隔。 修改:两操作数之间用“,”号分隔。8、 test.asm(47): error A2029: Division by 0 or overflow 、 说明:给出一个用零作除数的表达式或溢出。 说明:给出一个用零作除数的表达式或溢出。test.asm 中第 47 行指令 AND AL, 0010 0000 数据溢出,这是因为,汇编程序默认数制为 数据溢出, 这是因为, 十进制,因而该指令中的源操作数超出范围。 十进制,因而该指令中的源操作数超出范围。 修改:若欲输入的是二进制数, 修改:若欲输入的是二进制数,在该数后加 b,说明为二进制数。 ,说明为二进制数。9、 test.asm(8): error A2048: Must be index or base register 、 说明:指令需要基址或变址寄存器,源程序中给出的是其它寄存器。 说明 : 指令需要基址或变址寄存器 , 源程序中给出的是其它寄存器 。 test.asm 中第 8 行指令 MOV AL, SI+DX, 显然, DX , 显然, 寄存器应 寄存器。 为 BX 寄存器。 修改:按寻址方式规定修改。 修改:按寻址方式规定修改。10、 test.asm(6): error A2049: Illegal use of register 、 说明:此错误信息为 test.asm 中第 6 行出错,查看该指令,是由于将两 说明: 行出错,查看该指令, 操作数之间的“ ”号错为“ ”号而出错。另外一种情况, 操作数之间的“,”号错为“.”号而出错。另外一种情况,如 MOVAL, DL+20H,则是源操作数为非法格式。 ,则是源操作数为非法格式。 修改:按照汇编指令的规定格式重新编写。 修改:按照汇编指令的规定格式重新编写。11、 test.asm(48): error A2050: Value out of range 、 说明: 出错。 说明:test.asm 中第 48 行指令 AND AL, 0001 0000 出错。因为汇编程 序默认数制为十进制,因此,该指令源操作数为 位立即数, 序默认数制为十进制,因此,该指令源操作数为 16 位立即数,不 位寄存器。 能送入 8 位寄存器。 修改: 位寄存器, 修改:将 8 位寄存器 AL 改为 16 位寄存器,如 AX。 。 12、 test.asm(10): error A2052: Improper operand type 、 说明:非法的操作数类型。 说明:非法的操作数类型。如 test.asm 中第 10 行指令 MOV RESULT, SI。汇编语言规定两个操作数不能同时为存储器操作数。 。汇编语言规定两个操作数不能同时为存储器操作数。 修改:先将源操作数传送到寄存器,再由寄存器传送到另一个存储单元。 修改:先将源操作数传送到寄存器,再由寄存器传送到另一个存储单元。13、 test.asm(3):error A2053:Jump out of range by 82 byte(s) 、 说明: 说明:此错误信息为源程序 test.asm 中第 3 行的转移指令指定的转移超 出允许范围。 出允许范围。 修改:可在该转移指令与目标指令中增加一条无条件转移指令。 修改:可在该转移指令与目标指令中增加一条无条件转移指令。14、 test.asm(21): error A2056: Immediate mode illegal 、 说明: 错误,操作数不能是立即数。 说明:test.asm 中第 21 行指令 IDIV 8 错误,操作数不能是立即数。 修改:在该指令前增加一条传送指令, 修改:在该指令前增加一条传送指令,将该操作数 8 送入一个 8 位寄存 器存放, 器存放,如 BL,则该指令可修改为 IDIV BL。 , 。15、 test.asm(41): error A2062: Missing or unreachable CS 、 说明: 伪指令导致。 说明:这是由于缺乏段寄存器说明 ASSUME 伪指令导致。 修改:在代码段中增加段寄存器说明 ASSUME 伪指令。 修改: 伪指令。16、 test.asm(26): error A2105: Expected: comma 、 说明:双操作数指令中缺少逗号。 说明:双操作数指令中缺少逗号。 修改:在该指令的两个操作数中加上逗号。 修改:在该指令的两个操作数中加上逗号。17、 test.asm(46): error A2105: Expected: instruction or directive 、 说明:通常是指令助记符输入错误。 说明:通常是指令助记符输入错误。 修改:检查指令助记符。 修改:检查指令助记符。18、 test.asm(9): warning A4001: Extra characters on line 、 说明:当一行上已接受了定义指令说明的足够信息, 说明:当一行上已接受了定义指令说明的足够信息,而又出现多余的字 符,汇编程序提示出错。一般多由于指令中出现多余或非法的符 汇编程序提示出错。 号。 修改:仔细检查该指令。 修改:仔细检查该指令。19、 test.asm(13): warning A4016: Reserved word used as symbol: AAA 、 说明:企图非法使用一个汇编程序的保留字, 是汇编的保留字( 说明:企图非法使用一个汇编程序的保留字,AAA 是汇编的保留字(指 令助记符),不能作为符号使用。 令助记符),不能作为符号使用。 ),不能作为符号使用 修改:重新设置符号名。 修改:重新设置符号名。20、 test.asm(33): warning A4031: Operand types must match 、 说明: test.asm 中第 33 行指令 MOV AX, RESULT, 说明: , 其中变量 RESULT 定义的, 其属性为字节, 不匹配。 是用 DB 定义的, 其属性为字节, 因而与 16 位寄存器 AX 不匹配。 位寄存器, 另一种情况是两个操作数分别为 8 位寄存器和 18 位寄存器, 同样 也不匹配。 也不匹配。 修改:选用相应位数的寄存器保证两个操作数为相同位数。 修改:选用相应位数的寄存器保证两个操作数为相同位数。 21、 test.asm(19): warning A4057: Illegal size for operand 、说明:操作数的长度非法, 说明:操作数的长度非法,如 PUSH AL。 非法 。 修改:改用指令规定位数的寄存器, 修改:改用指令规定位数的寄存器,如 PUSH AX。 。22、 test.asm(55): warning A4085: End of file, no END directive 、 说明:源程序中缺乏模块结束伪指令 END

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论