Oh, all right. :)
Thank you very much once again!

2011/6/27 Alex <[email protected]>

> Hi,
>
> Just a fancy ECMA 335 abbreviation for Virtual Execution System (i.e.
> the runtime). :)
>
> Regards,
> Alex
>
> On Mon, Jun 27, 2011 at 6:56 PM, Gábor Kozár <[email protected]> wrote:
> > Thank you very much Alex, you've been a great deal of help!
> >
> > Just a final stupid question: what is VES?
> > 2011/6/27 Alex <[email protected]>
> >>
> >> Hi,
> >>
> >> >So char, the integer types and bool are all interchangable?
> >>
> >> Technically, yes. The CLR treats bools and chars as 32-bit integers
> >> (even if a char really is only 16 bits and a bool 8 bits).
> >>
> >> >How about the 'ceq' instruction? Does it only work on the types above
> >> > (lets call them 'numeric types'), or does it have some magic way of
> >> > comparing other types?
> >>
> >> All such instructions only operate on primitive types that the VES
> >> knows how to compare. Object.Equals(), IEquatable<T>, etc are all
> >> independent of CIL and must be called manually.
> >>
> >> Regards,
> >> Alex
> >>
> >> On Mon, Jun 27, 2011 at 4:17 PM, Gábor Kozár <[email protected]>
> wrote:
> >> > So char, the integer types and bool are all interchangable?
> >> > How about the 'ceq' instruction? Does it only work on the types above
> >> > (lets
> >> > call them 'numeric types'), or does it have some magic way of
> comparing
> >> > other types?
> >> > Thanks for the book recommendation, I have ordered it! :)
> >> > 2011/6/26 Alex <[email protected]>
> >> >>
> >> >> Hello,
> >> >>
> >> >> >So apparently, the int32 value of '1' is bool 'true' as far as CIL
> is
> >> >> > concerned. So what are the rules here? Are there any other such
> >> >> > 'implicit
> >> >> > conversions' I should be aware of?
> >> >>
> >> >> The only other case I can think of is 'char'.
> >> >>
> >> >> >Another thing that's not quite clear for me are the 'add', 'div',
> >> >> > 'rem',
> >> >> > 'clt' etc. instructions, specifically, the values they use. Do they
> >> >> > work
> >> >> > only on Int32? What happens if they get Int16 or Int64?
> >> >>
> >> >> In CIL, types are not encoded in instructions, but rather in local
> >> >> variables, parameters, fields, etc. So, the instructions you mention
> >> >> operate on both integers and floats (don't misunderstand; they're
> >> >> still type-safe).
> >> >>
> >> >> >Is there a site or a tutorial or a book, or whatever that can teach
> me
> >> >> > CIL? I did some searches, but only found some very basic examples -
> >> >> > nothing
> >> >> > too useful.
> >> >>
> >> >> I would recommend Expert .NET 2.0 IL Assembler and generally ECMA 335
> >> >> Partition II and III.
> >> >>
> >> >> Regards,
> >> >> Alex
> >> >>
> >> >> On Sun, Jun 26, 2011 at 5:19 PM, Gábor Kozár <[email protected]>
> >> >> wrote:
> >> >> > Hey,
> >> >> >
> >> >> > I'm writing a stack analyzer using Mono.Cecil: ideally it should be
> >> >> > able
> >> >> > to
> >> >> > tell me what is on the evaluation stack at the given instruction of
> a
> >> >> > method
> >> >> > body.
> >> >> > For this, I need to be able to tell the type of the values pushed
> to
> >> >> > /
> >> >> > pulled from the evaluation stack by the instructions.
> >> >> > This is mostly fine, however, there are some things around the
> native
> >> >> > CIL
> >> >> > types that are confusing.
> >> >> > For example, when I write this in C#:
> >> >> > return true;
> >> >> > this is the CIL emitted:
> >> >> > ldc.i4.1
> >> >> > ret
> >> >> > So apparently, the int32 value of '1' is bool 'true' as far as CIL
> is
> >> >> > concerned. So what are the rules here? Are there any other such
> >> >> > 'implicit
> >> >> > conversions' I should be aware of?
> >> >> > Another thing that's not quite clear for me are the 'add', 'div',
> >> >> > 'rem',
> >> >> > 'clt' etc. instructions, specifically, the values they use. Do they
> >> >> > work
> >> >> > only on Int32? What happens if they get Int16 or Int64?
> >> >> > Is there a site or a tutorial or a book, or whatever that can teach
> >> >> > me
> >> >> > CIL?
> >> >> > I did some searches, but only found some very basic examples -
> >> >> > nothing
> >> >> > too
> >> >> > useful.
> >> >> > Thank you very much!
> >> >> >
> >> >> > --
> >> >> > --
> >> >> > mono-cecil
> >> >>
> >> >> --
> >> >> --
> >> >> mono-cecil
> >> >
> >> > --
> >> > --
> >> > mono-cecil
> >>
> >> --
> >> --
> >> mono-cecil
> >
> > --
> > --
> > mono-cecil
>
> --
> --
> mono-cecil

-- 
--
mono-cecil

Reply via email to