• 【汇编语言03】第2章 寄存器——实验1:查看CPU和内存,用机器指令和汇编指令编程


    1 debug介绍及其安装

    1.1 简介

    1. Debug 是DOS、Windows都体用的实模式(8086方式)程序的调试工具。
    2. 功能:使用它,可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。
    3. 现在好多人都用64位系统了,但是64位W7没有自带的DEBUG和MASM,需要安装。

    1.2 安装过程

    1. 下载所需文件,此处提供的是免安装的DOSBox,其中masm文件夹内已配置好debug.exe、LINK.EXE、MASM.EXE、exe2bin.exe,无需另外下载。
      链接:https://pan.baidu.com/s/1NIdB7rYGg-2Vzt2RdL3A9A?pwd=fycn
      在这里插入图片描述
    2. 将整个文件夹复制到D盘下,右键上图中的DOSBox.exe文件,以管理员方式运行,启动后界面如下。
      在这里插入图片描述
    3. 输入命令mount c d:\DOSBox\masm挂载所需程序,其中d:\DOSBox\masm是文件夹存放的路径,c是挂载到虚拟盘符为c,如下图所示表示挂载成功。
      在这里插入图片描述
    4. 输入命令c:切换至虚拟符c。
      在这里插入图片描述
    5. 输入命令dir可以查看当前路径下有什么文件,使用,命令debug测试是否安装成功,如下图出现一个横杆表示成功。
      在这里插入图片描述
    6. 缺点:每次进入实验环境都需要重新挂载。

    2 debug常用命令及实验

    2.1 命令简介

    1. 需要格外注意的是,与汇编命令一样,debug命令对大小写不敏感。
    2. R命令:查看、改变CPU寄存器的内容;
    3. D命令:查看内存中的内容;
    4. E命令:改写内存中的内容;
    5. U命令:将内存中的机器指令翻译成汇编指令;
    6. T命令:执行一条机器指令;
    7. A命令:以汇编指令的格式在内存中写入一条机器指令。
    8. 实验过程可以参考书本,主要是熟悉以上命令的用法,实验过程中注意观察各寄存器内容的含义和变化,理解本章的理论知识。

    2.2 R命令实验

    1. 用法一:单走一个R。可以查询各寄存器内容。
    2. 用法二:输入R+寄存器后回车,先返回对应寄存器当前的值,后弹出:输入要修改的值。
      在这里插入图片描述

    2.3 D命令实验

    1. D命令的使用方法较多,此处先学1个,本课程主要还是提供入门而不是总结归纳,后面该学的再学。
    2. 用法一:单走一个D。再原先查询的位置后继续查询。
    3. 用法二:D 段地址:偏移地址。查询指定的位置。
      在这里插入图片描述

    2.4 E命令实验

    1. 用法一:E 起始地址 数据1 数据2 ……,从起始地址开始,连续修改后续内存中的内容。
      在这里插入图片描述
    2. 用法二:提问式修改法,并没有比方法一好。
      (1)输入e 1000:0000,,按enter键。
      (2)可以看到显示第一个要修改的值并且有一个点,可以有两种选择,一种是输入要修改的值并且按空格,另一种是直接输入空格表示不修改。
      (3)当要处理的单元都处理完后,按回车介绍命令。
      在这里插入图片描述
    3. 功能:往内存中写入字符,存储为字符对应的ASCII码。
      在这里插入图片描述

    2.5 E+U+R+T组合实验

    1. 使用E命令写入机器指令,已知汇编指令mov ax,0001对应的机器指令为b80100
      在这里插入图片描述
    2. 使用U命令,将内存中的内容翻译为汇编指令。
      在这里插入图片描述
    3. 使用R命令,修改寄存器CS和IP的值,使得代码在1000:0020处执行。
      在这里插入图片描述
    4. 使用T命令执行指令。可以看到寄存器AX内容被指令修改,寄存器IP指向下一个指令位置。
      在这里插入图片描述

    2.6 A命令实验

    1. E命令的功能是改变内容的内容,虽然也可以将机器指令写入内存中,但是这样需要人工去找汇编指令对应的机器指令,很是麻烦。
    2. A命令的功能:以汇编指令的格式在内存中写入一条机器指令。很好弥补了E命令的不足。
      在这里插入图片描述

    3 小结

    1. 掌握debug常见命令的功能和使用方法。
    2. 加深对寄存器功能的理解。

    参考文献

    1. win10(64位)安装汇编环境(masm)
    2. 汇编语言基础11》小甲鱼零基础视频课程
    3. 汇编语言基础12》小甲鱼零基础视频课程
  • 相关阅读:
    B. Snow Walking Robot
    阿里p9技术专家纯手打《程序员“不迷茫”职业路指南》给你指明方向
    一线互联网大厂普遍使用的Docker,掌握这套面试题,让领导主动涨薪
    在字节跳动,一个更好的企业级SparkSQL Server这么做
    进程与线程的区别
    SpringMVC使用(二)
    记一次弱口令之后引发的获取服务器权限
    浅谈MySQL的sql_mode
    003 PythonTCP网络通信
    第一行代码Android 第九章9.4-9.5(解析JSON格式,网络编程最佳实践:发送HTTP请求的代码)
  • 原文地址:https://blog.csdn.net/Fighting_hawk/article/details/126068156