汇编语言debug入门
进入windows操作系统,因为我的虚拟机用的是win7 64位,所以装了一个Dos Box 的软件来执行这些指令。
输入debug回车,这样就进入了debug模式。
1: 输入 -r 查看或者修改寄存器,可以修改CS IP来指向要执行汇编的内存地址
-r 回车 查看
-r ax 回车 修改 ax的值
-r cs 回车 修改 cs的值
-r ip 回车 修改 ip的值
2: 输入-D 查看内存中的信息
-d 1000:0000 查看段地址为1000H ,偏移地址为0开始的内存信息
-d 1000:0000 00ff 就是查看 1000:0000 到1000:00ff的内存信息
查看主板生产日期
-d fff0:0000 00ff 可以看到右下角的 08/14/08 格式月/日/年, 08年8月14号生产的主板
这里的生产日期是只读的,无法修改,通过-e修改表面上看是改过了,下次打开后又恢复之前数据了
如果直接用 -d 0100 则会显示 DS:0100处的内存信息,也就是显示段地址为ds,便宜地址为0100的内存信息。
-d ds:0100 也可以这么使用
3:输入-E修改内存中位置的信息
-e 1000:0000 1a 00 09 10 a1 61 这样就可以修改对应段地址为1000H ,偏移地址为0开始的内存信息
-e 1000:0000 'a+b' 这样就会在内存1000:0000处写入61H(a的ASICC码) 1000:0001处+ 1000:0002 62
4:输入-u查看指定位置对应的汇编指令
-u 1000:0000 查看该处的汇编指令
-u cs:0000 查看段地址为cs处的汇编指令
5: 输入-t 执行指令
-t 执行CS:IP所指向的第一个指令,如果要执行自己写入内存的指令,应该先通过-r来改变CS IP的值,然后再执行 -t 执行
-t 指令默认执行第一条指令后停止。但是当遇到修改SS的指令时,会把紧接的下一条指令也执行了。
6:输入-a 输入汇编指令
-a 1000:0000 回车
这样就可以直接在1000:0000处输入汇编指令了,注意再输入完之后,输入一个空格,表示输入完毕,输入完毕后,通过-r修改CS ip来指向对应的内存地址,然后就可以通过-t逐行执行了,每执行一次通过-r来看对应的寄存器的变化。
-a 回车 直接输入汇编指令,默认会在cs:ip处输入,所以直接用-a 回车输入汇编指令,然后用-t执行那么执行的就是刚刚输入的汇编指令,这样可以用来调试汇编指令
7:输入-g 直接跳转到哪步执行
用-t是需要一步一步执行,但是往往遇到loop循环时候,次数很多,必须要用-g跳到指定行执行
-g 0019 直接跳到便宜地址为0019h处执行
最后用DEBUG加载.exe文件
用RadASM编写好asm文件(新建选择masm编译器,dos)编写好后用编译、链接、运行,此时生成了对应的exe文件。比如在:D:\RadASM\Masm\Projects\test\test.exe
再用命令 debug D:\RadASM\Masm\Projects\test\test.exe 回车
-u 查看对应test.exe里的汇编指令 -t执行 -g 跳转到哪个偏移地址执行
汇编语言debug入门的更多相关文章
- 汇编语言程序入门实验一:在dos下对用户输入作出应答
汇编语言程序入门实验一:在dos下对用户输入作出应答 1,背景 成功预言了今天要上计算机操作系统上机实验课,昨天预习后,今天的两个上机实验做得很成功.但是也有一些问题.问题1:学校的系统目前是wind ...
- 汇编语言程序入门实验二:在dos下建立子目录操作
汇编语言程序入门实验二:在dos下建立子目录操作 1,背景 在读此文,并读懂前,建议读者先阅读这两篇博客 1,在dos环境下汇编语言程序设计入门(输出hello world)和masm32的下载.安装 ...
- 汇编语言从入门到精通-5微机CPU的指令系统1
微机CPU的指令系统 5.1 汇编语言指令格式 为了介绍指令系统中指令的功能,先要清楚汇编语言是如何书写指令的,这就象在学习高级语言程序设计时,要清楚高级语言语句的语义.语法及其相关规定一样. 5.1 ...
- 汇编语言从入门到精通-2CPU资源和存储器
CPU资源和存储器 在汇编语言中,需要访问的硬件资源主要有:CPU内部资源.存储器和I/O端口.本章将着重讲解CPU内部寄存器的命名.功能及其常见的用途,还要介绍存储器的分段管理模式.存储单元地址的表 ...
- 051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试——debug入门1
051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试--debug入门1 本文知识点: 程序调试--debug入门1 程序 ...
- Chrome开发者工具Debug入门
译者按: 手把手教你摆脱console.log,掌握高级的debug方法. 原文: Learn How To Debug JavaScript with Chrome DevTools 译者: Fun ...
- 汇编学习(三)——汇编语言程序入门
一.寻址方式 1.概念: 一条指令由操作码和操作数构成,操作码是系统定义好的符号,执行指定的操作,操作数即是指令的对象,而寻址方式就是操作数的指定方式 操作码 目的操作数,源操作数 2.寻址方式的三种 ...
- [汇编语言]-debug跟踪执行
ffff:0-ffff:d内存中数值求和放入dx寄存器中 代码: add.asm assume cs:code code segment mov ax,0ffffH mov ds,ax mov dx, ...
- JAVA的debug入门和多断电调试
调试的一般都是逻辑 第一步的错误双击数字旁边的蓝色地方,或者点击右键如图 断点的意思就是程序执行在哪里就停止 当找不到DEBUG中的Variables是在位置输入Variables就可以了: 再按下F ...
随机推荐
- 网页布局要注意的事项,以及CSS3需要特别注意的地方。
overflow: hidden; white-space: nowrap; text-overflow: ellipsis;隐藏超出部分,出省略号 一定要先布局!布局!布局!要先设置好色块,将位置确 ...
- Node.js学习准备篇
这里写个Node.js 准备篇包含内容有node.js 的安装,命令行运行node.js 文件,使用webStrom 编写 node.js 时有提示功能,并用webStrom 运行 Node.js 其 ...
- iOS项目之苹果审核被拒
解读: 3.2 其他业务模式问题下方列表并非详尽清单,并且您提交的 App 可能会导致我们的政策有所更改或更新,但这里有一些额外的应做事宜和勿做事宜需要您谨记在心: 可以接受 (i)在您的 App 中 ...
- iOS项目之NSLog相关
这算是在项目中最常用的命令了,方便程序员查看日志数据,便于程序调试.在开发中我们经常会进行一些设置,下面就来简单的说一说: 先来看看普通的NSLog: - (void)viewDidLoad { [s ...
- lvs 初始 第一章
Linux Virtual Server 第一章 初识 一 . 介绍 LVS集群采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动 ...
- 获奖感想和python学习心得
一,获奖感想 很荣幸能成为小黄杉的获得者,也很感谢老师对我的这份鼓励和期望.回顾本学期的python学习中,我从一名对编程一无所知的小白,成为一名刚入门的程序猿.首先,我要感谢我的任课老师娄嘉鹏老师, ...
- 如何退出vim
按ESC键 按ESC键 按ESC键 然后: 最下面出现一条能输入命令的地方 输入冒号 输入冒号 输入冒号 然后输入命令: :w 保存文件但不退出 :w file 将修改另外保存到 file 中,不退出 ...
- Java Web获取Web应用根路径
最基本的 1,request.getRealPath("/");这个方法已不推荐用 2,在Servlet 里用this.getServletContext().getRealPat ...
- pandas之时间序列
Pandas中提供了许多用来处理时间格式文本的方法,包括按不同方法生成一个时间序列,修改时间的格式,重采样等等. 按不同的方法生成时间序列 In [7]: import pandas as pd # ...
- CookieHelper
using System.Web: /// <summary> /// CookieHelper /// </summary> public static class Cook ...