一、用到的简单的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

          

在DEBUG中,使用A命令可以输入汇编指令,系统自动地将键入的汇编指令翻译成机器代码,并相继地存放在从指定地址开始的存储区中。由于DEBUG下的数值默认为十六进制数,因此先要将十进制数转换成十六进制数。

来源: 实验楼
链接: https://www.shiyanlou.com/courses/83
本课程内容,由作者授权实验楼发布,未经允许,禁止转载、下载及非法传播

         输入A命令后,系统自动地给出逻辑地址0AEE:0100(CS:偏移地址),在其后输入汇编指令,回车后可输入下一条指令,直接回车则退出输入。也可以在A命令后给      出指令的存放地址,如A CS:0000,表示从代码段0单元开始存放输入指令。([0000]为数据段的字存储单元,在执行完上述指令后再执行D DS:0 L1可以看到[0000]          为3EH。)

    部分内容参考实验楼《汇编语言(第2版)》郑晓薇编著配套实验。

的程序代码并不是用户编写的程序,因为在输入DEBUG命令时没有写用户程序名.EXE。这段程序代码是系统代码段中保存的内容,有可能是系统程序,也有可能是无效的代码。

来源: 实验楼
链接: https://www.shiyanlou.com/courses/83
本课程内容,由作者授权实验楼发布,未经允许,禁止转载、下载及非法传播

debug(实验)的更多相关文章

  1. SpringMVC框架 课程笔记

    SpringMVC框架 课程笔记 第0章 SpringMVC框架的核心内容 1.SpringMVC 概述 2.SpringMVC 的 HelloWorld 3.使用 @RequestMapping 映 ...

  2. jmeter sampler maven项目排错记

    eclipse 创建的maven项目,引入jar包之后出现红色叹号,一直找不到原因,连main方法都无法运行,提示找不到类: 错误: 找不到或无法加载主类 soapsampler.SoapSample ...

  3. 实验吧debug

    在linux下进行调试时容易出现权限不够的情况:此时解决办法就是chmod 777+文件名提升权限,以实验吧debug为例,给出了简单的32elf文件,我在查看一些资料以后发现,我需要在main函数处 ...

  4. 汇编语言实验1—Debug基础操作

    1.使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后CPU中相关寄存器中内容的变化. 记录1:最后一条指令执行完BX=(4026)H,AL=(66)H,检验结果. 两种写入:e命令 ...

  5. 【8086汇编-Day3】用debug做实验时的技巧与坑

    Ⅰ· 无病呻吟 学一门语言,不动手实验是学不好的,在实验中不断遇坑然后解决,才有进益.所以写一下我在第一次汇编实验中的所思所想(王爽<汇编语言>第二章章末实验). Ⅱ · 实验内容 题解思 ...

  6. 20145212&20145204信息安全系统实验四报告

    一.实验内容与步骤 1.本次实验建立在掌握嵌入式开发平台使用方法和配置方法的基础上,要求使用windows xp,linux(red hat),arm三个系统(即NFS方式): 2.在linux系统中 ...

  7. 学号20145332 《信息安全系统设计基础》实验五 简单嵌入式WEB服务器实验

    实验目的 掌握在 ARM 开发板实现一个简单 WEB 服务器的过程. 学习在 ARM 开发板上的 SOCKET 网络编程. 学习 Linux 下的 signal()函数的使用. 实验内容 学习使用 s ...

  8. 北京电子科技学院(BESTI)实验报告4

    北京电子科技学院(BESTI)实验报告4 课程: 信息安全系统设计基础 班级:1452.1453 姓名:(按贡献大小排名)周恩德 .郑凯杰 学号:(按贡献大小排名)20145217 .201453 指 ...

  9. 20145216 20145330 《信息安全系统设计基础》 实验五 简单嵌入式WEB 服务器实验

    20145216 20145330 <信息安全系统设计基础> 实验五 简单嵌入式WEB 服务器实验 实验报告封面 实验步骤 1.阅读理解源码 进入/arm2410cl/exp/basic/ ...

随机推荐

  1. linux grep sed awk

    $ grep ‘test’ d* 显示所有以d开头的文件中包含 test的行. $ grep ‘test’ aa bb cc 显示在aa,bb,cc文件中匹配test的行. $ grep ‘[a-z] ...

  2. 009android初级篇之APP中使用系统相机相册等集成应用

    android应用中使用相机功能,大致有两种方式实现: 直接调用系统内部的相机程序,显示的也是系统预设的界面(简单,只有简单的拍照功能): 自己去implement一个相机程序(不难,较具备弹性,但相 ...

  3. windows 32位以及64位的inline hook

    Tips : 这篇文章的主题是x86及x64 windows系统下的inline hook实现部分. 32位inline hook 对于系统API的hook,windows 系统为了达成hotpatc ...

  4. 创建新的C++工程来调用Caffe对图片进行识别

    前段时间一直在跑Caffe训练数据.之前用训练好的caffemodel对图片进行分类都是用的命令行指令,于是就想着自己新建一个工程来调用caffe,结合classification的代码来对图片进行分 ...

  5. boost::lockfree::spsc_queue

    #include <boost/thread/thread.hpp> #include <boost/lockfree/spsc_queue.hpp> #include < ...

  6. EasyNVR智能云终端硬件使用说明(EasyNVR无插件直播服务硬件的具体使用方法)

    问题背景 随着EasyNVR硬件版本(EasyNVR硬件云终端)的发布不少客户选择了EasyNVR云终端作为产品选择,在客户收到EasyNVR云终端的时候肯定都有一个疑问,那就是如何使用手头上的这个小 ...

  7. VS2015 如何打印出 类的内存布局?

    项目->属性->C/C++->命令行 添加如下内容: /d1 reportAllClassLayout [XXX] XXX 可选,代表源文件名,例如 main.cpp 或 /d1 r ...

  8. Vue.js之组件嵌套小demo

    Vue.js之组件嵌套的小demo项目 第一步:初始化一个wabpack项目,这里不在复述.第二步:在components文件夹下新建Header.vue Footer.vue和Users.vue三个 ...

  9. ThinkPHP官网瀑布流实现分享

    很多人都想做瀑布流的效果,这里告诉大家官网使用的方法. 首先要下载瀑布流的插件jquery.masonry.min.js 地址:http://masonry.desandro.com/index.ht ...

  10. java NIO 模型(一)

    1. 阻塞I/O通信模型 1.性能:一连接一线程模型导致服务端的并发接入数和系统吞吐量受到极大限制 2.可靠性:由于IO操作采用同步阻塞模式,当网络拥塞或者逻辑处理缓慢会导致IO线程被挂住,阻塞时间无 ...