Changeset 2090 for src/ASM/CPP2012-asm
- Timestamp:
- Jun 15, 2012, 12:57:03 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ASM/CPP2012-asm/cpp-2012-asm.tex
r2089 r2090 80 80 In order to do this, we must solve the `branch displacement' problem---deciding how best to expand pseudojumps to labels in assembly language to machine code jumps. 81 81 Clearly a correct but efficient strategy would be to expand all unconditional pseudojumps to the MCS-51's \texttt{LJMP} instruction, and all conditional pseudojumps to a set configuration of jumps using \texttt{LJMP} instructions; this is inefficient and a waste of valuable code memory space. 82 Finding an efficient solution with this expansion process is not trivial, and is a well-known problem for those writing assemblers targetting RISC architectures (for instance, see~\cite{holmes:branch:2006}).82 Finding an efficient solution with this expansion process is not trivial, and is a well-known problem for those writing assemblers targetting CISC architectures (for instance, see~\cite{holmes:branch:2006}). 83 83 84 84 To free the CerCo C compiler from having to consider complications relating to branch displacement, we have chosen to implement an optimising assembler, whose input language the compiler will target.
Note: See TracChangeset
for help on using the changeset viewer.