Assembler Reference Material
This course starts with things at the hardware/software
interface, and that means it very much includes assemblers. In
EE380, you used assemblers, but you never saw how one is built.
In EE480, you'll actually have to build a couple of them.
Handling of forward references
The main thing that complicates writing an assembler is the need
to resolve forward references: references to symbolic values
(labels) that appear earlier in the program text than the
definitions of those symbols. The explanation of how to handle
forward references starts on page 78 of my old compiler notes
AIK (Assembler Interpreter from Kentucky)
This assembler-interpreter was created explicitly for EE480 by
H. Dietz. It was built using the PCCTS/Antlr tools (which were
created by Dietz's group back in the early 1990s). Given a very
concise specification of an assembly language, it interpretively
implements a relatively full-featured assembler.
AIK user manual: PDF
AIK CGI executable: WWW form interface
AIK specification of EE380 MIPS: aikmips
(the first project will involve extending this)
Advanced Computer Architecture.