Kod maszynowy, zwany także językiem maszynowym, jest elementarnym językiem komputerów. Jest on odczytywany przez centralną jednostkę przetwarzania (CPU) komputera, składa się z cyfrowych liczb binarnych i wygląda jak bardzo długi ciąg zer i jedynek. Ostatecznie kod źródłowy każdego języka programowania czytelnego dla człowieka musi zostać przetłumaczony na język maszynowy przez kompilator lub interpreter, ponieważ kod jest jedynym językiem zrozumiałym dla sprzętu komputerowego.
Każdy procesor ma swój własny, specyficzny język maszynowy. Procesor odczytuje i obsługuje instrukcje, które nakazują mu wykonanie prostego zadania. Instrukcje składają się z określonej liczby bitów. Na przykład, jeśli instrukcje dla danego procesora mają 8 bitów, pierwsze 4 bity (opcode) mówią komputerowi, co ma robić, a drugie 4 bity (operand) mówią komputerowi, jakich danych użyć.
01001000 01100101 01101100 01101100 01101111 00100001
W zależności od procesora, zestawy instrukcji komputera mogą mieć taką samą długość lub mogą się różnić, w zależności od konkretnej instrukcji. Architektura danego procesora określa, w jaki sposób instrukcje są wzorowane. Wykonywanie instrukcji jest kontrolowane przez firmware lub wewnętrzne okablowanie procesora.
Ludzcy programiści rzadko, jeśli w ogóle, mają do czynienia bezpośrednio z kodem maszynowym. Jeśli programiści debugują program na niskim poziomie, mogą użyć wydruku, który pokazuje program w postaci kodu maszynowego. Wydruk, który nazywa się zrzutem, jest bardzo trudny i do pracy z narzędziem zwanym zrzutem. Programy narzędziowe używane do tworzenia zrzutów często reprezentują cztery bity przez pojedynczą liczbę szesnastkową, aby kod maszynowy był łatwiejszy do odczytania i zawierał inne informacje o działaniu komputera, takie jak adres instrukcji, która była wykonywana w czasie, gdy zrzut był inicjowany.