Method Body Declarations

Method Body Declarations

<methodDecls> ::= /* EMPTY */                 <methodDecls> <methodDecl> <methodDecl> ::= .emitbyte <int32>                 .maxstack <int32>                 .locals<sigArgs> )                 .locals init <sigArgs> )                 .entrypoint                 .zeroinit                 .export <int32> ]                   .export <int32> as <id>                   .vtentry <int32>:<int32>                 .override <typeSpec>::<methodName>                 <scopeBlock>                .param <int32> <initOpt>                 <id>:                 <sehBlock>                 <instr>                <secDecl>                <extSourceSpec>                <languageDecl>                <customAttrDecl>                <dataDecl> <typeSpec> ::= <classRef>               [ <compName> ]               [.module <compName> ]               <type>  <scopeBlock> ::= { <methodDecls> <sehBlock> ::= <tryBlock> <sehClauses> <tryBlock> ::= .try <scopeBlock>               .try <id> to <id>               .try <int32> to <int32>  <sehClauses> ::= <sehClause> <sehClauses>                <sehClause> <sehClause> ::= catch <classRef> <handlerBlock>                finally <handlerBlock>               fault <handlerBlock>               <filterClause> <handlerBlock> <filterClause> ::= filter <scopeBlock>                   filter <id>                   filter <int32>  <handlerBlock> ::= <scopeBlock>                  handler <id> to <id>                   handler <int32> to <int32>  <instr> ::= INSTR_NONE      // nop            INSTR_VAR <int32> // ldarg,ldarga,starg,ldloc,                             // ldloca,stloc           INSTR_VAR <id>            INSTR_I <int32>   // ldc.i4           INSTR_I8 <int64>  // ldc.i8           INSTR_R <float64> // ldc.r8           INSTR_R <int64>            INSTR_R ( <bytes> )            INSTR_BRTARGET <int32> // br,brtrue,brfalse,beq,bne,...           INSTR_BRTARGET <id>            INSTR_METHOD <methodRef>                    // call,callvirt,jmp,newobj,ldftn,ldvirtftn           INSTR_FIELD <type> <typeSpec>::<id>                        // ldfld,ldsfld,ldflda,ldsflda,stfld,stsfld           INSTR_FIELD <type> <id>            INSTR_TYPE <typeSpec> // ldobj,stobj,box,unbox,newarr,...           INSTR_STRING <compQstring>                // ldstr           INSTR_STRING bytearray = ( <bytes> )            INSTR_SIG <callConv> <type> <sigArgs> ) // calli           INSTR_TOK <ownerType>                     // ldtoken           INSTR_SWITCH ( <labels> )                 // switch <methodRef> ::=     <callConv> <type> <typeSpec>::<methodName><sigArgs> )               <callConv> <type> <methodName><sigArgs> ) <labels> ::= /* EMPTY */             <id>,<labels>             <int32>,<labels>             <id>             <int32>  <ownerType> ::= <typeSpec>                <memberRef>  <memberRef> ::= method <methodRef>                field <type> <typeSpec>::<id>                field <type> <id> 



Inside Microsoft. NET IL Assembler
Inside Microsoft .NET IL Assembler
ISBN: 0735615470
EAN: 2147483647
Year: 2005
Pages: 147
Authors: SERGE LIDIN

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net