zoukankan      html  css  js  c++  java
  • Evaluation Stack

    Evaluation Stack

    The evaluation stack, which is mentioned often in the description of the Hello World application, is the pivotal structure of MSIL applications. It is the bridge between your application and memory locations. It is similar to the conventional stack frame, but there are salient differences. The evaluation stack is the viewer of the application, and you can use it to view function parameters, local variables, temporary objects, and much more. Traditionally, function parameters and local variables are placed on the stack. In .NET, this information is stored in separate repositories, in which memory is reserved for function parameters and local variables. You cannot access these repositories directly. Accessing parameters or local variables requires moving the data from memory to slots on the evaluation stack using a load command. Conversely, you update a local variable or parameter with content on the evaluation stack using a store command. Slots on the evaluation stack are either 4 or 8 bytes.

    Figure 11-1 shows the relationship between the evaluation stack and the repositories for function parameters and local variables.

     

    Figure 11-1: A depiction of the evaluation stack, function parameters, and local variables

    The evaluation stack is a stack and thereby a last in/first out (LIFO) instrument. When a function starts, the evaluation stack is empty. As the function runs, items are pushed and popped from the evaluation stack. Before the function exits, except for a return value, the evaluation stack must once again be empty. The jmp and tail instructions are exceptions to this rule. If the evaluation stack is not empty at exit, the run time raises an InvalidProgramException exception.

    The .maxstack directive limits the number of items permitted simultaneously on the stack. The directive is optional. If the directive is not present, eight slots are reserved on the evaluation stack. The .maxstack directive is a confirmation that an application is performing as expected. Extra items on the evaluation stack are an indication of potential logic problems in an application or a security violation. In either circumstance, this is a violation worthy of a notification.

     我的总结:

     evaluation stack 是 程序访问 

    refer

  • 相关阅读:
    美国航天局的十大编码戒律(转)
    大型数据库应用解决方案总结
    IOCP模型
    SSH 连接慢的解决方案详解
    指针(详解)【转】
    有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入区别【转】
    USB入门开发的八个问题&USB枚举『转』
    浅谈 STM32 硬件I2C的使用 (中断方式 无DMA 无最高优先级)(转)
    KEIL Code RO-data RW-data ZI-data 【转】
    262K Color
  • 原文地址:https://www.cnblogs.com/fmys/p/10235893.html
Copyright © 2011-2022 走看看