手把手带你写、调试第一个8086汇编程序

需积分: 9 5 下载量 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汇编程序,掌握了基本的汇编语言编程和调试技巧,为后续学习和实践打下了坚实的基础。