zoukankan      html  css  js  c++  java
  • 实验一

    1.使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后CPU中相关寄存器中内容的变化。

     寄存器内容变化

    ax=4E20

    ax=6236

    bx=2000

    ax=8236

    bx=8236

    ax=046c  前面的1从nc到cy中有变化

    ax=001a

    bx=0026

    ax=0040

    ax=2640

    bx=4026

    ax=0040

    ax=0066

    ax=0002

    使用e命令和a命令将指令写入内存,用t命令执行时,用-a 0:200和-e 0:200修改,第一次执行t用-t=0:200,后面则不需要。

    cs:ip的指向一致。

    2.将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。

    首先改变cs和ip的值 或使用jmp指令跳转

    2的8次方ax=100

    3.查看内存中的内容。

    pc机主板上的ROM中写有一个生产日期,在内存fff00h-fffffh的某几个单元中,请找到这个生产日期并试图改变它。

    生产日期为92年一月一日。

    主板中的内容是不能改变的。实模式可以修改,虚拟8086模式不能修改。

    因为用的是Dosbox,读取的是虚拟主板的信息。不是真正的生产日期。

    4.向内存从b8100h开始的单元中填写数据,如:

    -e b8100:0000 01 01 02 02 03 03 04 04

    请读者先填写不同的数据,观察产生的现象;再改变填写的地址,观察产生的现象。

     

    不同的数据控制着不同的颜色和样式,不同的地址控制着不同的位置。

    5.总结与体会

     一定要注意debug常用命令的格式,很多时候是需要加上地址,偏移地址或地址范围。命令过程中,很容易输入错误,会很难修改,一定要仔细。要对各种命令熟悉,多打打,由一定的熟悉度,才能在输入错误的时候不用重头再来,可以通过一些命令修改回来。

    很多的目的实现不是只有一种方法,可以多多尝试,不同的方法说不定会带来不同的答案,然后从中找寻问题所在,对知识有更进一步的理解。

  • 相关阅读:
    Python标准库 -- UUID模块(生成唯一标识)
    Python全局解释器锁 -- GIL
    Python Web Server Gateway Interface -- WSGI
    Mysql 和 Postgresql 抛开性能的对比
    一篇文章掌握RequireJS常用知识
    彻底理解js中的闭包
    全面理解Javascript闭包和闭包的几种写法及用途【转】
    JS 日期转换,格式化等常用的函数定义
    把上传过来的多张图片拼接转为PDF的实现代码
    C# Stream 和 byte[] 之间的转换(文件流的应用)
  • 原文地址:https://www.cnblogs.com/byxy/p/9860890.html
Copyright © 2011-2022 走看看