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

    1.实验结果

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

    mov ax,ffff

    mov ds,ax

    mov ax,2200

    mov ss,ax

    mov sp,0100

    mov ax,[0]  ;ax=3130

    add ax,[2]  ;ax= 6462

    mov bx,[4]  ;bx=3534

    add bx,[6]  ;bx=6C6A

    push ax  ;sp=00FE  ;修改的内存单元的地址是 2200:FE到FF 内容为6462

    push bx  ;sp= 00FC ;修改的内存单元的地址是 2200:FC到FD 内容为6C6A

    pop ax  ;sp=00FE  ;ax=  6C6A;

    pop bx  ;sp= 0100 ;bx= 64 62 ;

    push [4]  ;sp=00FE  ;修改的内存单元的地址是 2200:FE到FF 内容为34 35

    push [6]  ;sp= 00FC ;修改的内存单元的地址是 2200:FC到FD 内容为  36 37

     

     

    (2)

    仔细观察下图中的实验过程,然后分析:为什么在2000:0~2000:f中的内容会发生改变?

    • 前三行指令的功能为:

    2000进入AX寄存器,

    AX中的值赋值给SS,

    SP的值改为0010。

    • 变化的原因为

     在用t指令进行调试时,会产生中断。cpu将先把标志寄存器进栈,再把当前的cs的值进栈,IP的值最后进栈。

    2.总结体会

    了解到了进栈和出栈的操作,对栈有了更深刻的理解和体会。

  • 相关阅读:
    P2486 [SDOI2011]染色 (树链剖分)
    机房测试:Dove打扑克(vector暴力)
    机房测试:sort(归并+概率期望dp)
    区间覆盖问题总结(贪心)
    机房测试:停不下来的团长奥加尔(dp)
    博客目录
    团队作业week16
    Beta阶段项目展示
    Beta阶段项目终审报告
    Beta阶段测试报告
  • 原文地址:https://www.cnblogs.com/zakon/p/9854294.html
Copyright © 2011-2022 走看看