Hallo,
vielen Dank für eure Antworten. Es tut mir sehr leid, dass der Code 
trotz Ergänzungen immer noch nicht vollständig war. Da ich den Code so 
übersichtlich wie möglich posten wollte, habe ich eine Reihe von 
Informationen weggelassen, wodurch diverse notwendige Dinge gefehlt 
haben. Außerdem habe ich vergessen, die Typen anzugeben. Auch dafür 
entschuldige ich mich.
1  | if befehl = x"D" then
  | 
2  | for g in 0 to 7 loop
  | 
3  |     for j in 0 to 5 loop --to_integer(unsigned(n-1)) loop
  | 
4  |         if screen(to_integer(unsigned(x)))(to_integer(unsigned(y))+j) = '0'  then
  | 
5  |             screen(to_integer(unsigned(x)))(to_integer(unsigned(y))+j) <= game(to_integer(unsigned(I))+g);
  | 
6  |         else
  | 
7  |             screen(to_integer(unsigned(x)))(to_integer(unsigned(y))+j) <= not game(to_integer(unsigned(I))+g);
  | 
8  |             register8(15) <= "00000001";
  | 
9  |        end if;
  | 
10  |     end loop;
  | 
11  | end loop;
  | 
12  | end if;
  | 
screen hat folgenden Datentypen:
1  | type screens is array (natural range 63 downto 0) of std_logic_vector (natural range 31 downto 0);
  | 
"x" und "y" sind vom Typ std_logic_vector.
Es tut mir wirklich leid, dass ihr mir auf Grundlage meines Fehlers 
versucht habt mir zu helfen.
Liebe Grüße