Re: Difference between Portable Executable (PE) file and a Assembl



Yes you are right, a PE executable is created from the IL. PE is the file
format used to define 32bit Windows Executables. This is the native format
used by Windows. As mentioned, your .NET assembly is first compiled to IL
which is a platform independant assembly language. This is then compiled
into the platform specific binary, which for us Windows developers is called
PE.

PE has been around since the first versions of Windows NT and all versions
of Windows since Win95 have also been made to expect that particular format
to store binary executables. Obviously, as no current processors know how to
execute IL, it needs recompiling for the processor and platform it's running
on.

For more info on the format have a look here:

http://www.wotsit.org/search.asp?page=2&s=binary



"suresh_C#" <sureshC@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:47968DF1-825C-4B55-99C6-DC71841B5417@xxxxxxxxxxxxxxxx
>
> Thanks Ben, Thanks Scott.
>
> But, following is definition of Ilasm.exe
> --
> When you compile managed code, the compiler converts the source code to
> MSIL
> code. MSIL is a CPU-independent language and its code can be converted to
> native code. ***You can use the Ilasm tool, Ilasm.exe, to generate a
> portable
> executable file from the MSIL code. *** You can then run the resulting
> executable file to determine the performance of your application. This
> enables you to generate the MSIL code and the metadata without emitting
> MSIL
> in the portable executable file format. In addition, Ilasm.exe does not
> create intermediate object files. It also does not have a linking stage to
> generate a portable executable file.
> --
>
> ***You can use the Ilasm tool, Ilasm.exe, to generate a portable
> executable
> file from the MSIL code. ***
>
> Considering this point, I think it generates a portable executable file (
> ??? different file ) from the MSIL code (Assembly ???)
>
> Am I right? If right please I don't understand what is PE and why it is
> used
> then.
>
>
>
> "Scott Allen" wrote:
>
>> Hi Mahesh:
>>
>> PE is a file format.
>>
>> An assembly is the smallest unit of deployment for .NET applications
>> and consist of one or more modules. These modules use the PE file
>> format.
>>
>> --
>> Scott
>> http://www.OdeToCode.com/blogs/scott/
>>
>> On Sun, 1 May 2005 12:17:05 -0700, suresh_C#
>> <sureshC@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
>>
>> >Dear All,
>> >
>> >What is difference between Portable Executable (PE) file and a Assembly?
>> >
>> >Thanks,
>> >Mahesh
>> >
>> >
>>
>>
>


.



Relevant Pages