Write an LMC program to let the user enter a number n.
The program should calculate the output n + (n-1) + (n-2) + … + 3 + 2 + 1.
For instance if the user enters the value 5. The program should output the number 15 because:
LMC Simulators
Solution
LMC Instruction Set
Note that in the following table “xx” refers to a memory address (aka mailbox) in the RAM. The online LMC simulator has 100 different mailboxes in the RAM ranging from 00 to 99.
| Mnemonic | Name | Description | Op Code | 
| INP | INPUT | Retrieve user input and stores it in the accumulator. | 901 | 
| OUT | OUTPUT | Output the value stored in the accumulator. | 902 | 
| LDA | LOAD | Load the Accumulator with the contents of the memory address given. | 5xx | 
| STA | STORE | Store the value in the Accumulator in the memory address given. | 3xx | 
| ADD | ADD | Add the contents of the memory address to the Accumulator | 1xx | 
| SUB | SUBTRACT | Subtract the contents of the memory address from the Accumulator | 2xx | 
| BRP | BRANCH IF POSITIVE | Branch/Jump to the address given if the Accumulator is zero or positive. | 8xx | 
| BRZ | BRANCH IF ZERO | Branch/Jump to the address given if the Accumulator is zero. | 7xx | 
| BRA | BRANCH ALWAYS | Branch/Jump to the address given. | 6xx | 
| HLT | HALT | Stop the code | 000 | 
| DAT | DATA LOCATION | Used to associate a label to a free memory address. An optional value can also be used to be stored at the memory address. | 






