欢迎来到天天文库
浏览记录
ID:40561212
大小:24.00 KB
页数:5页
时间:2019-08-04
《MASM汇编错误信息说明》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MASM汇编错误信息说明1、test.asm(54):errorA2000:Blocknestingerror说明:此错误信息通常见于一个段定义起始段名和末尾段名不一致。修改:检查段定义,使段名前后保持一致。2、test.asm(5):errorA2005:Symbolismultidefined:DATA说明:此错误信息提示DATA符号重复定义了。修改:将其中一个符号DATA重新设置。3、test.asm(7):errorA2009:Symbolnotdefined:B9H说明:此错误信息为test.asm中第7行指令出错,查看该指令,源操作
2、数为十六进制数B9H。按规定以字母开始的十六进制数,应在其前面加上数字0以便汇编程序区分常数和符号。另一种出错的可能原因是程序中使用的符号变量没有定义。修改:以0B9H取代B9H;使用伪指令定义变量。4、test.asm(11):errorA2009:Symbolnotdefined:NO说明:test.asm中第11行指令JLEno-count,符号中使用了中折线,中折线在汇编中是作为减号,因此,汇编提示标号NO没有定义。注意,汇编语言规定符号中可以使用下划线。修改:将no-count改为no_count。5、test.asm(28):err
3、orA2010:Syntaxerror说明:此错误信息提示源程序中第28行的指令语句的语法与任何可识别的语法不匹配,出错。修改:按照汇编指令的规定格式重新编写。6、test.asm(2):errorA2018:Operandmustberegister:DX说明:指定的寄存器不是指令或伪指令所要求的。如:ASSUMEDX:DATA修改:查看汇编指令的规定格式。7、test.asm(16):errorA2028:Operatorexpected说明:汇编程序需要的是操作符,得到的却是其它内容。test.asm中第16行MOVDXOFFSETBUF
4、2,显然是两操作数中间缺少“,”符号导致出错。修改:两操作数之间用“,”号分隔。8、test.asm(47):errorA2029:Divisionby0oroverflow说明:给出一个用零作除数的表达式或溢出。test.asm中第47行指令ANDAL,00100000数据溢出,这是因为,汇编程序默认数制为十进制,因而该指令中的源操作数超出范围。修改:若欲输入的是二进制数,在该数后加b,说明为二进制数。9、test.asm(8):errorA2048:Mustbeindexorbaseregister说明:指令需要基址或变址寄存器,源程序中给
5、出的是其它寄存器。test.asm中第8行指令MOVAL,[SI+DX],显然,DX寄存器应为BX寄存器。修改:按寻址方式规定修改。10、test.asm(6):errorA2049:Illegaluseofregister说明:此错误信息为test.asm中第6行出错,查看该指令,是由于将两操作数之间的“,”号错为“.”号而出错。另外一种情况,如MOVAL,DL+20H,则是源操作数为非法格式。修改:按照汇编指令的规定格式重新编写。11、test.asm(48):errorA2050:Valueoutofrange说明:test.asm中第4
6、8行指令ANDAL,00010000出错。因为汇编程序默认数制为十进制,因此,该指令源操作数为16位立即数,不能送入8位寄存器。修改:将8位寄存器AL改为16位寄存器,如AX。12、test.asm(10):errorA2052:Improperoperandtype说明:非法的操作数类型。如test.asm中第10行指令MOVRESULT,[SI]。汇编语言规定两个操作数不能同时为存储器操作数。修改:先将源操作数传送到寄存器,再由寄存器传送到另一个存储单元。13、test.asm(3):errorA2053:Jumpoutofrangeby8
7、2byte(s)说明:此错误信息为源程序test.asm中第3行的转移指令指定的转移超出允许范围。修改:可在该转移指令与目标指令中增加一条无条件转移指令。14、test.asm(21):errorA2056:Immediatemodeillegal说明:test.asm中第21行指令IDIV8错误,操作数不能是立即数。修改:在该指令前增加一条传送指令,将该操作数8送入一个8位寄存器存放,如BL,则该指令可修改为IDIVBL。15、test.asm(41):errorA2062:MissingorunreachableCS说明:这是由于缺乏段寄存
8、器说明ASSUME伪指令导致。修改:在代码段中增加段寄存器说明ASSUME伪指令。16、test.asm(26):errorA2105:Expecte
此文档下载收益归作者所有