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.总结体会

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

  • 相关阅读:
    bzoj 4660
    bzoj 4668
    二项式反演学习笔记
    bzoj 3622
    bzoj 5306
    bzoj 3625
    任意模数NTT(二)
    bzoj 4913
    bzoj 3456
    多项式问题之五——多项式exp
  • 原文地址:https://www.cnblogs.com/zakon/p/9854294.html
Copyright © 2011-2022 走看看