added extended address forms
Changed to pattern matching
Made RegisterOrMemory take an Option[Immediate] for offset
fixed case statement