Debug是Dos系统中著名的调试程序,也可以运行在Windows系统实模下。
优点: 使用Debug程序,可以查看CPU各种寄存器的内容,内存的情况,并且在机器指令级跟踪程序的运行。

  • DosBox:用于在Dos窗口下编写汇编指令

    • 下载地址:Dosbox软件免费下载
    • 如何进入DosBox的Debug:
mount c e:\masm  // 根据自身的masm的安装路径,本人主机的masm文件在e盘;
c:
dir
debug


Debug常用指令

  1. 用R命令查看、改变寄存器的内容。
  2. 用D命令查看内存中的内容。
  3. 用E命令改变内存中的内容。
  4. 用U命令将内存中的机器指令翻译成汇编指令
  5. 用A命令以汇编指令的格式在内存中写入机器指令。
  6. 用T命令执行机器指令。

用R命令查看、改变CPU寄存器的内容

  • R - 查看寄存器的内容

  • R - 改变指定寄存器内容

  • 用D命令查看内存中的内容

  • 用E命令改变内存中的内容

  • E 段地址:偏移地址 数据1 数据2

  • E 段地址:偏移地址

    • 逐个询问式修改
    • 空格 - 接受,继续
    • 回车 - 结束
  • 用U命令将内存中的机器指令翻译成汇编指令

  • 汇编指令
    mov ax,0123H
    mov bx,0003H
    mov ax,bx
    add ax,bx

  • 对应的机器码
    B8 23 01
    BB 03 00
    89 D8
    01 D8
    e 地址 数据 - 写入
    d 地址 - 查看
    u 地址 - 查看代码

  • 用A命令以汇编指令的格式在内存中写入机器指令

  • 汇编指令
    mov ax,0123H
    mov bx,0003H
    mov ax,bx
    add ax,bx

  • 对应的机器码
    B8 23 01
    BB 03 00
    89 D8
    01 D8

a 地址 - 写入汇编指令
d 地址 - 查看数据
u 地址 - 查看代码


  • 用T命令执行机器指令
  • t - 执行CS:IP出的指令
    mov ax,0123H
    mov bx,0003H
    mov ax,bx
    add ax,bx

  • q (输入q退出Debug)

Debug常用指令和DOSBox使用步骤相关推荐

  1. 【汇编语言】debug常用命令使用

    Dosbox - debug常用指令 1. r指令 [r指令]用于查看和修改寄存器中的值. 1.1 查看寄存器 1.2 修改寄存器中的内容 2. d指令 d 指令用于查看内存中的内容,有三种使用方式 ...

  2. 汇编语言及应用——利用DEBUG熟悉常用指令的使用

    一.实验目的 熟悉指令系统,掌握常用指令的用法:通过实验加深对各种寻址方式的理解:能熟练使用DEBUG中的命令对指令进行反汇编,观察并了解机器代码. 二.实验题 通过debug命令对寄存器和存储单元进 ...

  3. linux入门与常用指令

    前言 在入门linux的时候感觉大部分很糟糕的,尤其是java开发者来说,对于非运维人员可能刚开始会对linux有很大的抵触性,可能还是更多喜欢桌面操作.或者在之前的学习中本来web的一堆东西就已经够 ...

  4. 我的世界服务器修改数据,我的世界常用指令大全,轻松调整服务器数值状态

    在我的世界服务器中能够经过输送指令来微调服务器的一些数值状态,此次就为各位提供我的世界常用指令大全,毕竟我的世界作为一款出色的沙盒游戏,不止是因为原版内容和mod的增光填色,也离不开指令的辅助. /s ...

  5. Lua-Nginx-Module常用指令(下)

    十四.获取Nginx的环境变量 通过Lua API可以获取Nginx的环境变量,用来提升某些业务处理流程,比如有些定时任务只需要在一个worker进程上执行,不需要执行多次,因此可以获取环境变量中wo ...

  6. Docker——使用docker工具管理软件/组件的运行,镜像、容器、数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境

    Docker--使用docker工具管理软件/组件的运行,镜像.容器.数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境 一.docker的安装和卸载 1.卸载 2.安装 3. 导 ...

  7. linux常用指令词典

    linux常用指令词典 最常见命令快速查找 shell的简单了解 什么是shell?? 怎么设置PATH? 基本指令 命令提示符 linux命令的组成 Linux基础命令及其常用选项 man pwd ...

  8. nvme-cli常用指令

    NVMe management command line interface 1.下载地址 https://github.com/linux-nvme/nvme-cli 2.安装 unzip nvme ...

  9. vue 快速入门、常用指令(1)

    1. vue.js的快速入门使用 1.1 vue.js库的下载 vue.js是目前前端web开发最流行的工具库之一,由尤雨溪在2014年2月发布的. 官方网站 中文:https://cn.vuejs. ...

最新文章

  1. EEMD算法的基本原理
  2. (转)PHP5使用cookie时报错 cannot modify header information - headers already sent by (......)
  3. ClassNotFoundException和 NoClassDefFoundError区别验证
  4. 个人工作13年的一些人生真实领悟
  5. 【Vue】全局过滤器和局部过滤器
  6. linux初始化进程
  7. matlab将txt数据分类,MATLAB读取txt文件,txt里面有字符串和数值两种类型
  8. win10计算机优化技巧,教你win10优化技巧
  9. QTreeView使用系列教程目录
  10. 【公告】CSDN 博客将进行数据库维护
  11. 力扣438题找到字符串中所有字母异位词
  12. 计算机管理 未分配磁盘,win7系统对未分配磁盘空间进行分区的操作方法
  13. 人工智能轨道交通行业周刊-第12期(2022.8.29-9.4)
  14. 因无聊用python写了个爬取蓝奏云直链的爬虫(含注释并包装为函数)
  15. 丁腈橡胶的广泛应用及其特点
  16. HOS Develop Notes-开启ssh服务
  17. 国家档案局印发《通知》,进一步加强数字档案管理工作
  18. jmp指令和call指令
  19. Error (171173): Node xxxx from partition Top cannot preserve previous placement at PIN D16 and honor
  20. Java注解annotation invalid type of annotation member

热门文章

  1. mysql mgr应用场景_悄悄告诉你 MySQL MGR 牛在哪?
  2. 分享2020 几个好用的ip地址归属地查询
  3. linux系统管理必备知识之关机命令
  4. SQLALchemy之Python连接MySQL
  5. Spring并发访问的线程安全性问题
  6. LeetCode简单题之检查数组是否经排序和轮转得到
  7. Linux 交叉编译简介
  8. 多核处理器集成了神经处理单元
  9. TypeError: string argument without an encoding
  10. UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe6 in position 0: ordinal not in range(128)