加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Evaluation Stack

发布时间:2020-12-14 21:50:44 所属栏目:大数据 来源:网络整理
导读: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 t

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.

?

refer

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读