Debug 的使用
R 命令:查看、修改寄存器的内容
-r:查看寄存器的内容

CS=0AF9,IP=0100,也就是说内存 0AF9:0100 处的指令为 CPU 当前要读取、执行的指令
Debug 也列出了 CS:IP 所指向的内存单元处所存放的机器码,并将它翻译成汇编指令
从上图可以看到,CS:IP 所指向的内存单元 0AF9:0100,此处存放的机器码为 E9ABD8,对应的汇编指令为 JMP D9AE
-r 寄存器:修改寄存器的内容

-r 查看一下修改的结果
-d:查看内存中的内容
查看 10000H 中的内容,-d 段地址:偏移地址,Debug 将列出从指定内存单元开始的 128 个内存单元的内容

Debug 列出了 1000:0 ~ 1000:7F 中的内容
左边是每行的起始地址
中间的是从指定地址开始的 128 个内存单元的内容,用十六进制的格式输出,每行的输出从 16 的整数倍的地址开始,最多输出 16 个单元的内容,内存 1000:0 单元中的内容是 00,内存 1000:67 单元中的内容是 19
右边是每个内存单元中的数据对应的可显示的 ASCII 码字符,如果没有对应可显示的 ASCII 字符,就用“.”替代
继续 -d 命令,可以查看之后 128 个内存单元的内容

-d 段地址:偏移地址 结尾偏移地址,可指定 -d 命令的查看范围

-e:修改内存中的内容
-e 段地址:偏移地址 数据...:修改数据

-e 段地址:偏移地址:逐个修改某一地址开始的内存单元中的内容
输入 -e 1000:0 回车

在 00. 后输入要修改成的数据,按空格键继续

也可以不修改该项的数据,直接按空格键跳过
不论是修改的还是没有修改的,只要按了空格键,就表示处理完成
按回车键,E 命令操作结束

-e 段地址:偏移地址 带单引号的字符:向内存中写入字符

没带引号修改内存单元中的内容,带引号修改内存的内容

向 1000:0、1000:2、1000:4 单元中写入数值 1,2,3;向 1000:1、1000:3、1000:5 单元中写入字符 a,b,c 的 ASCII 码值,向对应的内存中写入 a,b,c
也可以向内存中写入字符串

带双引号的是字符串
用 -e 命令向内存中写入机器码
机器码 对应的汇编指令
b80100 mov ax,
b90200 mov cx,
01c8 add ax,cx
从内存 1000:0 单元开始写入上段机器码

用 -u 命令查看内存中的机器码和对应的汇编指令


-u 命令的显示输出分为 3 部分,每一条机器指令的地址、机器指令、机器指令所对应的汇编指令
-t 命令可以执行一条或多条指令
首先通过 -r 命令把 CS:IP 指向 1000:0

然后通过 -t 命令执行写入的指令

mov ax,0001 执行后,AX 的值变为 1,IP 的值加上 3,因为 mov ax,0001 的指令长度为 3
-a 命令以汇编指令的形式在内存中写入机器指令
-a 段地址:偏移地址

-a:从一个预设的地址开始输入指令

Debug 的使用的更多相关文章
- jmeter sampler maven项目排错记
eclipse 创建的maven项目,引入jar包之后出现红色叹号,一直找不到原因,连main方法都无法运行,提示找不到类: 错误: 找不到或无法加载主类 soapsampler.SoapSample ...
- 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL
在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...
- .NET Core的日志[3]:将日志写入Debug窗口
定义在NuGet包"Microsoft.Extensions.Logging.Debug"中的DebugLogger会直接调用Debug的WriteLine方法来写入分发给它的日志 ...
- 设置tomcat远程debug
查看端口占用情况命令: netstat -tunlp |grep 8000 tomcat 启动远程debug: startup.sh 中的最后一行 exec "$PRGDIR"/& ...
- Android NDK debug 方法
最近又频繁遇到 NDK 的错误,记录一下debug调试的一些经验,以备后续查看 一般来说,在Android Studio中的Monitor中将过滤器的 LOG TAG 设置为 "DEBUG& ...
- 玩转Windows服务系列——Debug、Release版本的注册和卸载,及其原理
Windows服务Debug版本 注册 Services.exe -regserver 卸载 Services.exe -unregserver Windows服务Release版本 注册 Servi ...
- struts debug 标签
< s:debug> 引起下面的错误 org.apache.jasper.JasperException: Caught an exception while getting the pr ...
- How to debug .NET Core RC2 app with Visual Studio Code on Windows?
Simone Chiaretta (http://codeclimber.net.nz/archive/2016/05/20/How-to-debug-NET-Core-RC2-app-with-Vi ...
- Debug Databinding Issues in WPF
DataBinding is one of the most powerful features in WPF. But because it resolves the bindings at run ...
- Debug JDK变量显形
本文面向的朋友 本文主要说明在使用Eclipse Debug JDK时,看不到变量值的解决办法. 如果您看到上面绿色字体表示不敢兴趣,请一定果断back,如果您不爽,请在下面使劲的拍. Debug J ...
随机推荐
- 案例学习:留言本制作V1、V2
需求V1: 请设计一个留言本功能的程序,包括普通用户发布和查看留言,管理员登录.查看和删除留言. 实验指导内容详见留言本制作(1) 需求V2: 1.请修改留言本程序的功能,添加普通用户添加登录功能,用 ...
- 来自lombok的注解(解决idea中的找不到get,set方法,找不到log的问题)
今天看代码,发现idea报错,仔细一看调用的get,set方法bean中都没有,但是运行起来却没有问题,这个让我很疑惑.后来发现在类上有一个以前没见过的注解@Data,大概就是因为有他的原因.这个注解 ...
- 【IDEA】笔记
引言 IDEA是JAVA开发的一个神器,熟悉它能极大提高我们的开发效率.正所谓工欲善其事,必先利其器. 快捷键 快捷键 介绍 Ctrl + F 在当前文件进行文本查找 (必备) Ctrl + R 在当 ...
- canvas - 圆圈内 hover 高亮 效果
各种计算还挺繁琐的, 关键点在角度的计算, 根据鼠标位置, 利用atan(y/x) 得到反正切值 , 角度 (tan输入的是r和x围成的那个角,输出的是y/x.反tan就是输入y/x输出角.) &l ...
- Electron 打包时下载 xxx-electron-v1.6.8--x64.zip 文件出错
Electron 打包时下载 xxx-electron-v1.6.8--x64.zip 文件出错 今天在windows上打包其它平台的Electron应用的时候,由于是第一次,所以总是下载 xxx-e ...
- get传输时,会将加号+ 转换为空格
解决办法: 前端: 替换加号为 ‘%2B’, 后端: 直接接收即可.
- Pythond 读写HDF5文件
HDF(Hiearchical Data Format)是一种针对大量数据进行组织和存储的文件格式,可以存储不同类型的图像和数码数据的文件格式,并且可以在不同类型的机器上传输. HDF是美国国家高级计 ...
- BJOI2019 游记
BJOI 2019 游记 Day 1 开场拿到 \(T1\) 发现可以转成求平均 \(log\) 直接 \(AC\) 自动机上 \(Dp\) 一波即可 \(T2\) 发现是到数论神仙题,大概能想到要用 ...
- webstorm-前端javascript开发神器中文教程和技巧分享(转)
webstorm是一款前端javascript开发编辑的神器,此文介绍webstorm的中文教程和技巧分享. webstorm8.0.3中文汉化版下载:百度网盘下载:http://pan.baidu. ...
- C# 实现程序只启动一次(总结)
我前面的三篇文章是从网上找到的(如下链接),都说是实现程序只启动一次的功能. C#防止程序多次运行C#检测程序重复运行的函数(可以在多用户登录情况下检测)C# 实现程序只启动一次(多次运行激活第一个实 ...