zoukankan      html  css  js  c++  java
  • 汇编语言 实验五

    一:对要求的程序进行编译,连接,用debug加载,跟踪,然后回答问题。

    将相关的工作做好以后:

    1) 在程序返回前,我们用d命令查找data数据 发现其中的值并没有发生改变

    2)在程序返回前我们可以发现,cs=076C ,ss=076B,ds=075A

    3) 该程序加载后,code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1

    code对应cs   data对应ds    stack对应ss

    二:对要求的程序进行编译,连接,用debug加载,跟踪,然后回答问题。

    前期将相关的工作做好了以后:

    1)在程序返回前,我们用d命令查找data数据 发现其中的值并没有发生改变

    2)在程序返回前我们可以发现,cs=076C ,ss=076B,ds=076A

    3)该程序加载后,code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1

    4)对于如下定义的段:

    name segment

    ...

    name ends

    如果段中的数据占N个字节,那么程序加载之后,该段的实际占有的空间为(N/16+1)*16

    因为我们在分配空间时使用16个字节为单位的,所以不足16的时候仍然是分配16个字节来使用。

    三:对要求的程序进行编译,连接,用debug加载,跟踪,然后回答问题。

    上面的准备工作都完成以后:

    1)在程序返回前,我们用d命令查找data数据 发现其中的值并没有发生改变

    2))在程序返回前我们可以发现,cs=076A,ss=076E,ds=076D

    3)该程序加载后,code段的段地址为X,则data段的段地址为X+3,stack段的段地址为X+4

    四:

    如果将1,2,3题中的最后一条伪指令“end start”改为end(也就是说不指明程序的入口),则那个程序可以执行 ,说明理由。

    第3个可以执行。因为第三个程序入口处便是执行指令,而前两个则是把数据段放在了前面,所以没有办法可以正确的执行。

    五:

    程序如下,编写code段中的代码,将a段和b段中的数据依次相加,将结果存到c段中:

    之后我们可以查看到我们想要的相加结果。

    六:程序如下,编写code段中的代码,用push指令将a段中的前8个字型数据逆序存储到b段之中。

    我们可以得到我们想要的结果。

    实验总结:

    1 在本次实验中收获了关于数据段方面的知识,学习到了不少。

    2 此次实验可以让我们加深了段地址以及各种语言的运用 收获不少。

  • 相关阅读:
    T4模板+Web.config连接SqlServer+DBManage.cs+DbHelper.cs
    MVCApplication
    MVC路由(Route)
    过滤器+用session验证是否登陆过
    前台.cshtml得到session值方法
    C++ sort() method with 1.default operator,2 stand library compare ,3custom function,4,lambda expression
    C++ boost serialize struct to text
    C++ multi thread via pthread to retrieve returned result
    C++ pthread create and join
    C++ write and read file via fstream in ios::out,ios::in,ios::app mode
  • 原文地址:https://www.cnblogs.com/QiaoGeGe/p/10032391.html
Copyright © 2011-2022 走看看