View Single Post
  #27  
Old February 24th 14, 10:42 AM posted to comp.sys.intel,comp.sys.ibm.pc.hardware.chips,alt.windows7.general
charlie
external usenet poster
 
Posts: 20
Default How many x86 instructions?

machine code is stored somewhere it's either "assembled" or
"compiled".


There's more! A "Loader" can take a binary type file and add it to
memory. If the loader has a system level "map" of memory usage, and
resident code entries and exits, it can load the code at a relative or
absolute memory location, and inform the system level software where it
is. Or it might do a "load and go" so that when the loader is finished,
the processor goes to and starts executing at an address provided by the
loader. A system might tell the loader where in memory to put the code.
A programmer's nightmare is intermixed code and data, with self
modifying code added, just for giggles! Some compilers/assemblers used
to generate machine code had/have detectable signatures tracing back to
the particular development software that was used. This allowed authors
to check to see if they were being properly paid for use of their
development software. (Freeware or student development software, pay for
commercial use) I'd suggest that you don't consider use of "student" or
"educational" development software to develop a commercial program!


On 2/23/2014 7:34 PM, wrote:
On Sun, 23 Feb 2014 17:15:24 -0600, BillW50 wrote:

On 2/23/2014 4:41 PM, charlie wrote:
The front panel on many of the old mainframes and minicomputers allowed
direct entry of machine code, and was usually used to manually enter
such things as a "bootstrap", or loader program.


The way I recall is any computer only understands machine code and
nothing else. Anything else must be converted to machine at some point.


That sorta the meaning of the word "machine" in "machine code". ;-)

The issue is how the programs are stored, in the mean time. If the
machine code is never "seen" in the wild, it's an interpreter. If the
machine code is stored somewhere it's either "assembled" or
"compiled". The major difference being that an "assembled" program
has a 1:1 correspondence to its machine code, a "compiled" program
will not. Of course a "macro" assembler confuses this point some.