当前位置: 首页 > news >正文

汇编语言学习(三)——DoxBox中debug的使用

目录

一、安装DoxBox,并下载汇编工具(MASM文件)

二、debug是什么

三、debug中的命令


一、安装DoxBox,并下载汇编工具(MASM文件)

链接:

https://pan.baidu.com/s/1IbyJj-JIkl_oMOJmkKiaGQ?pwd=j4th

提取码:j4th

 1、下载安装之后双击DOSBox0.74-win32-installer.exe文件进行安装。

2、配置DOS汇编器

       (1) 直接将下载好的MASM文件夹直接复制到自己安装DosBox文件夹下面即可。

  • MASM.EXE文件用于编译;
  • LINK.EXE文件用于链接;
  • debug.exe文件用于调试;

        

        (2)打开DosBox,输入以下命令将Debug工具挂载到虚拟C盘:

mount C d:/Dosbox/masm

        

         其中:d:/Dosbox/masm路径下存放着debug.exe文件;

        (3)运行debug工具,输入一下两条命令,即可运行debug.exe文件。

二、debug是什么

        Debug是DOS系统中著名的调试程序,也可以在Windows系统中以实模式运行。Debug的主要功能包括查看和修改寄存器内容、查看和修改内存内容、将内存中的机器指令翻译成汇编指令、执行机器指令、以汇编指令格式写入内存等。

三、debug中的命令

        (1)R命令用于查看或改变CPU寄存器的内容

                查看所有寄存器的内容

-r  用于查看寄存器的值

                查看指定寄存器的内容

-r 寄存器名     

                修改寄存器的内容,debug会提示输入新的值(以“:”表示) 

-r 寄存器名
:值

                实例演示: 

        (2)D命令用于查看内存中的内容

                 指定段地址和偏移地址

-d 段地址:偏移地址

从段地址1000和偏移地址0开始显示内存内容              

                使用段寄存器

-d 段寄存器:偏移地址

 从 DS 段寄存器中的段地址和偏移地址 100 开始显示内存内容

                 不指定地址

-d

                指定指定段地址和偏移地址以及结尾偏移地址

-d 段地址:偏移地址 结尾偏移地址

从段地址1000和偏移地址0开始显示内存内容,结束位置在段地址1000和偏移地址1f

  • 如果指定了段地址和偏移地址,d 命令将从该地址开始显示内存内容。
  • 如果未指定地址,d 命令将从上次 d 命令显示的最后一个单元的下一个单元开始显示,或者从默认地址开始显示。
  • 默认情况下,d 命令从 DS:100H 地址开始显示 128 个单元的内容,但实际行为可能因环境而异。

                  输出格式:

  • 每行显示 16 个字节的内容。
  • 左边是每行的起始地址。
  • 中间是每个内存单元中的数据对应的十六进制值。
  • 右边是每个内存单元中的数据对应的可显示的 ASCII 码字符。若没有对应可显示的 ASCII 字符,DEBUG 就用“.”来代替

        (3)E命令用于修改内存中的内容

                批量修改内存单元

E 段地址:偏移地址  数据1 数据2...

           逐个修改内存单元

E 段地址:偏移地址逐个询问式修改空格 -接受,继续回车 -结束

   

        (4)U命令用于将内存中的机器指令翻译成汇编指令

汇编指令

mov ax,0123H

mov bx,0003H

mov ax, bx

add ax,bx

对应的机器码为

B8 23 01

BB 03 00

89 D8

01 D8

e 段地址:偏移地址 数据(机器码)-------写入

d 段地址:偏移地址    -----------------查看

u 段地址:偏移地址  ------------查看对应的汇编指令

 

        (5)A命令用于以汇编指令格式在内存中写入机器指令

a  段地址:偏移地址 数据(写入汇编指令)

d 段地址:偏移地址 --------查看数据

u 段地址:偏移地址 -----------查看代码

 

        (6)T命令用于执行cs:ip处的机器指令

                先在CS:IP地址处写入几条指令

                使用-t执行

        (7)Q命令用于退出Debug

-q 退出debug

相关文章:

  • Golang基础学习
  • 关于GitHub action云编译openwrt
  • 【深度学习-Day 24】过拟合与欠拟合:深入解析模型泛化能力的核心挑战
  • 功能安全实战系列09-英飞凌TC3xx LBIST开发详解
  • 【评测】用Flux的图片文本修改的PS效果
  • JDK21深度解密 Day 14:生产环境监控与排错
  • 算法训练第十天
  • Linux 下关于 ioremap 系列接口
  • 如何判断指针是否需要释放?
  • Cell-o1:强化学习训练LLM解决单细胞推理问题
  • FPGA 可重构技术的实现方法
  • 分享两个日常办公软件:uTools、PixPin
  • 好未来0520上机考试题2:有效三角形的个数
  • 【大模型原理与技术-毛玉仁】第五章 模型编辑
  • 并行硬件环境及并行编程
  • Shell 命令及运行原理 + 权限的概念(7)
  • 手拉手处理RuoYi脚手架常见文问题
  • 【Qlib】Windows上Qlib安装与初步使用
  • 量子电路设计:以 Qiskit 为例
  • PicSharp(图片压缩工具) v1.1.6
  • html商务网站模板/上海宝山网站制作
  • 网站建设与维护案列/广东seo推广贵不贵
  • 网站建设公司广告语/品牌设计公司排名前十强
  • 给别人做网站如何收费/代写文案平台
  • 更改wordpress小工具的样式/关键词seo服务
  • 成都网站备案太慢/百度自然排名优化