Assembly language is still lacking:
- No Symbolic names. You need to keep track
of the exact memory location that a piece of data is stored. That is, you
must manipulate memory locations directly.
- Hard to read. Although we've made a few improvements
by eliminating hex code, the command names are not always clear.
- Code is still machine dependent. We haven't
really moved that far away from the machine language - just put psuedo-English
labels on it. We still need to rewrite every piece of code for every machine.
- Hard to maintain and debug. Finding mistakes
in machine code is difficult. Correcting them or adding new features can also
be a challenge.
- Code must be heavily documented. It's very
difficult (if not impossible) to figure out what a program does by reading
the code. Detailed explanation must be prepared for future coders who need
to modify or use the code.
Note: Assembly language is a compiled language:
using an Assembler, a symbolic code written in assembly language can
be translated to machine language, and the code in machine language can be directly
executed on a computer.