汇编踩过的坑(error A1010,A2085 ,divide error,A2070,注意事项)

最近也是在学汇编语言,上机的时候发现错误很不友好,总是断断续续,上网去查询,又查不到,花费大半天时间才找出更改办法。为了让你们可以更好的学习汇编语言,我总结了以下几个坑。

fatal error A1010: unmatched block nesting : main

如图所示:

这个error其实是由于前后段名不相同,前后子程序名不相同,这里的main(可以是其它的段名)会与代码段最后结束相呼应。

要改的话:

其实你可以直接用集成环境的模板代码来写,但初学,最好按上图来,从复杂-》简便的学习过程。

其中也要理解它们各自的意思。

main endp

s3 ends

end main

endp 表示PROC所定义的过程结束. (end procedure)
ends 表示SEGMENT定义的段结束. (end segment)
end 程序结束.

error A2085: instruction or register not accepted in current CPU mode

如图所示:

其实这里是由于代码段使用了与系统内部的什么东西重名,就好像高级语言编译器这些也是会报错的,这里只是举了一个例子:str,但还有其它的要自己去探索了。

要改的话很简单(改名即可)

divide error

如图所示:

这是代码可以通过编译,但不能正常运行

这一般是因为除数和被除数的位数溢出问题,这就要看你两个数的位数了,只有任意一个大于16位的寄存器,那就要用dx,ax来进行除法运算。

同时一定要xor dx,dx
且要在循环内
没写这条,系统默认为8位寄存器

还有就是div或mul后ax,dx的值都会改变要注意

erroe A2070: invalid instruction operands

这个错误啊经常犯啊,这种都是因为前后的类型不同,要字对字,字节对字节,或者是因为寄存器使用不佳,比如地址变化一般使用si,di这种变址寄存器,cx用于计数什么的。

注意事项

(1)输出时ax会变

mov ah,xxx

int 21h

每次执行这步,ax会变(记得先存ax就行)

(2)在汇编中使用指针功能的时候,要注意!指针指向下一个单元

(3)

lea dx,math
mov ah,9h
int 21h
顺序不能换,换了会变乱码

(4)用al,ah的时候要注意另一个是否清零

这门课上得差不多了,其它还有什么大问题将日后补充!

汇编踩过的坑(error A1010,A2085 ,divide error,A2070,注意事项)相关推荐

  1. 【Android 踩过的坑】4.java.io.IOException: Cannot run program “/system/xbin/su“: error=2, No such file...

    [Android 踩过的坑]4. java.io.IOException: Cannot run program "/system/xbin/su": error=2, No su ...

  2. Redis 集群部署及踩过的坑

    本文目标 要在单台机器上搭建Redis集群,方式是通过不同的TCP端口启动多个实例,然后组成集群,同时记录在搭建过程中踩过的坑. 安装准备 centos版本:6.7 redis版本:3.2.3 安装方 ...

  3. git服务器安装位置,Linux服务器安装gitlabe-runner,并部署包到指定目录,还有踩的一些坑~~...

    [TOC] 前言:上篇文章讲解了如何安装一个本地runner,然后用本地runner发布本地包到Linux,但这会有一个问题,在本地runner用scp向Linux发送文件,会造成服务器上的文件越来越 ...

  4. C/C++ 踩过的坑和防御式编程

    相信你或多或少地用过或者了解过 C/C++,尽管今天越来越少地人直接使用它,但今天软件世界大多数软件都构筑于它,包括编译器和操作系统.因此掌握一些 C/C++ 技能的重要性不言而喻. 这场 Chat ...

  5. 启动mq 在虚拟机中_记在使用rocketmq client客户端过程中踩到的坑

    前言 最近项目中使用阿里的RocketMQ来做消息队列,具体怎么使用RocketMQ不在本文讨论范围之内,其相关帮助文档可以参考如下链接 本文主要记录在使用rocketmq client时,遇到的一些 ...

  6. Python安装工具包踩过的坑

    1.背景介绍 重装win10系统,重装Python.在坑出现之前,已经完成了Python的安装(D盘),并且在系统中添加了环境变量.由于平时需要用到Python2.7和Python3.6,这里将对应的 ...

  7. 那些年,在nodejs上踩过的坑

    原文:http://cnodejs.org/topic/4fc7789a8be5d070121141cd ----------------------------------------------- ...

  8. 关于Redis配置主从复制踩到的坑,主机不显示从机的连接信息

    关于Redis配置主从复制踩到的坑!!! 设置单机集群的时候,两台从机都显示连接到主机,但是主机显示连接到的从机数量为0: 主机信息: 从机80: 从机81: 查看从机log日志文件发现错误信息: M ...

  9. Spring boot升级到2.3.2.Release和Spring framework升级到5.28.Release踩过的坑

    目录 1. 利用下面方法启动spring boot 项目是系统参数不生效 2. org.drools.template.parser.DecisionTableParseException: Fail ...

最新文章

  1. 深度学习人脸特征点自动定位综述
  2. 二十六、事务的隔离级别
  3. Shader Compilation for Multiple Platforms
  4. kali入侵windows
  5. border-radius的兼容问题
  6. 文娱打卡百强,重工智造升级,互联网进入“长沙时间”
  7. python调用函数示例_python 动态调用函数实例解析
  8. 米斯特白帽培训讲义 漏洞篇 逻辑漏洞
  9. Apache CXF实战之二 集成Sping与Web容器
  10. 小博老师精选Java十大CMS ——建站神器
  11. mongodb 非 admin 库 认证登陆失败 原因(百度好多都 是渣)db.addUser() 请走开。
  12. Win7桌面设置便签和备忘录的具体操作方法
  13. openrefine的 General Refine Expression Language(GREL)
  14. 【iOS】【最新】2022苹果开发者账号注册流程
  15. 贪心算法3——加油站问题
  16. error C1041: 无法打开程序数据库“xxx\vc140.pdb”;如果要将多个 CL.EXE 写入同一个 .PDB 文件,请使用/FS
  17. 网关是什么?工业网关是什么?
  18. 游戏出海行业现状概况
  19. Linux操作系统 —— 普通用户无权限执行命令怎么办
  20. 目标检测学习笔记-3D摄像头与 2D摄像头区别

热门文章

  1. JSONObject.toBean() 把jsonobject转换成实体类
  2. 自搭ngrok服务器
  3. JSTL 标签库c:if :forEach :forTokens
  4. leetcode-跳跃游戏
  5. macOS - Cocoa开发之沙盒机制及访问Sandbox之外的文件
  6. Centos7 lvm
  7. 什么是VR全景相机?
  8. 中国企业密钥管理(EKM)市场趋势报告、技术动态创新及市场预测
  9. 郑豪7.16黄金高位盘旋不破,留意跌势悄然来袭,黄金晚间走势操作建议
  10. javascript:window.scroll()函数behavior属性smooth属性值在iphone浏览器上不兼容