手把手带你写、调试第一个8086汇编程序
需积分: 9 17 浏览量
更新于2024-09-12
收藏 484KB PDF 举报
"手把手带你写,调试,探讨第一个8086汇编程序"
本文主要讲述了如何写、调试和探讨第一个8086汇编程序,涵盖了编译、调试、段地址等方面的知识点。
一、环境设置
在学习8086汇编程序时,需要安装Masm6.15编译环境,并将其路径添加到环境变量中,以便在命令行中使用。下载地址为http://pan.baidu.com/s/1o72s8B4。
二、操作步骤
1. 下载Masm6.15后,解压后,放到相应目录,路径不要带中文。在目录下面有个Bin文件夹,复制此路径。
2. 在“我的电脑”中右键点击“属性”,然后点击“高级”,接着点击“环境变量”,最后在“path”编辑中加入Masm的路径。
3. 运行命令行Dos窗口,输入以下命令:
4. 然后输入第一个汇编程序:
5. 点击File---Save保存,后退出Exit。
6. 输入以下命令开始编译:
7. 输入以下命令开始链接,执行程序名称随意输入,其他随意。
8. 成功生成1.exe之后,运行以下命令:
三、如何调试我们的第一个汇编程序
1. 成功编译生成1.exe之后,键入以下命令:
2. 这里没有约定俗成的步骤,先打印下8086的寄存器。紧接着上个步骤,输入以下命令:
回车之后显示如下:
这里我还是少不了介绍下,每个寄存器的作用。
SS、ES、DS、CS为段地址,其中CS:IP最为重要,CPU执行的指令由它指定。SS:SP则指定栈顶的位置。
3. 看我们当前程序在内存中的机器码,输入以下命令:
这里这个d100,是指现实内存的16进制值,100为偏移地址。至于为什么偏移100,这个要根据上面提到的CS,SS=0B40,ES,DS=0B30,因为这里是段地址,CS段为存储的机器指令。相对于程序的ES,偏移刚好是100.
4. 如何验证上面找到的内存机器码就是我们当前程序的指令?Debug有提供一个反编译命令。按如下操作。
红色的部分可以看到是一样的。
5. 关于调试,可以输入以下命令:
这里可以看到AX,IP的值均发生了变化。
这里多操作下,多种操作可以灵活操作,就靠各位自己摸索了。
四、知识点总结
* 8086汇编程序的环境设置
* 编译和链接的过程
* 段地址的概念和作用
* 寄存器的作用和使用
* 调试的基本操作和命令
* 反编译命令的使用
五、结语
通过本文,我们可以学习到如何写、调试和探讨第一个8086汇编程序,掌握了基本的汇编语言编程和调试技巧,为后续学习和实践打下了坚实的基础。
2008-06-13 上传
2010-08-27 上传
2012-07-23 上传
2012-07-20 上传
2010-07-17 上传
2024-04-17 上传
点击了解资源详情
2024-11-05 上传
2024-11-05 上传
weijiangtao1717
- 粉丝: 2
- 资源: 33
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫