Domanda Problema con operazioni in memoria.

mattstack

Utente Bronze
1 Aprile 2021
47
14
12
27
Ultima modifica:
Salve, ho un problema, tento di effettuare un'operazione di scrittura su una determinata locazione di memoria ma il contenuto di questa non cambia.
Sto scrivendo un compilatore per il linguaggio BASIC e attualmente sto vedendo se tutte le istruzioni vengono eseguite correttamente, il compilatore viene eseguito su in sistema x86 in modalità reale.
La dichiarazione di una variabile dovrebbe generare la corrispettiva istruzione "mov WORD PTR [bp-offset], imm16", che però non viene eseguita, come se il segmento sulla quale viene effettuata l'operazione di scrittura non fosse accessibile, situazione del tutto probabile in modalità protetta, ma il compilatore per l'appunto è in esecuzione in modalità reale.
Schermata del 2022-02-16 16-06-45.png

Come si può vedere effettuando il dump della memoria sia prima che dopo l'esecuzione dell'istruzione il contenuto non cambia, stessa cosa accade se si effettua un operazione di lettura, il dato letto è diverso da quello presente in memoria.
Ho provato anche con altri emulatori DOS ma ho ottunuto lo stesso risultato, anche con QEMU, scrivendo un piccolo bootloader per caricare il programma in memoria e un piccolo debugger che permette di vedere il contenuto della memoria ad ogni istruzione tramite la seriale, ma il risultato è stato lo stesso.
Spero possiate aiutarmi, perché non so assolutamente come risolvere il problema. grazie :blabla: