• 实验一 查看CPU和内存、用机器指令和汇编指令编程


    首先打开 DOSBox0.74 进行模拟80X86汇编环境

    20201004193559

    然后敲入 debug 命令进行调试:

    20201004193842

    1、R 命令

    1.1、使用 R 命令查看 CPU 中各个寄存器中的内容

    20201004194006

    1.2、用 R 命令修改寄存器 AX 中的内容

    20201004194233

    1.3、用 R 命令修改 CS 和 IP 中的内容

    20201004194617

    2、D 命令

    2.1、用 D 命令查看内存 1000:0 处的内容

    20201004194804

    这里的 "1000:0" 是 “段地址:偏移地址” 的格式,即查看内存 10000H 处的内容。这里列出的是从指定内存开始的 128 个内存单元中的内容。

    2.2、查看 1000:9 处的内容

    20201004195054

    2.3、列出 Debug 预设的地址处的内容

    20201004195224

    2.4、列出后续的内容

    在使用 “d 段地址:偏移地址” 之后,接着使用 D 命令,可列出后续的内容:

    20201004195506

    2.5、查看 1000:0 ~ 1000:9 单元中的内容

    20201004195618

    2.6、用三种不同的段地址和偏移地址查看同一个物理地址中的内容

    20201004195845

    3、E 命令

    3.1、用 E 命令修改从 1000:0 开始的 10 个单元的内容

    20201004200213

    3.2、用 E 命令修改从 1000:10 开始的 4 个单元的内容

    20201004200533

    操作步骤:

    1. 输入 e 1000:10 ,按 Enter 键。
    2. Debug 显示起始地址 1000:0010,和第一单元(即 1000:0010 单元)的原始内容,然后光标停在 “.” 的后面提示输入想要写入的数据,此时可以有两个选择:其一为输入数据,然后按空格键,即用输入的数据改写当前的内存单元;其二为不输入数据,直接按空格键,则不对当前内存单元进行改写。
    3. 当前单元处理完成后,Debug 将接着显示下一个内存单元的原始内容,并提示进行修改。
    4. 所有希望改写的内存单元改写完毕后,按 Enter 键,E 命令操作结束。

    3.3、用 E 命令向内存中写入字符

    20201004201328

    3.4、用 E 命令向内存中写入字符串

    20201004201549

    3.5、用 E 命令将机器码写入内存

    20201004201745

    机器码 对应的汇编指令
    b80100 mov ax,0001
    b90200 mov cx,0002
    01c8 add ax,cx

    4、U 命令

    4.1、用 U 命令将内存单元中的内容翻译为汇编指令显示

    20201004202215

    5、T 命令

    5.1、使用 T 命令执行 CS:IP 指向的命令

    20201004202436

    5.2、用 T 命令继续执行

    20201004202534

    6、A 命令

    6.1、用 A 命令向从 1000:0 开始的内存单元中写入指令

    20201004202759

    6.2、从一个预设的地址开始输入指令

    20201004202916

    :退出 debug 模式的命令是 q 命令

    20201004194447

  • 相关阅读:
    响应者链的事件传递过程
    事件的产生和传递
    UIView不接受触摸事件的三种情况
    利用UIActivityController调用ios系统自带的分享功能,实现微信发布多图的功能
    CALayer
    CATransition-转场动画
    iOS分类、延展和子类的区别
    ios如何普安短图片类型
    使用Google code + SVN进行多人开发
    搭建CppUnit错误总结
  • 原文地址:https://www.cnblogs.com/fanlumaster/p/13768280.html
Copyright © 2020-2023  润新知