Вы получили приоритет оператора и произвели неверный ответ:
pub fn get_instruction(file: &[u8], counter: usize) {
let ins = u32::from(file[counter]) << 24
| u32::from(file[counter + 1]) << 16
| u32::from(file[counter + 2]) << 8
| u32::from(file[counter + 3]);
println!("{:x}", ins);
}
Вы произвели после , пытаясь сдвинуть u8
24 бит, что было вашей проблемой.