Low-level languages use the specific instruction set of a processor. The instruction set for each processor is defined by the manufacturer, meaning low-level languages can only be executed by a processor of the same type that it was written for. For this reason, code written in low-level languages is non-portable and will not run on computers with a different processor.