             
             // LD_V_BYTE (set register with value)
             0x6000: { arg in
-                let registerX = Int(arg & 0x100)
-                let value = UInt8(arg & 0x11)
+                let registerX = Int(arg & 0x0100)
+                let value = UInt8(arg & 0x0011)
 
                 self.V[registerX] = value;
             },
             
             // ADD_V_BYTE (add value to register v)
             0x7000: { arg in
-                let registerX = Int(arg & 0x100)
-                let value = UInt8(arg & 0x11)
+                let registerX = Int(arg & 0x0100)
+                let value = UInt8(arg & 0x0011)
                 let currentValue = self.V[registerX]
                 
                 // Adding the value, but wrapping around since we can't store more in a byte

            
            // SNE_V_BYTE (skip next instruction if register does not equals value)
            0x4000: { arg in
                let registerX = Int(arg & 0x100)
                let value = UInt8(arg & 0x11)
                
                if(self.V[registerX] != value)
                {

                self.V[registerX] = UInt8(Int(result) % 256)
            },
            
            // SHL_V (Shift the first register left by one the flag will containt the MSB before the shift
            0x800E: { arg in
                let registerX = Int(arg & 0x0100)
                let valueX = self.V[registerX]
                
                // Set the flag
