汇编语言学习(三)——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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/86090.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于DDOS

DDOS是一门没什么技术含量的东西,其本质而言是通过大量数据报文,发送到目标受害主机IP地址上,导致目标主机无法继续服务(俗称:拒绝服务) DDOS灰产人期望达成的预期目标,几乎都是只要把对面打到 …

Modbus转Ethernet IP网关助力罗克韦尔PLC数据交互

在工业自动化领域,Modbus协议是一种广泛应用的串行通信协议,它定义了主站和从站之间的通信规则和数据格式。罗克韦尔PLC是一种可编程的逻辑控制器,通过Modbus协议实现与其他设备之间的数据交互。然而,随着以太网技术的普及和发展&…

C# winform教程(二)----button

一、button的使用方法 主要使用方法几乎都在属性内,我们操作也在这个界面 二、作用 用户点击时触发事件,事件有很多种,可以根据需要选择。 三、常用属性 虽然属性很多,但是常用的并不多 3.常用属性 名称内容含义AutoSize自动调…

【 java 基础问题 第二篇 】

目录 1.深拷贝和浅拷贝 1.1.区别 定义 定义 1.2.实现深拷贝的方式 2.泛型 2.1.定义 2.2.作用 3.对象 3.1.创建对象的方式 3.2.对象回收 3.3. 获取私有成员 4.反射 4.1.定义 4.2.特性 4.3.原理 5.异常 5.1.异常的种类 5.2.处理异常的方法 6.Object 6.1.等于与…

Kafka 入门指南与一键部署

Kafka 介绍 想象一下你正在运营一个大型电商平台,每秒都有成千上万的用户浏览商品、下单、支付,同时后台系统还在记录用户行为、更新库存、处理物流信息。这些海量、持续产生的数据就像奔腾不息的河流,你需要一个强大、可靠且实时的系统来接…

湖北理元理律师事务所:企业债务重组的风险控制方法论

一、担保链破解:阻断债务传染的核心技术 2023年武汉某建材公司案例: 原始债务结构: A公司(主债务人)欠款200万 ↓ B公司(担保人)←连带责任触发执行 ↓ C公司(B公司担…

如何在CloudCompare中打开pcd文件

你只需要将pcd文件的路径改在全英文路径下,CloudCompare就可以打开。若含中文,就会报错:

中医的十问歌和脉象分类

中医核心理论框架如下 诊断技术如下 本文主要介绍问诊和切诊。 十问歌的“十”是虚指,实际包含12个核心问题,脉象28种中常见仅10余种,重点解释脉诊的物理本质(血流动力学触觉感知) 以下是中医十问歌的完整内容及脉…

基于智能代理人工智能(Agentic AI)对冲基金模拟系统:模范巴菲特、凯西·伍德的投资策略

股票市场涉及众多统计数据和模式。股票交易基于研究和数据驱动的决策。人工智能的使用可以实现流程自动化,让投资者在研究上花费更少的时间,同时提高准确性。这使他们能够更加专注于监督实际交易和服务客户。 顶尖对冲基金经理发挥着至关重要的作用&…

大二下期末

一.Numpy(Numerical Python) Numpy库是Python用于科学计算的基础包,也是大量Python数学和科学计算包的基础。不少数据处理和分析包都是在Numpy的基础上开发的,如后面介绍的Pandas包。 Numpy的核心基础是ndarray(N-di…

D3ctf-web-d3invitation单题wp

#注入 #用kali构造凭证访问MinIO服务器 #用mc带临时凭证访问远程Minion的储存桶 还有一个 minio 服务的api,我们后面要用 /static/js/tools.js function generateInvitation(user_id, avatarFile) {if (avatarFile) {object_name avatarFile.name;genSTSCreds(ob…

基于 Vue 和 Spring Boot 实现滑块验证码的机器验证

基于 Vue 和 Spring Boot 实现滑块验证码的机器验证 需求概述技术选型前端实现1. 引入组件2. 修改后端请求URL3. 新增机器验证页面4.首页调用验证组件 后端实现流程梳理具体实现1. 引入依赖2. 增加yml配置3. 代码实现4.跨域配置(可选) 实现效果二次验证的…

[Java恶补day13] 53. 最大子数组和

休息了一天,开始补上! 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 示例 1: 输入:nums …

sql server如何创建表导入excel的数据

在 SQL Server 中,可以通过几种方式将 Excel 数据导入到数据库表中。下面是一个完整的流程,包括如何创建表,以及将 Excel 数据导入该表的方法: ✅ 方法一:使用 SQL Server Management Studio (SSMS) 的导入向导&#x…

C++单例模式教学指南

C单例模式完整教学指南 📚 目录 [单例模式基础概念][经典单例实现及问题][现代C推荐实现][高级话题:双重检查锁][实战应用与最佳实践][总结与选择指南] 1. 单例模式基础概念 1.1 什么是单例模式? 单例模式(Singleton Pattern&…

使用xdocreport导出word

之前java总用freemaker进行导出&#xff0c;但是改xml实在是太繁琐了&#xff0c;这次找了另一个工具进行体验. 一、简单导出 pom引入 <dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>fr.opensagres.xdocreport.core</arti…

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …

C++.OpenGL (2/64)你好,三角形(Hello Triangle)

你好,三角形(Hello Triangle) 绘制流程概览 #mermaid-svg-MvIGIovxiuKVfzy8 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-MvIGIovxiuKVfzy8 .error-icon{fill:#552222;}#mermaid-svg-MvIGIovxiuKVfzy8 .error…

汽车安全体系:FuSa、SOTIF、Cybersecurity 从理论到实战

汽车安全&#xff1a;功能安全&#xff08;FuSa&#xff09;、预期功能安全&#xff08;SOTIF&#xff09;与网络安全(Cybersecurity) 从理论到实战的安全体系 引言&#xff1a;自动驾驶浪潮下的安全挑战 随着自动驾驶技术从L2向L4快速演进&#xff0c;汽车安全正从“机械可靠…

N2语法 列挙、話題提出

1&#xff0c;&#xff5e;やら&#xff5e;やら  接続&#xff1a;名詞、辞書形  意味&#xff1a;…啦…啦&#xff08;列举代表性的事物&#xff09;  例文&#xff1a;     家に帰って料理やら洗濯やら何もしなければならない。     帰国前、買い物やら荷造りや…