diff options
Diffstat (limited to 'src/mem.c')
| -rw-r--r-- | src/mem.c | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -16,13 +16,22 @@ void MemSet(int addr, unsigned char value, int size){ } void MemStore(unsigned char *data, int size, int addr){ - for(int i=0;i<size;i++) + for(int i=0;i<size;i++){ + if(addr+i>4096){ + printf("Illegal memory access (store): addr=%d\n",addr+i); + return; + } memory[addr+i]=data[i]; + } } void MemLoad(unsigned char *data, int size, int addr){ int location=addr; for(int i=0;i<size;i++){ + if(addr+i>4096){ + printf("Illegal memory access (load): addr=%d\n",addr+i); + return; + } data[i]=memory[addr+i]; } } |
