Esercitazione: il Little Man Computer

Scrivere i seguenti programmi per LMC:

  1. programma che prende in input un numero n e restituisce il suo complemente a 10 (ovvero 1000-n). Possiamo supporre che n sia compreso tra 0 e 499.
  2. programma che prende in input due numeri (positivi) e restituisce il loro prodotto. Tenere conto del fatto che a*b = 0 + a + a + ... + a, dove la somma viene effettuata b volte.
  3. programma che prende in input un numero n e riempie le locazioni di memoria dalla 50 in poi con i numeri 0, 1, 2 .... fino ad n.

Si noti che l'esercizio 3 è MOLTO difficile. L'unico modo per risolverlo è realizzare un programma che, mentre viene eseguito, si auto modifica. Si veda il programma di esempio conta.lmc per un altro esempio di programma auto-modificante. Programmi di questo tipo NON saranno richiesti per la prova d'esame.