Los procesadores dentro de la misma familia (por ejemplo, Cortex M3) deben tener las mismas instrucciones, pero las diferentes familias tienen instrucciones diferentes. El ARM original usó un conjunto de instrucciones de 32 bits, luego apareció una versión que podía cambiar entre el modo "ARM" y el modo "Pulgar", y este último implementó un conjunto más pequeño de instrucciones de 16 bits. Un trabajo que toma la mitad nuevamente de las instrucciones de Thumb que tomaría las instrucciones ARM tomará aproximadamente la mitad de la ejecución de modo Thumb como el modo ARM, pero encajará en 3/4 del espacio.
Muchos procesadores más nuevos no tienen ningún modo de 32 bits, pero algunos pueden combinar dos palabras de instrucción consecutivas de tal manera que den como resultado la mayoría de las instrucciones del conjunto de instrucciones ARM de 32 bits, más un poco mas. Tenga en cuenta que algunas instrucciones ARM de 32 bits no están implementadas. El efecto neto es que no hay un procesador que pueda realizar cada instrucción ARM; diferentes familias ARM tienen diferentes conjuntos de instrucciones disponibles para ellos.