MASM汇编错误信息说明.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MASM汇编错误信息说明

MASM汇编错误信息说明 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行出错,查看该指令,是由于将两操作数之间的“,”号错为“.”号而出错。另外一种情况,如MOV AL, 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,则该指令

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档