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

     实验结论

    (1)

     

    mov ax,[0];ax=3130H

    add ax,[2];ax=6462H

    mov bx,[4];bx=3534H

    add bx,[6]; bx=6C6AH

    push ax;sp=00FEH;修改的内存单元的地址是220FE内容是6462H

    push bx;sp=00FCH;修改的内存单元的地址是220FC内容是6C6AH

    pop ax;sp=00FFH;ax=6C6AH

    pop bx;sp=0100H; bx=6462H

    push [4];sp=00FEH;修改的内存单元的地址是220FE内容是3534H

    push [6];sp=00FCH;修改的内存单元的地址是220FC内容是3736H

    与所预测结果一致。

    (2)

    初始SS=073FH SP=00FDH 

    前3行汇编指令的功能

    mov ax,2000;ax=2000将2000装入ax

    mov ss,ax;ss=ax将栈底设置为2000:0000

    mov sp,10;sp=10将栈顶设置为10H

     

     

    2000:0-2000:f改变的原因估计与ss,sp的赋值改变有关系。

    总结与体会

    栈作为一种cpu提供的机制先入后出,可以通过push 和pop指令容易地实现功能

    但是没有检查机制,容易产生越界(栈顶超界而产生问题)

    通过改变ss,sp的值,来安排内存中栈的位置,虽然对其中的一些细节问题还没有完全搞清楚(如第2个实验里面的2000:0H 处长fH的值的改变)

    但是在接下来的学习中,我希望我能搞懂他们。

  • 相关阅读:
    「题解」:$Six$
    「题解」:$Smooth$
    AFO
    纪念——代码首次达到近50K(更新:78.8K 2019行)
    meet-in-the-middle 基础算法(优化dfs)
    莫队学习笔记
    树链剖分学习笔记
    常用数论模板
    图论模板
    高精度模板(结构体封装,重载运算符)
  • 原文地址:https://www.cnblogs.com/asm085/p/9842696.html
Copyright © 2011-2022 走看看