Estimados, alguien me puede decir si esta bien ya que es bastante diferente a la solución
Otra cosa, me generan dudas la manipulación de char como int y el dimensionamiento en cada caso.
Muchas gracias!!!!
short Array ROM[1<<18 ];//es necesario darle tamaño o inicializar? en la solución no esta
void cargar(){
int result = 0
char n = 0
char z = 0
int indice = 0
for (char op= 0, op++, op<3 ){//4 operaciones
for (char a= -128 , a++, a<128 ){//como el operador es de 2^8 me queda 2^7 para //cada lado
unsigned char b_shift =0
for (char b= -128 , b++, b<128 ){
b_shift = b;
if (op==0)//suma
result = a+b
if (op==1)//resta
result = a-b;
if (op==2)//sizq
result = a<<b;
if (op==3)//sder
result = a<<b;
if result <0
N=1;
else N=0;
if result == 0
z=1;
else z=0;
ROM [indice] = z<< 9 |n<< 8 |result; indice++;
}//forb
}//fora
}//for
//forop
}//