G
Guest
Dear All,
What is difference between Portable Executable (PE) file and a Assembly?
Thanks,
Mahesh
What is difference between Portable Executable (PE) file and a Assembly?
Thanks,
Mahesh
suresh_C# said:Thanks Ben. This is clear to me now.
I would be grateful if you answer to this question also.
I assume that JIT compiler and Ilasm.exe convert the IL code into machine
dependent code.
I knew that there are 2 tools ie JIT and one more tool [I forgot name]
which
do the above. Then in .NET who uses the Ilasm.exe tool.
Ben Fidge said: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
Thanks Ben. This is clear to me now.
I would be grateful if you answer to this question also.
I assume that JIT compiler and Ilasm.exe convert the IL code into machine
dependent code.
I knew that there are 2 tools ie JIT and one more tool [I forgot name] which
do the above. Then in .NET who uses the Ilasm.exe tool.
Ben Fidge said: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
Scott Allen said:ILASM is more of a repackaging tool. It takes IL code and packages the
code into a file in the PE format. If you wrote your own compiler that
generated MSIL, then you could use ILASM to put the MSIL into a
managed executable. ILASM doesn't generate native code.
NGEN.EXE can be used to generate native code for an assembly. I'd only
recommend using NGEN if you have a good reason to avoid JIT compiling.
--
Scott
http://www.OdeToCode.com/blogs/scott/
Thanks Ben. This is clear to me now.
I would be grateful if you answer to this question also.
I assume that JIT compiler and Ilasm.exe convert the IL code into machine
dependent code.
I knew that there are 2 tools ie JIT and one more tool [I forgot name] which
do the above. Then in .NET who uses the Ilasm.exe tool.
Ben Fidge said: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
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.
:
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#
Dear All,
What is difference between Portable Executable (PE) file and a Assembly?
Thanks,
Mahesh
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.