@@ -18,6 +18,7 @@ pub trait VMOperations {
1818 fn copy ( & mut self , source_reg : Register , destination_reg : Register ) ;
1919 fn add ( & mut self , source_reg : Register , destination_reg : Register ) ;
2020 fn load ( & mut self , source_reg : Register , destination_reg : Register ) ;
21+ fn load_imm ( & mut self , _: Register , _: Register ) ;
2122 fn store_out ( & mut self , source_reg : Register , _: Register ) ;
2223}
2324
@@ -68,7 +69,7 @@ impl VM {
6869 Opcode :: COPY => self . copy ( src_reg, dest_reg) ,
6970 Opcode :: ADD => self . add ( src_reg, dest_reg) ,
7071 Opcode :: LOAD => self . load ( src_reg, dest_reg) ,
71- Opcode :: LOAD_IMM => println ! ( "Immediate value loaded" ) ,
72+ Opcode :: LOAD_IMM => self . load_imm ( src_reg , dest_reg ) ,
7273 Opcode :: STORE_OUT => self . store_out ( src_reg, dest_reg) ,
7374 }
7475
@@ -180,6 +181,10 @@ impl VMOperations for VM {
180181 }
181182 }
182183
184+ fn load_imm ( & mut self , _: Register , _: Register ) {
185+ print ! ( "Immediate value loaded successfully" ) ;
186+ }
187+
183188 fn store_out ( & mut self , source_reg : Register , _: Register ) {
184189 if let Err ( err) = self . memory . write2 ( START_ADDRESS , source_reg. value ) {
185190 eprintln ! ( "Store out error: {}" , err. message( ) ) ;
0 commit comments