diff --git a/src/simudator/gui/module_graphics_item/integer_memory_graphic.py b/src/simudator/gui/module_graphics_item/integer_memory_graphic.py
index 65c2ba3a149b5af743c7ab329eb6d47b851436a6..a177b6228b5395a5c163bf8d1c371f4e0f0a923a 100644
--- a/src/simudator/gui/module_graphics_item/integer_memory_graphic.py
+++ b/src/simudator/gui/module_graphics_item/integer_memory_graphic.py
@@ -17,6 +17,17 @@ class Base(Enum):
     HEXADECIMAL = 4
 
 
+class ValueTooBig(Exception):
+    """
+    A class representing the error of a user inputting a value that does not fit in the memory.
+
+    Used to differentiate between wrong input using the exception python raises by default (ValueError)
+    and the error of a value that does not fit.
+    """
+
+    pass
+
+
 class IntegerMemoryWindow(MemoryWindow):
     """
     A class showing the contents of a memory module in a new window.
@@ -187,6 +198,8 @@ class IntegerMemoryTable(MemoryTable):
 
         item = self.item(row, col)
         value = item.text()
+        max_value = 2**self._bit_length
+        min_value = -(2 ** (self._bit_length - 1))
 
         # Turn every value into a positive int
         # in base 10
@@ -203,6 +216,10 @@ class IntegerMemoryTable(MemoryTable):
                 self._base == Base.DECIMAL_SIGNED or self._base == Base.DECIMAL_UNSIGNED
             ):
                 value = int(value)
+
+            if value > max_value or value < min_value:
+                raise ValueTooBig
+
         except ValueError:
             msg = None
             if self._base == Base.BINARY:
@@ -217,12 +234,18 @@ class IntegerMemoryTable(MemoryTable):
             self.update()
             return
 
+        except ValueTooBig:
+            self._errorMessageWidget.showMessage(
+                f"Input value does not fit within the bit length of {self._bit_length}."
+            )
+            self.update()
+            return
+
         # Turn negative signed numbers into their positive unsigned
         # counter part
         # Ex 4 bits:
         # -7 = 1001
         # -7 + 16 % 16 = 9 = 1001 = -7
-        max_value = 2**self._bit_length
         value = (value + max_value) % max_value
 
         index = row * 4 + col