text: #include <stdio.h>
  #include <stdlib.h>
  #include <stdint.h>
  #include "cpu.h"
  
  int main(int argc, char** argv) {
  	if (argc != 2) {
  		printf("Usage: %s <binary>\n", argv[0]);
  		exit(1);
  	}
  	// read binary from file
  	FILE* file;
  	int program_len;
  	uint8_t* program;
  
  	file = fopen(argv[1], "rb"); // Open file in binary mode
  	if (file) {
  		fseek(file, 0, SEEK_END); // Jump to the end of the file
  		program_len = ftell(file); // Get current byte offset in the file
  		rewind(file); // Jump back to the beginning of the file
  
  		program = (uint8_t*) malloc(program_len * sizeof(uint8_t));
  		fread(program, program_len, 1, file);
  		fclose(file);
  	} else {
  		printf("ERROR Cannot open file %s\n", argv[1]);
  		exit(1);
  	}
  	// initialization
  	init();
  
  	// load the binary
  	load(program, program_len);
  
  	// dump the binary
  	/* dump(); */
  
  	// execute the binary code
  	exec();
  }
  
  /** zero file an array of given size
   */
  