debug命令

Debug命令详解

淺唱寂寞╮ 提交于 2020-01-01 12:42:41
R命令的使用 作用:观看和修改寄存器的值。 在提示符“-”下输入以下命令:R。DEBUG将会显示出当前所有寄存器和标志位的状态。 接下来再输入命令rax。在提示符“:”后输入100。该命令的作用是将寄存器ax的值设置为100(注意:DEBUG使用的是十六进制,这里的100相当于十进制的256。) 最后再执行r命令,观看修改后的寄存器值。 H命令的使用 H命令作用:计算两个十六进制数的和与差。 在提示符“–”下输入以下命令:h 10 1。观看命令执行结果。 运行结果的前一个数是计算出来的和,后一个数是计算出来的差。计算结果均用十六进制形式表示。 D命令的使用 D命令作用:显示内存区域的内容。 在提示符“–”下连续执行命令R、D、D。观看命令执行结果。 前面已经介绍过了,命令R的作用是显示当前寄存器的值。而命令D的作用是显示内存区域的内容,最左边是内存的起始地址,中间以十六进制的形式显示内存值,最右边是以ASCII码的形式显示内存值。每行最多显示16个字节的内容。 命令D可以带参数也可省略参数。设DEBUG启动时DS的值为X,当省略参数时,命令D显示内容以X:100为起始,每次显示128个字节的内容。以后再执行不带参数的命令D时,DEBUG将按上次的位置接着显示下去。 带参数时DEBUG能够显示指定地址范围的内容。带参数的方式有三种: 方式一:d [起始位置]

DEBUG命令详解

ε祈祈猫儿з 提交于 2020-01-01 12:39:28
DEBUG是DOS中的一个外部命令,从DOS 1.0起就带有此命令,因此可见此命令的重要性了。虽然此命令的功能非常强大,可以解决许多问题,可是对许多人来说,尤其是初学者来说,却非常不易掌握。因此,现将DEBUG的命令详细介绍一番,以让大家知道它的使用。 Debug:A(汇编) 直接将 8086/8087/8088 记忆码合并到内存。 该命令从汇编语言语句创建可执行的机器码。所有数值都是十六进制格式,必须按一到四个字符输入这些数值。在引用的操作代码(操作码)前指定前缀记忆码。 a [address] 参数 address 指定键入汇编语言指令的位置。对 address 使用十六进制值,并键入不以“h”字符结尾的每个值。如果不指定地址,a 将在它上次停止处开始汇编。 有关将数据输入到指定字节中的信息,请单击“相关主题”列表中的 Debug E(键入)。 有关反汇编字节的信息,请单击“相关主题”列表中的 Debug U(反汇编)。 说明 使用记忆码 段的替代记忆码为 cs:、ds:、es: 和 ss:。远程返回的记忆码是 retf。字符串处理的记忆码必须明确声明字符串大小。例如,使用 movsw 可以移动 16 位的字串,使用 movsb 可以移动 8 位字节串。 汇编跳转和调用 汇编程序根据字节替换自动将短、近和远的跳转及调用汇编到目标地址。通过使用 near 或 far

Debug命令详解

夙愿已清 提交于 2019-12-06 16:10:44
R命令的使用 作用:观看和修改寄存器的值。 在提示符“-”下输入以下命令:R。DEBUG将会显示出当前所有寄存器和标志位的状态。 接下来再输入命令rax。在提示符“:”后输入100。该命令的作用是将寄存器ax的值设置为100(注意:DEBUG使用的是十六进制,这里的100相当于十进制的256。) 最后再执行r命令,观看修改后的寄存器值。 H命令的使用 H命令作用:计算两个十六进制数的和与差。 在提示符“–”下输入以下命令:h 10 1。观看命令执行结果。 运行结果的前一个数是计算出来的和,后一个数是计算出来的差。计算结果均用十六进制形式表示。 D命令的使用 D命令作用:显示内存区域的内容。 在提示符“–”下连续执行命令R、D、D。观看命令执行结果。 前面已经介绍过了,命令R的作用是显示当前寄存器的值。而命令D的作用是显示内存区域的内容,最左边是内存的起始地址,中间以十六进制的形式显示内存值,最右边是以ASCII码的形式显示内存值。每行最多显示16个字节的内容。 命令D可以带参数也可省略参数。设DEBUG启动时DS的值为X,当省略参数时,命令D显示内容以X:100为起始,每次显示128个字节的内容。以后再执行不带参数的命令D时,DEBUG将按上次的位置接着显示下去。 带参数时DEBUG能够显示指定地址范围的内容。带参数的方式有三种: 方式一:d [起始位置]

DEBUG的基本命令的使用[MASM]

好久不见. 提交于 2019-12-04 11:25:50
DEBUG 的基本命令的使用 DEBUG 是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。 DEBUG 的命令都是一个字母,后跟一个或多个参数: 字母 [ 参数 ] 命令的使用中注意: ① 字母不分大小写; ② 只使用 16 进制数,没有后缀字母; ③ 分隔符(空格或逗号)只在两个数值之间是必须的,命令和参数间可无分隔符; ④ 每个命令只有按了回车键后才有效,可以用 Ctrl+Break 中止命令的执行; ⑤ 命令如果不符合 Debug 的规则,则将以 “error” 提示,并用 “^” 指示错误位置。 许多命令的参数是主存逻辑地址,形式是 “ 段基地址 : 偏移地址 ” 。其中,段基地址可以是段寄存器或数值;偏移地址是数值。如果不输入段地址,则采用默认值,可以是缺省段寄存器值。如果没有提供偏移地址,则通常就是当前偏移地址。 对主存操作的命令还支持地址范围这种参数,它的形式是: “ 开始地址 结束地址 ” (结束地址不能具有段地址),或者是: “ 开始地址 L 字节长度 ” 。 DEBUG命令一览: 分类 命令格式 功能简介 读写寄存器 R 显示所有寄存器的当前内容 R 寄存器名 显示和修改指定寄存器内容 RF 显示和修改标志寄存器内容 汇编和反汇编 A[ 内存地址 ] 从指定地址开始汇编指令 U[ 内存块 ]

Rocket - debug - Example: Accessing Registers Using Abstract Command

落花浮王杯 提交于 2019-12-04 02:12:33
https://mp.weixin.qq.com/s/RdJzE06mMkh2x__vVj_fEA 介绍riscv debug接口的使用实例:使用抽象命令读取寄存器。 1. Read s0 using abstract command 1) abstract command 抽象命令,Debug模块支持一些可选的抽象命令。一般情况下,debugger执行命令时,CPU核心是被暂停的: 命令是否支持只能通过执行之后判断返回的错误码来确定: debugger通过写command寄存器来执行命令: 使用data寄存器进行传参和接收返回值: 目前支持的抽象命令有三种: 2) command寄存器 3) Access Register Command 如果抽象命令是访问寄存器,那么command寄存器的格式如下: 在当前这个实例中: a. aarsize=2:表示Access the lowest 32 bits of the register; b. transfer=1:表示Do the operation specied by write; c. write=0:表示Copy data from the specified register into arg0 portion of data,即把目标寄存器的数据拷贝到data0; d. regno=0x1008