debug(实验)
一、用到的简单的DOS命令:
- cd\ ——首先要用cd\ 退回到根目录C>下
- dir ——显示文件列表
- md hb ——建立hb子目录
- cd hb ——进入hb子目录
- copy d:\dos\masm.exe c:\hb ——将D盘dos目录下的masm.exe拷贝到C盘hb目录下
- copy d:\dos\link.exe c:\hb ——将D盘dos目录下的link.exe拷贝到C盘hb目录下
- cd .. ——退回到上一级目录
- del \hb\masm.exe ——删除hb子目录中的某文件
- rd hb ——删除hb子目录(子目录中的所有文件必须先删除)
- e:——进入e盘
- cls ——清屏
- type——显示文本文件内容(如type c:\hb\abc.asm)
二、DEBUG命令有20多个,主要学习的最常用的命令有
- R ——查看和修改寄存器
- D ——查看内存单元
- E ——修改内存单元
- U ——反汇编,将机器指令变为汇编指令
- T /P——单步执行
- G ——连续执行程序
- A ——输入汇编指令
- Q ——退出
r命令:直接敲R,会显示CPU所有寄存器的信息;
敲R AX(或者其他某个寄存器的),可以查看并修改AX寄存器的内容,首先会显示AX寄存器的内容,然后在冒号后可以填入你新想修改成为的内容,在敲回车成功修 改。(ps:可以再敲一下R命令查看是否修改。)
d命令:查看存储单元的内容,16个字节单元为一小段。
单独敲D,从数据段(DS:0100)第一个单元开始显示,接连显示128个字节。
敲D 起点的逻辑地址 从起点开始显示128个字节单元 D CS:0100 从代码段的0100单元开始显示128个字节单元
敲D 起点的逻辑地址 终点地址的有效地址 显示存储单元从起点到终点的内容 D DS:0100 010F→显示数据段0100单元到010F单元的内容
敲D 起点的逻辑地址 L10(其他数字亦可,但注意应是换算成16进制后的数字) 显示起点之后16个字节单元(16进制中的10换算成10进制为16)
D ES:0100 L1→显示附加段中0100这1个字节单元。
e命令:可以改写多个存储单元的内容。
敲E 起始地址,之后敲下回车,开始从起始地址修改,会显示修改前该单元的内容,在 . 之后 填入修改的内容,如果继续从该单元后修改,则敲空格,结束敲回车。
u命令:反汇编,列出机器码与对应的汇编语言中的助记符。
U 起始地址;从起始地址开始反汇编,注意是在代码段中。ps:如果在进入debug中没有加入要调试的EXE文件,这是反汇编出来的程序代码不是用户编写的程序,这段程序 代码是系统代码段中保存的内容,有可能是系统程序,也可能是无效的代码。
t\p命令:可以单步执行代码。
在执行t\p之前检查用R命令IP是否指向要执行的代码,如果不是要修改。此外T命令可以单步执行多条指令,格式为 T =EA x(要执行的代码条数),即从代码段EA开始执行x 条代码。
a命令:在debug中,a命令可以输入汇编指令,系统将自动地将键入的指令翻译成机器代码,并相继地存放在从指定地址开始的存储区中。由于debug中默认的是16进制,所以要先 将10进制转化为16进制。
pl:计算35+27 35D=23H,27D=1BH

来源: 实验楼
链接: https://www.shiyanlou.com/courses/83
本课程内容,由作者授权实验楼发布,未经允许,禁止转载、下载及非法传播
输入A命令后,系统自动地给出逻辑地址0AEE:0100(CS:偏移地址),在其后输入汇编指令,回车后可输入下一条指令,直接回车则退出输入。也可以在A命令后给 出指令的存放地址,如A CS:0000,表示从代码段0单元开始存放输入指令。([0000]为数据段的字存储单元,在执行完上述指令后再执行D DS:0 L1可以看到[0000] 为3EH。)
部分内容参考实验楼《汇编语言(第2版)》郑晓薇编著配套实验。
来源: 实验楼
链接: https://www.shiyanlou.com/courses/83
本课程内容,由作者授权实验楼发布,未经允许,禁止转载、下载及非法传播
debug(实验)的更多相关文章
- SpringMVC框架 课程笔记
SpringMVC框架 课程笔记 第0章 SpringMVC框架的核心内容 1.SpringMVC 概述 2.SpringMVC 的 HelloWorld 3.使用 @RequestMapping 映 ...
- jmeter sampler maven项目排错记
eclipse 创建的maven项目,引入jar包之后出现红色叹号,一直找不到原因,连main方法都无法运行,提示找不到类: 错误: 找不到或无法加载主类 soapsampler.SoapSample ...
- 实验吧debug
在linux下进行调试时容易出现权限不够的情况:此时解决办法就是chmod 777+文件名提升权限,以实验吧debug为例,给出了简单的32elf文件,我在查看一些资料以后发现,我需要在main函数处 ...
- 汇编语言实验1—Debug基础操作
1.使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后CPU中相关寄存器中内容的变化. 记录1:最后一条指令执行完BX=(4026)H,AL=(66)H,检验结果. 两种写入:e命令 ...
- 【8086汇编-Day3】用debug做实验时的技巧与坑
Ⅰ· 无病呻吟 学一门语言,不动手实验是学不好的,在实验中不断遇坑然后解决,才有进益.所以写一下我在第一次汇编实验中的所思所想(王爽<汇编语言>第二章章末实验). Ⅱ · 实验内容 题解思 ...
- 20145212&20145204信息安全系统实验四报告
一.实验内容与步骤 1.本次实验建立在掌握嵌入式开发平台使用方法和配置方法的基础上,要求使用windows xp,linux(red hat),arm三个系统(即NFS方式): 2.在linux系统中 ...
- 学号20145332 《信息安全系统设计基础》实验五 简单嵌入式WEB服务器实验
实验目的 掌握在 ARM 开发板实现一个简单 WEB 服务器的过程. 学习在 ARM 开发板上的 SOCKET 网络编程. 学习 Linux 下的 signal()函数的使用. 实验内容 学习使用 s ...
- 北京电子科技学院(BESTI)实验报告4
北京电子科技学院(BESTI)实验报告4 课程: 信息安全系统设计基础 班级:1452.1453 姓名:(按贡献大小排名)周恩德 .郑凯杰 学号:(按贡献大小排名)20145217 .201453 指 ...
- 20145216 20145330 《信息安全系统设计基础》 实验五 简单嵌入式WEB 服务器实验
20145216 20145330 <信息安全系统设计基础> 实验五 简单嵌入式WEB 服务器实验 实验报告封面 实验步骤 1.阅读理解源码 进入/arm2410cl/exp/basic/ ...
随机推荐
- Python eval 作用和风险 (string 转为dict list tuple)建议用“ast.literal_eval”
a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]" b = eval(a) print b [[1, 2], [3, 4], [5, 6], [7, ...
- JAVA的protected权限
1.派生类能够訪问父类的protected数据.这是毫无疑问的. 2.今天做Think in java的习题发现,同一个包内的一个类调用还有一个类的protected数据是能够的.代码例如以下: pa ...
- iOS学习笔记(十七)——文件操作(NSFileManager)
iOS的沙盒机制,应用只能访问自己应用目录下的文件.iOS不像android,没有SD卡概念,不能直接访问图像.视频等内容.iOS应用产生的内容,如图像.文件.缓存内容等都必须存储在自己的沙盒内.默认 ...
- CodeIgniter框架——数据库类(配置+快速入门)
CodeIgniter用户指南——数据库类 数据库配置 入门:用法举例 连接数据库 查询 生成查询结果 查询辅助函数 Active Record 类 事务 表格元数据 字段元数据 自定义函数调用 查询 ...
- oracle 创建表并添加注释
CREATE TABLE t1(id varchar2(32) primary key,name VARCHAR2(32) ,age VARCHAR2(32) ) 添加表注释:COMMENT ON t ...
- Spring整合Velocity模版引擎
1. 首先通过pom.xml自动加载velocity扩展包到工程: <dependency> <groupId>velocity</groupId> <art ...
- js引入方式的弹框方法2
html代码: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta http-equiv=& ...
- 分布式缓存的一致性Hash算法 2 32
w 李智慧
- AGS Server 10.1 切图工具
在AGS Sever中很重要的功能就是地图缓存的制作,安装AGS Sever会在catalog中增加相关的工具箱,利用这些工具可以制作.删除.更新切片 一.Convert map server cac ...
- 使用jquery的ajax方法获取下拉列表值
AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新,用户体验非常好. ...