fn execute(&mut self, instr: ByteInstruction, wide: bool) -> Result<(), String> {
        self.tick += 1;
        let opcode = tag::get_opcode(instr.0);
        let data = instr.0 & 0xFFFF;
        let extra = instr.1 & !(0b11 << 30);

        if self.cpu.itstate.active() {
            let should_execute = self.cpu.check_condition(self.cpu.itstate.condition());
            self.cpu.itstate.advance();
            if !should_execute {
                return Ok(());
            }
        }

        return if wide {
            self.execute_wide(opcode, data, extra)
        } else {
            self.execute_narrow(opcode, data)
        }
    }
/**
     * Execute: Takes the instruction and opcode, and executes
     * the instruction based on the opcode. It assumes
     */
Takes the instruction and opcode, and executes
the instruction based on the opcode. It assumes
Takes the instruction and opcode and executes the instruction based on the opcode . It assumes
fn execute(&mut self, instr: ByteInstruction, wide: bool) -> Result<(), String> {
        self.tick += 1;
        let opcode = tag::get_opcode(instr.0);
        let data = instr.0 & 0xFFFF;
        let extra = instr.1 & !(0b11 << 30);
        if self.cpu.itstate.active() {
            let should_execute = self.cpu.check_condition(self.cpu.itstate.condition());
            self.cpu.itstate.advance();
            if !should_execute {
                return Ok(());
            }
        }
        return if wide {
            self.execute_wide(opcode, data, extra)
        } else {
            self.execute_narrow(opcode, data)
        }
    }
fn execute ( & mut self , instr : ByteInstruction , wide : bool ) -> Result < ( ) , String > { self . tick += 1 ; let opcode = tag :: get_opcode ( instr . 0 ) ; let data = instr . 0 & 0xFFFF ; let extra = instr . 1 & ! ( 0b11 << 30 ) ; if self . cpu . itstate . active ( ) { let should_execute = self . cpu . check_condition ( self . cpu . itstate . condition ( ) ) ; self . cpu . itstate . advance ( ) ; if ! should_execute { return Ok ( ( ) ) ; } } return if wide { self . execute_wide ( opcode , data , extra ) } else { self . execute_narrow ( opcode , data ) } }
Execute: Takes the instruction and opcode, and executes
 the instruction based on the opcode.
Execute : Takes the instruction and opcode and executes the instruction based on the opcode .
&mut self
instr
ByteInstruction
wide
bool