zoukankan      html  css  js  c++  java
  • debug(实验)

    一、用到的简单的DOS命令:

    • cd ——首先要用cd 退回到根目录C>下
    • dir ——显示文件列表
    • md hb ——建立hb子目录
    • cd hb ——进入hb子目录
    • copy d:dosmasm.exe c:hb ——将D盘dos目录下的masm.exe拷贝到C盘hb目录下
    • copy d:doslink.exe c:hb ——将D盘dos目录下的link.exe拷贝到C盘hb目录下
    • cd .. ——退回到上一级目录
    • del hbmasm.exe ——删除hb子目录中的某文件
    • rd hb ——删除hb子目录(子目录中的所有文件必须先删除)
    • e:——进入e盘
    • cls ——清屏
    • type——显示文本文件内容(如type c:hbabc.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文件,这是反汇编出来的程序代码不是用户编写的程序,这段程序       代码是系统代码段中保存的内容,有可能是系统程序,也可能是无效的代码。

    tp命令:可以单步执行代码。

        在执行tp之前检查用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
    本课程内容,由作者授权实验楼发布,未经允许,禁止转载、下载及非法传播
  • 相关阅读:
    基本二叉搜索树的第K小元素
    sklearn常见分类器(二分类模板)
    python图论包networks(最短路,最小生成树带包)
    PAT 甲级 1030 Travel Plan (30 分)(dijstra,较简单,但要注意是从0到n-1)
    PAT 甲级 1029 Median (25 分)(思维题,找两个队列的中位数,没想到)*
    Oracle 10g ORA-12154: TNS: could not resolve the connect identifier specified 问题解决! 我同事遇到的问题。 username/
    JavaScritpt的DOM初探之Node(一)
    怎样实现动态加入布局文件(避免 The specified child already has a parent的问题)
    Ubuntu 14.04下单节点Ceph安装(by quqi99)
    卡片游戏
  • 原文地址:https://www.cnblogs.com/clljs/p/7900878.html
Copyright © 2011-2022 走看看