Problem Statement
Write a sequence of instructions for SIC/XE to divide BETA by GAMMA, setting ALPHA to the integer portion of the quotient and DELTA to the remainder. Use register-to-register instructions to make the calculation as efficient as possible.
Solution
| Line Number(ac) | Code | Description |
| 1 | LDA BETA | Load the value of BETA to accumulator |
| 2 | LDS GAMMA | Load the value of GAMMA to register S |
| 3 | DIVR S, A | Divide the value of accumulator with the Register S |
| 4 | STA ALPHA | Store the accumulator value to ALPHA |
| 5 | MULR S, A | Multiply the value of accumulator with Register S and store the result in accumulator. |
| 6 | LDS BETA | Load the value of BETA to Register S |
| 7 | SUBR A, S | Subtract the value of Register S from Accumulator and store the result in Register A |
| 8 | STS DELTA | Store the value of register S to DELTA |
| 9 | ALPHA RESW 1 | Reserve 1 word for ALPHA |
| 10 | BETA RESW 1 | Reserve 1 word for BETA |
| 11 | GAMMA RESW 1 | Reserve 1 word for GAMMA |
| 12 | DELTA RESW 1 | Reserve 1 word for DELTA |
Leave a Reply