zoukankan      html  css  js  c++  java
  • 汇编实验报告(二)

    一开始没注意把ffff改成0021,第二次改了,两次结果对比了一下,发现:

    1. 不改ffff不影响栈的内存单元地址,DS是数据段地址,SS是栈段地址,两者是独立的。
    2. SP也不受影响,SP代表栈顶,只和存入数据的多少有关,存入时SP=SP-2
    3. 内存单元地址我一开始没看运行结果的SP,是直接算的,用22000+(0010-2),后来发现SP都告诉我了,可以直接看SP算。
      最后查看了一下内存单元内容和我自己算的也是一样的。

    看到了CS的值

    存入ax的值在偏移地址7、8和e、f都有

    第一行 把数据2000存入寄存器ax
    第二行 把寄存器ax的值存入栈段寄存器,因位栈段寄存器不可以直接送入。
    第三行 将数据10赋值给栈顶偏移地址,也就是确定了栈底的位置是20010,sp对应了栈顶的位置,从此处存入数据SP会随之变化,如此栈就定义好了。

    我感觉是因为指令是一条一条执行的,所以会把上一步执行的数据和CS存在里面。百度说是单步中断,我也不是很懂。2000:0 f里面我没看见IP。

    五、实验总结与体会
    1.DS、CS、IP、SS、SP之间注意区分。
    2.栈的空间大小要自己把控管理,防止超界。
    3.操作对象之间可不可以直接送入要注意。
    4.栈顶的偏移地址,和栈底要分清楚。
    5.入栈出

  • 相关阅读:
    day17---无参装饰器
    day17---作业
    python面向过程的编程思想
    算法之二分法
    python递归函数
    pyth作业3/25
    三元表达式、生成式、生成器表达式
    python 3/24作业
    python生成器
    python 迭代器
  • 原文地址:https://www.cnblogs.com/zxy666/p/10054060.html
Copyright © 2011-2022 走看看