package Ġven us . assembler . writ ers Ċ Ċ import Ġven us . assembler . Instruction Writer Ċ import Ġven us . ris cv . Program Ċ import Ġven us . ris cv . Instruction Ċ import Ġven us . ris cv . Instruction Field Ċ Ċ /** Ċ Ġ* ĠA Ġsingleton Ġwhich Ġcan Ġbe Ġinvoked Ġto Ġwrite Ġany ĠJ - type Ġinstruction . Ċ Ġ*/ Ċ object ĠJ Type Writer Ġ: ĠInstruction Writer () Ġ{ ĊĠĠĠ Ġ/** ĠMaximum Ġvalue Ġfor Ġa ĠJ - type Ġimmediate Ġ*/ ĊĠĠĠ Ġconst Ġval ĠMAX _ J _ VALUE Ġ= Ġ 2 0 4 7 ĊĠĠĠ Ġ/** ĠMinimum Ġvalue Ġfor Ġa ĠJ - type Ġimmediate Ġ*/ ĊĠĠĠ Ġconst Ġval ĠMIN _ J _ VALUE Ġ= Ġ- 2 0 4 8 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġinstruction Ġfields , Ġadds Ġthe Ġinstruction Ġto Ġthe Ġre location Ġtable . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġprog Ġthe Ġprogram Ġto Ġadd Ġthe Ġinstruction Ġto ĊĠĠĠĠ Ġ* Ġ@ param Ġinst Ġthe Ġinstruction Ġto Ġfill Ġin Ġand Ġadd ĊĠĠĠĠ Ġ* Ġ@ param Ġargs Ġthe Ġarguments Ġgiven Ġin Ġthe Ġcode ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ throws Ġven us . assembler . Assembler Error Ġif Ġan Ġinvalid Ġregister Ġis Ġgiven ĊĠĠĠĠ Ġ* Ġ@ throws Ġven us . assembler . Assembler Error Ġif Ġthe Ġwrong Ġnumber Ġof Ġarguments Ġis Ġgiven ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġoperator Ġfun Ġinvoke ( prog : ĠProgram , Ġinst : ĠInstruction , Ġargs : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Args Length ( args , Ġ 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrd Ġ= Ġreg Name To Number ( args [ 0 ]) ĊĊĠĠĠĠĠĠĠ Ġinst . setField ( Instruction Field . RD , Ġrd ) ĊĠĠĠĠĠĠĠ Ġprog . add Re location ( args [ 1 ]) ĊĠĠĠ Ġ} Ċ }