Een M-code is een commando dat gebruikt wordt bij het programmeren van een CNC-programma. Deze M-code is een instructie voor de machine. De code heeft een opbouw met de letter M, gevolgd door een nummer.

M is de afkorting van het Engelse woord "Miscellaneous" wat "gemengd, veelzijdig" betekent. Net zoals de G-code is ook de M-code in verschillende groepen ingedeeld.

Groep 0 is M03 (Spindel rechtsom), M04 (spindel linksom), M05 (spindel stop).
Groep 1 is M38 en M39 (precisiestop aan / uit).
Groep 2 is M00 (geprogrammeerde stop), M17 (einde onderprogramma), M30 (einde programma met terugkeer naar begin van het programma), M30 heft ook de radiuscompensatie (G41/G42) op. 
Groep 3 is M08 (koelvloeistof aan), M09 (koelvloeistof uit)

M00, M17 en M30 zijn per regel actief.
M05, M39 en M09 gedragen zich al naargelang de inschakelstatus.

Programmeren