转载于汇编错误信息说明的文档(百度上一大堆)

笔者编写和调试汇编程序时经常遇到这样那样的问题,此文档可以给调试汇编程序提供便利。

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,则该指令可修改为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。
修改:整个源程序最后增加模块结束伪指令END。

23、test.asm(32): warning A4101: Missing data; zero assumed
说明:此错误信息提示源程序中第32行的指令少了操作数,即单操作数指令缺少操作数或双操作数指令缺少一个操作数。
修改:给指令加上适当的操作数

8086 汇编程序报错信息解释相关推荐

  1. 【全网最暴力解决方案】使用gdb调试时遭遇“Missing separate debuginfos, use: debuginfo-install glibc....”报错信息

    问题现象 日前在CentOS 6虚拟机上使用gdb调试一个由简单的.c文件编译生成的可执行程序遭遇如下gdb报错 Missing separate debuginfos, use: debuginfo ...

  2. 小孢子的神奇之旅-如何阅读MindSpore报错信息(2)

    小孢子的神奇之旅-如何阅读MindSpore报错信息(2) 先回忆下自修孢问题解决的三步巅峰论,"1)理解问题原因 2)找到问题出在哪里 3)改了",我们在上篇文章应用三步论解决了 ...

  3. React篇-报错信息:warning: Can't call setState (or forceUpdate) on an unmounted component.

    报错信息是: Warning: Can't call setState (or forceUpdate) on an unmounted component. This is a no-op, but ...

  4. 【报错信息】Google Play 上架报错 ( Your app contains ads that do not comply with our Families ad | 退出亲子同乐计划 )

    文章目录 一.报错信息 二.向 Google Play 政策团队询问细节信息 三.解决方案 ( 暂时 ) 一.报错信息 Google Play 上架应用 , 又又又被拒了 ; 报错信息 : Hi De ...

  5. 【Android NDK 开发】NDK C/C++ 代码崩溃调试 - Tombstone 报错信息日志文件分析 ( 获取 tombstone_0X 崩溃日志信息 )

    文章目录 一.崩溃信息描述 二.手机命令行操作 三.电脑命令行操作 四.Tombstone 内容 Tombstone 报错信息日志文件被保存在了 /data/tombstones/ 目录下 , 先 R ...

  6. 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息 | Proguard 混淆映射文件 mapping.txt )

    文章目录 一.Proguard 混淆后的报错信息 二.Proguard 混淆映射文件 mapping.txt 更多 ProGuard 混淆配置参考 : https://www.guardsquare. ...

  7. JavaWeb: 报错信息The superclass javax.servlet.http.HttpServlet was not found on the Java Build Path...

    JavaWeb: 报错信息The superclass "javax.servlet.http.HttpServlet" was not found on the Java Bui ...

  8. 报错信息为:Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource

    报错信息为:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource ...

  9. Hadoop报错信息:Job not successful. Error: # of failed Map Tasks exceeded allowed limit. FailedCount: 4.

    Hadoop报错信息如下: 120 15/01/27 15:48:23 ERROR streaming.StreamJob: Job not successful. Error: # of faile ...

最新文章

  1. Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 16 declared in lib
  2. Proteus仿真STM32F103R6的寄存器版跑马灯程序
  3. yum安装时报错,提示/var/run/yum.pid 已被锁定,解决办法
  4. Android关于finish()与System.exit()都不能退出应用的原因
  5. 爬去哪儿网5A景点评论
  6. IDEA集成Scala图文教程详细步骤
  7. gridview 万能分页代码
  8. python用时间戳给文件命名-在Python中每小时将时间戳记写入文件
  9. ❤️作为测试行业的过来人,宝贵的经验分享给刚入行的你
  10. IDEA如何将上传项目到SVN
  11. 【LeetCode】592. 分数加减运算
  12. 特殊符号大全(建议收藏_复制着用_数学符号最下面)
  13. SIM卡中ICCID标识与IMSI的区别
  14. Python中输入特殊字符
  15. UART串口通讯协议解析
  16. 计算机属性高级是灰色的,Win10文件夹属性隐藏选项为灰色不可勾选怎么办?
  17. 【文献阅读笔记之】ACFNet: Attentional Class Feature Network for Semantic Segmentation
  18. IMAS辅导书籍推荐
  19. 语文文学常识。不转可惜!谁整理的?太佩服啦!
  20. gz, bz2, bz, Z, tgz, zip, rar, lha, rpm等格式的解压……

热门文章

  1. abaqus复合材料失效准则
  2. 删除mysql所有字段值为NULL的数据
  3. 达梦数据库查看表结构的方法
  4. 美丽蝴蝶的flash画法
  5. 10JavaScript函数
  6. 服务器ionCube扩展/组建安装教程
  7. 纯干货:微软漏洞中国第一人黄正——如何用正确姿势挖掘浏览器漏洞(附完整 PPT)|硬创公开课...
  8. Linux服务篇:CentOS 6.9搭建NTP服务器
  9. 带铰接的杆系结构Abaqus有限元分析
  10. 如何使用DBUtils