You argument about C vs. ASM is very funy.
C *is* ASM. It doesn't meet some of the the criteria for higher
programming laguage: usage of pointers cannot be avoided, there is no
strict type checking and overriding pointer types is sometimes the only
way to go, and additionaly, there is no special type for string variables
and you need special library to work with strings like with any other
generic memory bufffers.
Additionaly, you can specify which variables in C code should be stored
directly in registers, which means that some portions of the code will be
translated to ASM exactly like if you wrote it in ASM directly.
Additonaly, you can include ASM fragments to C code, but you are able to
use symbols like variable names, variable addresses, jump labels or
function names, so you can call C functions from inside ASM code, etc.
--
http://arachne.cz/
(Arachne WWW browser for DOS+Linux / Webhosting / MP3streaming)