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

    实验结论

    1.使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。

    为了便于验证结果,调整如下:

    在使用a命令输入指令调试前,使用e命令将内存单元0021:0-0021:7连续8个字节修改为 30h,31h,32h,33h,34h,35h,36h,37h

    将第一行的 mov ax,ffff改为mov ax,0021

    以下为理论分析指令执行后的值

    与理论上分析一致。

    在使用t命令单步调试过程中,涉及到的内容:中断机制。它是我们后半部分课程中的一个主题。现在我们只要知道这一点就可以了:Debug的T命令在执行修改寄存器SS的指令时,下一条指令也紧接着被执行。

    2.仔细观察实验过程,分析:为什么2000:0-2000:f中的内容会发生改变?

    猜测 2000为ax的值,07 3f 01 08为cs:ip的值,存23 31入ax

    p72页说

    mov ax,2000

    mov ss,ax

    mov sp,10

    为安排2000:0000-2000:000f为栈空间,初始化栈顶

    2000:0-2000:f中的内容会根据ax中的值发生变化,也会根据栈操作而发生变化,栈操作push ax

    就是在栈底2000:e的位置存入31 23,以小端法存入,再存入2000:c中33 66。

     实验总结与体会

    cs:ip 必须指向debug处理D命令的代码,ss:sp要指向栈顶,一般都默认段地址在ds中。

    一段内存,可以既是代码的存储空间,还可以是栈空间,也可以什么也不是,关键在于CPU中寄存器的设置。即cs、ip,ss、sp,ds的指向。

  • 相关阅读:
    Android之针对WebView的全屏播放
    Android之Android WebView常见问题及解决方案汇总
    android之针对fragment多次调用onCreateView的问题
    Android之在string.xml配置文字颜色粗体等效果
    ios成长之每日一遍(day 8)
    Android之TextView灵活使用
    ubuntu忘记root密码 的解决方法
    Mono Touch Table应用
    判断checkbox选中的个数
    C指针原理(14)
  • 原文地址:https://www.cnblogs.com/byxy/p/9956395.html
Copyright © 2011-2022 走看看