SMALL C is a "C" language compiler that is available with source code. It is very easy to port to another CPU, and this has been done many times.
SMALL C for 8088 : 101K This is SMALL C converted to the 8088 by Byte magazine. It is Public Domain, so have fun with it. The README.DOC file doesn't specify which original version this compiler is based on.
SMALL C/Plus v1.0 : 221K Small C V1.0 with structures/unions, floating point, and more. Runs on CP/M (61K TPA required). Generates a rather weird set of mnemonics but assembler is furnished.
SMALL C v1.2 : 363K This version of SMALL C is a cross compiler. It runs on a PC under MS-DOS, and generates 8080 code targeted to CP/M. By Ron Cain.
SMALL C v2.1 : 87K SMALL C v2.1 by Jim Hendrix. This version of the compiler generated code for the 8080 CPU. This is the distribution file set from Jim Hendrix. It is considered to be shareware, and a "registration" fee is requested.