When trying to write 4 bytes in MAR (which is limited to 3 bytes) instead of truncating the simulator extends MAR to 4 bytes (seen in debug mode). Using MAR in another operation afterward results in an overflow exception.
For example:
MAR <- 0xff000000;
MDR <- 8;
M[MAR] <- MDR;
When trying to write 4 bytes in MAR (which is limited to 3 bytes) instead of truncating the simulator extends MAR to 4 bytes (seen in debug mode). Using MAR in another operation afterward results in an overflow exception. For example: MAR <- 0xff000000; MDR <- 8; M[MAR] <- MDR;