汇编 | 8086 DEBUG调试学习笔记
在8086汇编中DEBUG是个非常实用的工具,并且可以非常明了的查看每一步指令每一个段的相对状态,有利于学习。下面列举一下DEBUG的一些使用方法:
-A:可以开始在相应位置编写代码,其中后面可以接一个地址,表示写的位置;从下图可以看到,A后加参数2000,即从段偏移2000的位置开始存放代码。

-C:
-c [add1]L[length] [add2]是将add1和add2开始的length个数据显示出来,进行比较;下图键入:
-C 50L20 100第二列显示的是0050-006F的数据内容,第三列显示的是0010-011F的数据内容,而长度为20。非常直观的显示了数据。
-D:显示存储空间中的内容。

如上所示,0200中本来是空的,通过a命令写进代码后再次查看可以发现里面存放了新的操作码。
另外还可以通过指示明确段和偏移直接查询特定位置的内容。(如
CS:200)-E:修改特定存储空间中的内容
-E 100
073F:0100 B8.12
也可以通过连续输入的方式更改连续的一片内容:

-F:用于填充一段存储单元,但是要注意他的格式把段地址和段偏移要写清楚
如下图所示,L10表示填充的长度是10 后面加填充的内容,通过两个命令可以发现,如果填充的内容我只写了 \(n\) 个而填充的长度我写了\(m\)个(\(n<m\) )则会顺序循环的自动填充。

-G:这个命令使用不当会导致系统崩溃使用方法为:G[=address],代表从当前 \(cs:ip\) 所指的位置执行到address处.
技巧:先用 -U 查看部分指令内容,然后用 -G 快速执行内容
-H: 这个选项比较简单,即输入两个参数,对这两个参数进行加减运算,把想加的结果显示在第一列,相减的结果放在第二列,其中我们可以看到,当减为负数时候是以补码的形式表示的。

-I: 从某一端口输入并显示一个字节,后面的参数接端口号。

-L: 发现L命令并不能使用,查阅了资料,dos下运行debug时,涉及到直接写硬盘扇区的操作都是被禁止的,这是windows的保护功能。如果想要运行全部debug命令,必须在实模式dos下运行。
-M:把 \(cs\) 中的一段内容移动到内存单元中,这里默认指的就是 \(DS\) 段。
-N:用于对文件命名,-n[name]。
-O: 用于给端口发送数据,
; 向2F8端口发送数据4F
-O 2F8 4F
-Q :使用Q命令来退出debug调试
-R:R命令是个非常方便的命令,它可以查看和修改8086中寄存器的值。使用-R可以直接查看所有的寄存器,使用 -R+[指定寄存器] 可以实现对某个寄存器的修改,如上图所示,已经成功修改了AX中的值。其中使用-R F可以查看标志寄存器的状态如图所示,它不是单纯的0和1不太好记,可以查实验书来对照,可以看到当前寄存器属于:未溢出、方向正、允许中断、符号为正、不是0、没有辅助进位、奇、没有进位的状态。

-F:用于搜索指定位置中的字符,返回的是精确的地址
-T:单步调试
-U:反汇编指令,可以将存在内存中的机器码反编译成汇编语言,其中一个参数是起始地址
-W:一直没调试成功,原因应该和L命令相同,windows为了保护硬盘,并不允许在这种情况下使用此命令。
通过学习可以发现立即数在使用时候默认为 \(16\) 进制,并且不需要加H,末尾加H反而会报错,并且debug中并不区分大小写。
emu8086也是一个非常好的调试软件,操作简单方便网上就可以下载。。
debug在CMD中打不开是因为windows版本过高,可以下载Dosbox在其中运行调试
汇编 | 8086 DEBUG调试学习笔记的更多相关文章
- OD调试学习笔记7—去除未注册版软件的使用次数限制
OD调试学习笔记7—去除未注册版软件的使用次数限制 本节使用的软件链接 (想自己试验下的可以下载) 一:破解的思路 仔细观察一个程序,我们会发现,无论在怎么加密,无论加密哪里,这个程序加密的目的就是需 ...
- PX01关于手机屏SPI触摸调试学习笔记
上位机工具:http://www.xk-image.com/download/blog/0002_TP调试/LcdTools20210605.rar 调试案例:http://www.xk-image. ...
- PX01关于手机屏IIC触摸调试学习笔记
相关文件下载: 上位机工具:http://www.xk-image.com/download/blog/0002_TP调试/LcdTools20210605.rar 调试案例:http://www.x ...
- eclipse debug (调试) 学习心得
eclipse debug (调试) 学习心得 进入debug模式: 1.设置断点 2.启动servers端的debug模式 3.运行程序,在后台遇到断点时,进入debug调试状态 ...
- idea DeBug调试学习
在Intellij IDEA中使用Debug 目录 一.Debug开篇 二.基本用法&快捷键 三.变量查看 四.计算表达式 五.智能步入 六.断点条件设置 七.多线程调试 八.回退断点 九.中 ...
- (转) eclipse debug (调试) 学习心得
1.Step Into (also F5) 跳入2.Step Over (also F6) 跳过3.Step Return (also F7) 执行完当前method,然后return跳出此metho ...
- Windows调试学习笔记:(二)WinDBG调试.NET程序示例
好不容易把环境打好了,一定要试试牛刀.我创建了一个极其简单的程序(如下).让我们期待会有好的结果吧,阿门! using System; using System.Collections.Generic ...
- ansible debug模块学习笔记
- name: Print debug infomation eg hosts: test2 gather_facts: F tasks: - name: Command run line shell ...
- Debug tool 学习笔记
GDB调试命令大全 gdb --pid 1235 gdb core.1234 where (bt) //where the segmentation fault occurred f 1 ...
- Windows调试学习笔记:(一)WinDBG中加载SOS和CLR
最近产品环境出现了部分服务器当机情况,虽然重启之后问题就不出现了.但本着彻底解决问题的态度,想要找到root cause.多次尝试Visual Studio失败(可能是代码惊醒了优化和签名)之后,决定 ...
随机推荐
- 抽象工厂(Abstract Factory)
模式定义 提供一个接口, 让该接口负责创建一系列'相关或者相互依赖的对象' , 无需指定他们具体的类 要点总结 如果没有应对'多系列对象构建'的需求变化 ,则没有必要使用Abstract Factor ...
- 学会XPath,轻松抓取网页数据
一.定义 XPath(XML Path Language)是一种用于在 XML 文档中定位和选择节点的语言.XPath的选择功能非常强大,可以通过简单的路径选择语法,选取文档中的任意节点或节点集.学会 ...
- 免费背景音人声分离解决方案MVSEP-MDX23,足以和Spleeter分庭抗礼
在音视频领域,把已经发布的混音歌曲或者音频文件逆向分离一直是世界性的课题.音波混合的物理特性导致在没有原始工程文件的情况下,将其还原和分离是一件很有难度的事情. 言及背景音人声分离技术,就不能不提Sp ...
- 使用dtd定义属性
- 从零玩转Websocket实时通讯服务之前后端分离版本-websocket
title: 从零玩转Websocket实时通讯服务之前后端分离版本 date: 2021-10-25 00:47:12.945 updated: 2021-12-26 17:43:10.496 ur ...
- Halo新年灯笼-halonewyaer
title: Halo新年灯笼 date: 2021-12-29 15:49:34.665 updated: 2022-03-10 16:00:53.189 url: https://www.yby6 ...
- STM32CubeMX教程5 TIM 定时器概述及基本定时器
1.准备材料 开发板(STM32F407G-DISC1) ST-LINK/V2驱动 STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) 逻 ...
- 虚拟化M搭建及基本操作
虚拟化MH搭建 虚拟化概念: 虚拟机安装分为2块:RHEVM .RHEVH RHEVM:负责管理角色 RHEVH:负责运算角色 2016-09-23_0-52-54.png hypervisor: 提 ...
- java集合迭代器(Iterator)
1:什么是迭代器(Iterator): 在java中有很多存储数据的容器比如:(ArrayLIst,HashSet.....)每个容器都有自己的特点 因为内部结构不一样所以为了能对容器内元素的操作更简 ...
- flutter常用的设计模式
单例模式(Singleton Pattern): 确保一个类只有一个实例,并提供一个全局访问点. 工厂模式(Factory Pattern): 定义一个创建对象的接口,但让子类决定具体实例化哪个类:常 ...