Intuitive fred888

To the best of my ability I write about my experience of the Universe Past, Present and Future

Sunday, June 5, 2016

What is Machine Language?

  1. Machine code - Wikipedia, the free encyclopedia

    en.wikipedia.org/wiki/Machine_code
    A much more readable rendition of machine language, called assembly language, uses mnemonic codes to refer to ...
  2. What is Machine Language? Webopedia Definition

    http://www.webopedia.com/TERM/M/machine_language.html
    Machine language is the lowest-level programming language (except for computers that utilize programmable microcode). Machine languages are the only ...
  3. Machine Language For Beginners - AtariArchives.org

    http://www.atariarchives.org/mlb/
    full text of the 1983 book Machine Language For Beginners.
  4. begin quote from:

  1. What is machine code (machine language)? -...

    http://whatis.techtarget.com/definition/machine-code-machine...
    Machine code is the elemental language of computers, consisting of a stream of 0's and 1's. Ultimately, the output of any programming language analysis and ... 

    machine code (machine language)

    • Facebook Like


    • LinkedIninShare7
    • Email
    • Comment
    • RSS
    • Print
    • A
    • AA
    • AAA
    Part of the Computing fundamentals glossary:

    Machine code, also known as machine language, is the elemental language of computers, comprising a long sequence of binary digital zeros and ones (bits).
    Ultimately, the output of any programming language analysis and processing emerges in the form of machine code. After you write a program, your source language statements are compiled or (in the case of assembler language) put together into machine code that is stored as an executable file until someone tells the computer's OS (operating system) to run it. In personal computer OSs, these files typically have the suffix ".exe."
    Each processor has its own specific machine language, and it  reads and handles a certain number of bits at a time. Because it is designed to know how many bits (and which bits) tell it what operation to do, the processor can look at the correct sequence of bits and perform the next operation. Then it reads the next instruction, and so on. Each machine-code instruction causes the CPU (central processing unit) to perform a simple operation such as an arithmetic calculation or storing data in RAM (random access memory). Execution of machine code can be controlled by firmware or else carried out by means of the CPU's internal wiring.
    In analyzing problems or debugging programs, a tool called a dump is commonly used. A dump is a printout that shows the program in its machine code form. However, because it would be difficult and inefficient to render the program entirely as zeros and ones, each four bits are represented by a single hexadecimal numeral. Dumps also contain other information about the computer's operation, such as the address of the instruction that was being executed at the time the dump was initiated.
    Human programmers rarely, if ever, write or read in machine code because it is essentially impossible to translate it from or into thoughts that the human mind can understand. Humans write in so-called high-level languages that are far more comprehensible than machine code, and that require far fewer characters to represent the task at hand.
    Machine languages are sometimes referred to as 1st generation programming languages.
    This was last updated in September 2005
    Contributor(s): Stan Gibilisco, Marianne Doig
    Posted by: Margaret Rouse

    Related Terms

    Definitions

    • business process
      - A business process is the flow of an activity -- or set of activities -- designed to accomplish a specific organizational goal. Business processes are often depicted visually with a flowchart showi... (SearchCIO.com)
    • game theory
      - Game theory is the study of mathematical models of negotiation, conflict and cooperation between individuals, organizations and governments. The study has direct applications in contract theory, ec... (WhatIs.com)
    • robot
      - A robot is a machine designed to execute one or more tasks repeatedly and usually automatically, with speed and precision. (WhatIs.com)

    Glossaries

    • Computing fundamentals
      - Terms related to computer fundamentals, including computer hardware definitions and words and phrases about software, operating systems, peripherals and troubleshooting.
    • Internet applications
      - This WhatIs.com glossary contains terms related to Internet applications, including definitions about Software as a Service (SaaS) delivery models and words and phrases about web sites, e-commerce ...

      begin quote from:
      1. Machine code - Wikipedia, the free encyclopedia

        en.wikipedia.org/wiki/Machine_code
        A much more readable rendition of machine language, called assembly language, uses mnemonic codes to refer to ... 

        Machine code

        From Wikipedia, the free encyclopedia
        Program execution
        General concepts
        • Runtime system
        • Runtime library
        • Executable
        • Compiler
        • Interpreter
        • Virtual machine
        • Intermediate representation (IR)
        • Source code
        • Object code
        • Bytecode
        • Machine code
        Compilation strategies
        • Just-in-time (JIT)
          • Tracing just-in-time
        • Ahead-of-time (AOT)
        • Transcompilation
        • Recompilation
        Notable runtimes
        • Android Runtime (ART)
        • Common Language Runtime (CLR)
        • crt0
        • Dalvik
        • Java virtual machine (JVM)
        • Node.js
        • Zend Engine
        • v
        • t
        • e
        Machine language monitor in a W65C816S single-board computer, displaying code disassembly, as well as processor register and memory dumps.
        Machine code or machine language is a set of instructions executed directly by a computer's central processing unit (CPU). Each instruction performs a very specific task, such as a load, a jump, or an ALU operation on a unit of data in a CPU register or memory. Every program directly executed by a CPU is made up of a series of such instructions.
        Numerical machine code (i.e., not assembly code) may be regarded as the lowest-level representation of a compiled or assembled computer program or as a primitive and hardware-dependent programming language. While it is possible to write programs directly in numerical machine code, it is tedious and error prone to manage individual bits and calculate numerical addresses and constants manually. It is thus rarely done today, except for situations that require extreme optimization or debugging.
        Almost all practical programs today are written in higher-level languages or assembly language and translated to executable machine code by utilities such as compilers, assemblers and linkers. Programs in interpreted languages[1] are not translated into machine code although their interpreter (which may be seen as an executor or processor) typically consists of directly executable machine code (generated from assembly or high level language source code).

        Contents

        • 1 Machine code instructions
        • 2 Programs
        • 3 Assembly languages
        • 4 Example
        • 5 Relationship to microcode
        • 6 Relationship to bytecode
        • 7 Storing in memory
        • 8 Readability by humans
        • 9 See also
        • 10 Notes and references
        • 11 Further reading

        Machine code instructions

        Main article: Instruction set
        Every processor or processor family has its own machine code instruction set. Instructions are patterns of bits that by physical design correspond to different commands to the machine. Thus, the instruction set is specific to a class of processors using (mostly) the same architecture. Successor or derivative processor designs often include all the instructions of a predecessor and may add additional instructions. Occasionally, a successor design will discontinue or alter the meaning of some instruction code (typically because it is needed for new purposes), affecting code compatibility to some extent; even nearly completely compatible processors may show slightly different behavior for some instructions, but this is rarely a problem. Systems may also differ in other details, such as memory arrangement, operating systems, or peripheral devices. Because a program normally relies on such factors, different systems will typically not run the same machine code, even when the same type of processor is used.
        A machine code instruction set may have all instructions of the same length, or it may have variable-length instructions. How the patterns are organized varies strongly with the particular architecture and often also with the type of instruction. Most instructions have one or more opcode fields which specifies the basic instruction type (such as arithmetic, logical, jump, etc.) and the actual operation (such as add or compare) and other fields that may give the type of the operand(s), the addressing mode(s), the addressing offset(s) or index, or the actual value itself (such constant operands contained in an instruction are called immediates).[2]
        Not all machines or individual instructions have explicit operands. An accumulator machine has a combined left operand and result in an implicit accumulator for most arithmetic instructions. Other architectures (such as 8086 and the x86-family) have accumulator versions of common instructions, with the accumulator regarded as one of the general registers by longer instructions. A stack machine has most or all of its operands on an implicit stack. Special purpose instructions also often lack explicit operands (CPUID in the x86 architecture writes values into four implicit destination registers, for instance). This distinction between explicit and implicit operands is important in machine code generators, especially in the register allocation and live range tracking parts. A good code optimizer can track implicit as well as explicit operands which may allow more frequent constant propagation, constant folding of registers (a register assigned the result of a constant expression freed up by replacing it by that constant) and other code enhancements.

        Programs

        A computer program is a sequence of instructions that are executed by a CPU. While simple processors execute instructions one after another, superscalar processors are capable of executing several instructions at once.
        Program flow may be influenced by special 'jump' instructions that transfer execution to an instruction other than the numerically following one. Conditional jumps are taken (execution continues at another address) or not (execution continues at the next instruction) depending on some condition.

        Assembly languages

        Main article: Assembly language
        A much more readable rendition of machine language, called assembly language, uses mnemonic codes to refer to machine code instructions, rather than using the instructions' numeric values directly. For example, on the Zilog Z80 processor, the machine code 00000101, which causes the CPU to decrement the B processor register, would be represented in assembly language as DEC B.

        Example

        The MIPS instruction set provides a specific example for a machine code whose instructions are always 32 bits long. The general type of instruction is given by the op (operation) field, the highest 6 bits. J-type (jump) and I-type (immediate) instructions are fully specified by op. R-type (register) instructions include an additional field funct to determine the exact operation. The fields used in these types are:
           6      5     5     5     5      6 bits
        [  op  |  rs |  rt |  rd |shamt| funct]  R-type
        [  op  |  rs |  rt | address/immediate]  I-type
        [  op  |        target address        ]  J-type
        
        rs, rt, and rd indicate register operands; shamt gives a shift amount; and the address or immediate fields contain an operand directly.
        For example, adding the registers 1 and 2 and placing the result in register 6 is encoded:
        [  op  |  rs |  rt |  rd |shamt| funct]
            0     1     2     6     0     32     decimal
         000000 00001 00010 00110 00000 100000   binary
        
        Load a value into register 8, taken from the memory cell 68 cells after the location listed in register 3:
        [  op  |  rs |  rt | address/immediate]
           35     3     8           68           decimal
         100011 00011 01000 00000 00001 000100   binary
        
        Jumping to the address 1024:
        [  op  |        target address        ]
            2                 1024               decimal
         000010 00000 00000 00000 10000 000000   binary
        

        Relationship to microcode

        In some computer architectures, the machine code is implemented by a more fundamental underlying layer of programs called microprograms, providing a common machine language interface across a line or family of different models of computer with widely different underlying dataflows. This is done to facilitate porting of machine language programs between different models. An example of this use is the IBM System/360 family of computers and their successors. With dataflow path widths of 8 bits to 64 bits and beyond, they nevertheless present a common architecture at the machine language level across the entire line.
        Using a microcode layer to implement an emulator enables the computer to present the architecture of an entirely different computer. The System/360 line used this to allow porting programs from earlier IBM machines to the new family of computers, e.g. an IBM 1401/1440/1460 emulator on the IBM S/360 model 40.

        Relationship to bytecode

        Machine code should not be confused with so-called "bytecode" (or the older term p-code), which is either executed by an interpreter or itself compiled into machine code for faster (direct) execution. Machine code and assembly code are sometimes called native code when referring to platform-dependent parts of language features or libraries.[3]

        Storing in memory

        The Harvard architecture is a computer architecture with physically separate storage and signal pathways for the code (instructions) and data. Today, most processors implement such separate signal pathways for performance reasons but actually implement a Modified Harvard architecture,[citation needed] so they can support tasks like loading an executable program from disk storage as data and then executing it. Harvard architecture is contrasted to the Von Neumann architecture, where data and code are stored in the same memory which is read by the processor allowing the computer to execute commands.
        From the point of view of a process, the code space is the part of its address space where the code in execution is stored. In multitasking systems this comprises the program's code segment and usually shared libraries. In multi-threading environment, different threads of one process share code space along with data space, which reduces the overhead of context switching considerably as compared to process switching.

        Readability by humans

        It has been said that machine code is so unreadable that the United States Copyright Office cannot identify whether a particular encoded program is an original work of authorship;[4] however, the US Copyright Office does allow for copyright registration of computer programs.[5] Douglas Hofstadter compares machine code with the genetic code: "Looking at a program written in machine language is vaguely comparable to looking at a DNA molecule atom by atom."[6]

        See also

        Look up machine code in Wiktionary, the free dictionary.
        • Assembly language
        • Endianness
        • List of machine languages
        • Machine code monitor
        • Overhead code
        • P-code machine
        • Reduced instruction set computing (RISC)
        • Very long instruction word
        • Teaching Machine Code: Micro-Professor MPF-I

        Notes and references


      2. Such as many versions of BASIC, especially early ones, as well as Smalltalk, MATLAB, Perl, Python, Ruby and other special purpose or scripting languages.

    • Bradley Kjell; kjell at ieee dot org. "Immediate Operand".

  2. "Managed, Unmanaged, Native: What Kind of Code Is This?". developer.com. Retrieved 2008-09-02.

    1. D. Hofstadter (1980). "Gödel, Escher, Bach: An Eternal Golden Braid": 290.

    Further reading

    • Hennessy, John L.; Patterson, David A. Computer Organization and Design. The Hardware/Software Interface. Morgan Kaufmann Publishers. ISBN 1-55860-281-X.
    • Tanenbaum, Andrew S. Structured Computer Organization. Prentice Hall. ISBN 0-13-020435-8.
    • Brookshear, J. Glenn. Computer Science: An Overview. Addison Wesley. ISBN 0-321-38701-5.
    [show]
    • v
    • t
    • e
    Application binary interface (ABI)
    [show]
    • v
    • t
    • e
    Types of programming languages
    Authority control
    • GND: 4037827-5
    Categories:
    • Assembly languages
    • Machine code

    Navigation menu

    • Not logged in
    • Talk
    • Contributions
    • Create account
    • Log in
    • Article
    • Talk
    • Read
    • Edit
    • View history
    • Main page
    • Contents
    • Featured content
    • Current events
    • Random article
    • Donate to Wikipedia
    • Wikipedia store

    Interaction

    • Help
    • About Wikipedia
    • Community portal
    • Recent changes
    • Contact page

    Tools

    • What links here
    • Related changes
    • Upload file
    • Special pages
    • Permanent link
    • Page information
    • Wikidata item
    • Cite this page

    Print/export

    • Create a book
    • Download as PDF
    • Printable version

    Languages

    • العربية
    • বাংলা
    • Беларуская
    • Български
    • Bosanski
    • Brezhoneg
    • Català
    • Čeština
    • Dansk
    • Deutsch
    • Eesti
    • Ελληνικά
    • Español
    • Esperanto
    • Euskara
    • فارسی
    • Français
    • Galego
    • 한국어
    • Հայերեն
    • हिन्दी
    • Hornjoserbsce
    • Hrvatski
    • Bahasa Indonesia
    • Íslenska
    • Italiano
    • עברית
    • ქართული
    • Қазақша
    • Lietuvių
    • La .lojban.
    • Magyar
    • മലയാളം
    • Монгол
    • Nederlands
    • 日本語
    • Norsk bokmål
    • Norsk nynorsk
    • Олык марий
    • Polski
    • Português
    • Română
    • Русский
    • Scots
    • Simple English
    • Slovenčina
    • Slovenščina
    • Српски / srpski
    • Srpskohrvatski / српскохрватски
    • Suomi
    • Svenska
    • Tagalog
    • ไทย
    • Türkçe
    • Українська
    • اردو
    • Tiếng Việt
    • 粵語
    • 中文
    Edit links
    • This page was last modified on 26 May 2016, at 13:41.
  • Pamela Samuelson (Sep 1984). "CONTU Revisited: The Case against Copyright Protection for Computer Programs in Machine-Readable Form" 1984 (4). Duke Law Journal: 663–769. JSTOR 1372418.

  • "Copyright Registration for Computer Programs" (PDF). US Copyright Office. August 2008. Retrieved February 23, 2014.



    intuitivefred888 at 8:41 AM
    Share

    No comments:

    Post a Comment

    ‹
    ›
    Home
    View web version

    About Me

    intuitivefred888
    I live in Coastal Northern California at present but was raised mostly in Los Angeles and San Diego Counties. I have also lived in Seattle, Santa Fe, New Mexico, Maui and the big Island of Hawaii. My archive site is: dragonofcompassion.com
    View my complete profile
    Powered by Blogger.