Вот как я объявляю свой массив целых чисел:
int registers[16];
И вот как я заполняю свой массив:
void fill_registers()
{
registers[0] = 0 ; registers[1] = 0x11111111; registers[2] = 0x22222222;
registers[3] = 0x33333333; registers[4] = 0x44444444; registers[5] = 0x55555555;
registers[6] = 0x66666666; registers[7] = 0x77777777; registers[8] = 0x88888888;
registers[9] = 0x99999999; registers[10] = 0xAAAAAAAA; registers[11] = 0xBBBBBBBB;
registers[12] = 0xCCCCCCCC; registers[13] = 0xDDDDDDDD; registers[14] = 0xEEEEEEEE;
registers[15] = 0xFFFFFFFF;
}
И вот как яраспечатывать их обратно у пользователя в шестнадцатеричном формате ...
void print_all_registers()
{int i = 0 ;
for(i= 0 ;i < 16 ; i++)
{
printf("REG %d : %x \t %d \n ", i, registers[i],registers[i]);
}
}
Единственная проблема с этим состоит в том, что он не работает правильно, я просто продолжаю получать значения.
Я в основномдолжен иметь возможность добавлять + вычитать значения регистра, например.От +2 до 11111111. Другая проблема заключается в том, что при его печати необходимо также печатать 8 цифр, например, 00000001, а не только 1. Я просматривал многие учебные пособия, но, похоже, не могу найти ни одной, которая может помочь.
Я просто не понимаю, почему это не работает.Вот пример того, как это не работает.Если я сделаю:
registers[1] = registers[1] + 2 ;
, это приведет к значению 2, когда должно быть что-то вроде 11111113.