A good macro assembler allows to write code on an abstraction level that's not much different from C though ;)
What actually makes C a high-level language isn't the language, but the optimizer passes in modern C compilers.
What actually makes C a high-level language isn't the language, but the optimizer passes in modern C compilers.
I don't think so because that would imply that a language would be low-level until someone writes an optimizing compiler for it. The "levelness" of a language shouldn't depend on implementation details.
I personally would not be able to do that and keep up with the daily problems, but it might be fun.
Macro Assemblers like MASM, TASM, NASM, YASM et al, provide directives to define structs, strings and such, alongside macros for most common control structures.