Can someone take a second too explain what is meant by 100% Assembly Code?
Assembly language uses instructions (opcodes) that are translated directly into the instructions that the CPU (or GPU) itself uses, no translation needed.
Languages like C++ need to be translated to assembly language first, which causes some overhead, as it uses a more generic way of generating code.
Also with assembly language you can use some instructions that aren't available in higher level languages and optimize your code in a much more detailed way (counting how many processor cycles an instruction takes, substituting instructions for similar ones that are faster, accounting for using the pipelines and caches of the CPU efficiently etc.).
The major drawback is that it takes (a lot) more assembly instructions to write something than it would if you had written it in a higher level language (which would be translated into more assembly instructions though). Also there usually won't be generic libraries with you can use, you have to write everything yourself. Also there will mostly be less tools available to debug your software.
If it is possible to program the hardware directly instead of through some kind of software interface you can also gain a lot of speed.
Assembly code is also harder to read, especially if you start using complex formulas, like the ones needed for 3D graphics.
If you program using the numbers associated to each assembly opcode, instead of the opcodes themselves, you won't need an assembler to convert them. This is called programming in machine code, but it doesn't have any advantages over using assembly opcodes.
BTW, it is nice to see everyone in this topic use the word 'assembly' instead of 'assembler', which is the software that translates your opcodes into machine code.