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的指向。

  • 相关阅读:
    面向对象--接口的实际应用--制定标准
    iconv命令 gbk 转 UTF-8
    map,list
    springMVC配置(XML配置详解)
    关于git-Git 分支管理和冲突解决
    使用Intellij idea开发
    Centos7.2 Install subversion server
    Nginx 多域名配置
    Nginx 解析PHP的原理 | CGI、FastCGI及php-fpm的关系
    Centos7 Yum安装 PHP5.5,5.6,7.0
  • 原文地址:https://www.cnblogs.com/byxy/p/9956395.html
Copyright © 2011-2022 走看看