• 汇编语言实验3:DEBUG的使用


    实验三 DEBUG的使用

    1. 实验目的

    1.学习使用DEBUG程序的各种命令。
    2.了解计算机取指令、执行指令的工作过程。
    3.掌握用DEBUG调试工具自编程序的方法。
    4. 掌握程序片段使用DEBUG的调试方法。
    5. 熟悉并搭建汇编语言环境。

    2. 实验任务

    1. 安装Debug调试程序。
    2. 使用Debug的R命令查看、改变CPU寄存器内容;
    3. 使用Debug的D命令查看内存中的内容;
    4. 使用Debug的E命令查看内存中的内容;
    5. 使用Debug的U命令将内存中机器指令翻译成汇编指令;
    6. 使用Debug的T命令执行一条机器指令;
    7. 使用Debug的P命令执行一条机器指令;
    8. 使用Debug的A命令以汇编指令的格式在内存中写入一条机器指令;
    9. 综合练习:使用A命令,建立一段程序,程序功能:计算BX+CX+DX。要求用R命令预先设置BX、CX、DX几个寄存器的值。用U命令反汇编该程序,查看各指令机器码及存储位置。并用T命令单步执行该程序,记录其执行结果。

    3. 实验步骤

    3.1 DOSBox安装

    在这里插入图片描述

    图表 1 DOSBox安装


    masm文件夹:

    在这里插入图片描述

    图表 2 masm


    将工具从安装目录挂载到C盘:
    在这里插入图片描述

    图表 3 挂载


    原生debug窗口较小,修改分辨率:
    在这里插入图片描述

    图表 4 屏幕大小配置


    3.2 Debug环境测试

    在这里插入图片描述

    图表 5 汇编代码编辑


    程序的编译链接:执行masm lab_1.asm;
    在这里插入图片描述

    图表 6 编译链接


    程序的编译链接,执行link lab_1.obj;

    在这里插入图片描述

    图表 7 编译链接


    程序的debug运行:
    在这里插入图片描述

    图表 8 查看寄存器


    在这里插入图片描述

    图表 9 查看当前程序指令


    在这里插入图片描述

    图表 10 单步执行


    在这里插入图片描述

    图表 11 单步执行


    3.3 R命令

    Debug的R命令查看、改变CPU寄存器内容:
    在这里插入图片描述

    图表 12 查看寄存器内容


    修改AX中的值为00AC:
    在这里插入图片描述

    图表 13 修改AX寄存器内容


    3.4 D命令

    Debug的D命令查看内存中的内容:可以用“d 段地址:偏移地址” 的格式来查看。
    在这里插入图片描述

    图表 14 查看内存内容


    3.5 E命令

    Debug的E命令改写内存中的内容:将内存1000:0010开始的10个存储单元中的数据写为0,1,2,3,4,5,6,7,8,9。
    在这里插入图片描述

    图表 15 改写内存内容


    3.6 U命令

    Debug的U命令将内存中机器指令翻译成汇编指令:
    在这里插入图片描述

    图表 16 反汇编


    在这里插入图片描述

    图表 17 反汇编


    3.7 A命令

    Debug的A命令以汇编指令的格式在内存中写入一条机器指令:
    在这里插入图片描述

    图表 18 写入指令


    3.8 T命令

    Debug的T命令执行一条机器指令:
    当前CS与IP的值分别为:CS=073F IP=0100 要使得计算机执行我们写入的1000:0020命令,需要先将当前CS与IP改为CS=1000 IP=0020
    在这里插入图片描述

    图表 19 T指令执行指令


    3.9 P命令

    P命令类似于T命令,只是不会进入子程序或中断服务程序中,遇到循环指令则一并执行完所有循环。不需要调试子程序,中断服务程序以及循环体时,要应用P命令,而不是T命令。
    在这里插入图片描述

    图表 20 P指令执行指令


    3.10 综合练习

    使用A命令,建立一段程序,程序功能:计算AX+BX+CX+DX。要求用R命令预先设置AX、BX、CX、DX几个寄存器的值。用U命令反汇编该程序,查看各指令机器码及存储位置。并用T命令单步执行该程序,记录其执行结果。

    在这里插入图片描述

    图表 21 写入程序


    在这里插入图片描述

    图表 22 修改CS:IP


    在这里插入图片描述

    图表 23 反汇编


    在这里插入图片描述

    图表 24 单步执行


    在这里插入图片描述

    图表 25 单步执行


    在这里插入图片描述

    图表 26 查看结果


    4. 实验总结

    1. 成功配置并搭建起汇编语言环境
    2. 成功运行了汇编语言代码测试,熟悉了汇编语言运行环境
    3. 掌握了汇编语言程序编辑、汇编、连接、运行以及利用 DEBUG 调试程序的方法。4. 熟练汇编语言程序上机调试的方法和过程。能够独立自主的编辑代码解决一些小问题,对汇编及DEBUG程序调试有了初步的了解。
    4. 通过本次实验,熟悉了汇编语言在debug程序下的各种操作,进一步掌握了debug的各种指令命令,通过本次实验,现在可以通过debug来调试汇编语言程序,查看内存地址等,并根据debug的内容进行代码分析。
    5. 通过debug使用的实验,让我更了解到汇编语言程序的魅力,体会到学习汇编语言的乐趣,加深了对汇编语言的理解。
  • 相关阅读:
    JS逆向-新榜数据nonce和xyz参数分析
    用DIV+CSS技术设计的餐饮美食网页与实现制作(web前端网页制作课作业)HTML+CSS+JavaScript美食汇响应式美食菜谱网站模板
    SAD notes
    多线程的学习中篇下
    人大与加拿大女王大学金融硕士——与其羡慕他人,不如充实自己
    [JDK8下的HashMap类应用及源码分析] 数据结构、哈希碰撞、链表变红黑树
    Springboot集成ip2region离线IP地名映射
    Loki+Grafana查询语句
    汽车驾驶3D模拟仿真展示系统更立体直观
    Windows搭建minio存储
  • 原文地址:https://blog.csdn.net/weixin_52117223/article/details/127774868