Class Assembler

java.lang.Object
mars.assembler.Assembler

public class Assembler extends Object
An Assembler is capable of assembling a MIPS program. It has only one public method, assemble(), which implements a two-pass assembler. It translates MIPS source code into binary machine code.
Author:
Pete Sanderson, August 2003
  • Field Details

  • Constructor Details

    • Assembler

      public Assembler()
  • Method Details

    • getLog

      public AssemblerLog getLog()
    • logInfo

      public void logInfo(SourceLocation location, String content)
    • logWarning

      public void logWarning(SourceLocation location, String content)
    • logCompatibilityWarning

      public void logCompatibilityWarning(SourceLocation location, String content)
    • logError

      public void logError(SourceLocation location, String content)
    • getSymbol

      public Symbol getSymbol(String identifier)
    • getLocalSymbolTable

      public SymbolTable getLocalSymbolTable()
    • getLocalSymbolTable

      public SymbolTable getLocalSymbolTable(String filename)
    • getGlobalSymbolTable

      public SymbolTable getGlobalSymbolTable()
    • getSymbolTable

      public SymbolTable getSymbolTable(String filename)
    • getSegment

      public Assembler.Segment getSegment()
    • setSegment

      public void setSegment(Assembler.Segment segment)
    • isAutoAlignmentEnabled

      public boolean isAutoAlignmentEnabled()
    • setAutoAlignmentEnabled

      public void setAutoAlignmentEnabled(boolean enabled)
    • getSourceFilenames

      public List<String> getSourceFilenames()
    • getTokenizedFiles

      public List<SourceFile> getTokenizedFiles()
    • getParsedStatements

      public SortedMap<Integer,StatementSyntax> getParsedStatements()
    • getResolvedStatements

      public SortedMap<Integer,Statement> getResolvedStatements()
    • getAssembledStatements

      public SortedMap<Integer,BasicStatement> getAssembledStatements()
    • resetExternalState

      public void resetExternalState()
    • reset

      public void reset()
    • assembleFilenames

      public void assembleFilenames(List<String> sourceFilenames) throws AssemblyError
      Throws:
      AssemblyError
    • assembleFiles

      public void assembleFiles(List<SourceFile> sourceFiles) throws AssemblyError
      Parse and generate machine code for the given MIPS program. All source files must have already been tokenized.
      Parameters:
      sourceFiles - The list of source files which have already been tokenized.
      Throws:
      AssemblyError
    • addParsedStatement

      public void addParsedStatement(StatementSyntax statement)
    • placeStatement

      public void placeStatement(BasicStatement statement, int address)
    • alignSegmentAddress

      public void alignSegmentAddress(int alignment)
    • createForwardReferencePatch

      public void createForwardReferencePatch(int address, int length, Token identifier)
    • defineExtern

      public void defineExtern(Token identifier, int sizeBytes)
    • makeSymbolGlobal

      public void makeSymbolGlobal(Token identifier)