M kodları, CNC programlarının yazımında kullanılan yardımcı fonksiyon ve kesme işlemini kolaylaştıran kodlardır.
CNC programlarının yazımında G ve M kodlarının solunda bulunan sıfır(0) rakamlarının yazılma zorunluluğu yoktur. Bu rakamın yazılması ya da yazılmaması program formatı bakımından hata sayılmaz.
M0; programın çalıştırılması esnasında program M0 satırına geldiğinde tezgâh durur ve bekler. Bekleme süresi tekrar cycle start düğmesine basıncaya kadardır. Cycle start düğmesine basıldığında program kaldığı yerden devam eder.
M0 komutu özellikle ölçü kontrolü ya da iki tarafı aynı programla işlenecek iş parçalarının işlenmesinde tercih edilir. İş parçasının birinci ucu işlendikten sonra M0 komutunu gören tezgâh durur. Parça çözülür ve işlenmiş kısmından tekrar bağlanır. Cycle start düğmesine basılır ve bu sefer iş parçasının daha önce işlenmemiş ucu işlenir. Burada her iki uçtaki işlenecek programların aynı olması şart değildir. Tek önemli nokta sıkma çaplarının birbirine yakın olması gerekir. Böylece ayna ayaklarını yeniden sıkma ayarı yapmaya gerek kalmaz.
M0 komutu bazen derin deliklerin delinmesinde de kullanılır. Özellikle yumuşak malzemelerin delinmesinde malzeme matkap kanallarını tıkayabilir. Böyle durumlarda matkap iş parçası dışına alınır ve M0 komutu ile tezgah durdurulur. Matkabın ucu temizlendikten sonra tekrar cycle start düğmesine basılarak delme işlemine devam edilir.
M1, isteğe bağlı stop (durma) komutudur. Programın çalıştırılması esnasında programın bu M1 satırına gelindiğinde eğer optional stop switchi ON konumunda ise tezgâh durur. İşleme kalınan yerden devam edebilmek için yine cycle start düğmesine basmak gerekir. Yani biz CNC programında M1 komutunu yazmış olsak bile tezgâhın durabilmesi için kontrol ünitesinde optional stop switch düğmesinin ON pozisyonunda olması gerekir. Eğer switch OFF konumunda ise tezgah durmaz işlemeye devam eder.