**Código máquina** é a semi-tradución de *machine code* (=código da máquina): unha restra de códigos (palabras) que está escrita na linguaxe de máquinas e polo tanto que pode ser comprendida directamente pola CPU dunha computadora.

Formalmente, pódese definir o **Código máquina** como o sistema de códigos directamente interpretable por un circuíto microprogramable, como a CPU dun ordenador ou o microcontrolador dun autómata (un PLC). Este código consta dun conxunto de instrucións que determinan as accións a ser tomadas pola máquina. Un programa de computador consiste nunha cadea destas instrucións de linguaxe de máquina (máis os datos). Estas instrucións son normalmente executadas en secuencia, con eventuais cambios de fluxo causados polo propio programa ou eventos externos. O código máquina é específico de cada máquina ou arquitectura da máquina, aínda que o conxunto de instrucións dispoñibles poida ser similar entre elas.

Cada palabra ou código correspóndese cunha **instrución** que a CPU efectúa fisicamente e ten asignado un número. Se a lonxitude destes números nun código máquina dado, no sistema de numeración binario, é de 1 byte, dise que este código máquina é un **bytecode**.

Exemplo
-------

Nesta captura do DOS co debug aberto pódese ver o programa "v.exe". Á esquerda preséntanse os enderezos de memoria (segmento:offset), ao centro o código en hexadecimal e á dereita como sería o texto en ASCII (presentándose cun "." aqueles valores que non corresponden a letras, números ou signos de puntuación):

```
C:\Utility>debug v.exe
-d 0 100
0E3D:0000  CD 20 FF 9F 00 9A F0 FE-1D F0 4F 03 F0 07 8A 03  . ........O.....
0E3D:0010  F0 07 17 03 F0 07 DF 07-01 01 01 00 02 FF FF FF   ................
0E3D:0020  FF FF FF FF FF FF FF FF-FF FF FF FF BD 0D 4C 01   ..............L.
0E3D:0030  D0 0C 14 00 18 00 3D 0E-FF FF FF FF 00 00 00 00   ......=.........
0E3D:0040  05 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0E3D:0050  CD 21 CB 00 00 00 00 00-00 00 00 00 00 20 20 20   .!...........
0E3D:0060  20 20 20 20 20 20 20 20-00 00 00 00 00 20 20 20           .....
0E3D:0070  20 20 20 20 20 20 20 20-00 00 00 00 00 00 00 00           ........
0E3D:0080  00 0D 76 2E 65 78 65 0D-44 4F 57 53 5C 73 79 73   ..v.exe.DOWS\sys
0E3D:0090  74 65 6D 33 32 5C 64 6F-73 78 0D 0D 64 61 20 72   tem32\dosx..da r
0E3D:00A0  65 64 65 20 28 63 61 72-72 65 67 61 72 20 61 6E   ede (carregar an
0E3D:00B0  74 65 73 20 64 6F 20 64-6F 73 78 2E 65 78 65 29   tes do dosx.exe)
```

Véxase tamén
------------

### Outros artigos

* Lóxica binaria
* Linguaxe ensambladora

| * v
* c
* e
Linguaxes de programación |
| --- |
| Baixo nivel | 

|  |  |
| --- | --- |
| Primeira xeración | Código máquina |
| Segunda xeración | Assembly |

 |
| Alto nivel | 

|  |  |
| --- | --- |
| Terceira xeración | 
* A+
* ABC
* Algol
* B
* BASIC
* C
* C++
* C#
* COBOL
* CPL
* D
* E
* Fortran
* Go
* Java
* JavaScript
* Lisp
* Objective-C
* PL/1
* Pascal
* Smalltalk
* Visual Basic .NET

 |
| Cuarta xeración | 
* Clarion
* Clipper
* Clojure
* Common Lisp
* Erlang
* GNU Octave
* Haskell
* Lisp
* Lua
* Julia
* Perl
* PHP
* Prolog
* Python
* R
* Ruby
* Rust
* S
* Scilab
* Stata
* SQL

 |
| Quinta xeración | 
* Mercury
* OPS5
* Prolog

 |

 |
| 
* Ambiente de desenvolvemento
* Metaprogramación
* Programación a nivel funcional
* Programación estruturada
* Programación non estruturada
* Programación imperativa
* Programación modular
* Programación multidimensional
* Orientación a obxectos

 |

|  |  |
| --- | --- |
| Control de autoridades | 
* Wd: Q55813
* GND: 4037827-5
* MAG: 115168132

 |