LCM

To implement a program that computes the LCM of any given two numbers.

The program to compute the LCM and its equivalent low-level language instructions executed by the hardware. The low-level language instructions used are:

rem |
It performs division operation of the values contained in two registers and puts the remainder in the first register. |

rcopy |
Passing variable value back to caller function. |

push |
It pushes a variable on to the stack. |

pop |
It pops out the variable out of the stack. |

store |
It stores the value from the given register to the global or local variable. |

out |
It prints the output value to the screen. |

neq |
Check if the values in two registers are different. |

mul |
It multiplies the values contained in two registers and puts the result in the first register. |

lcopy |
Local copying- used to copy the value of a variable within the same memory segment. |

load |
It loads a value of a global or local variable to the given register. |

label |
Is used to mark the position in the low-level language instructions to enable jumping to the marked position. |

in |
It reads the input from the user and stores it in a variable. |

if_true |
Checks if the condition evaluated to true. |

if_false |
Checks if the condition evaluated to be false. |

freturn |
It returns the control from the called function to the caller. |

fenter |
It changes the control of execution to the called function. |

fcall |
It initiates a call to the given function. |

exit |
Signifies the end of program. |

div |
It divides the values contained in two registers and puts the result in the first register. |

copy |
It copies the value of a variable between segments of memory. |

assign |
It assigns a value to a variable. |

- The program demonstrates the concept of LCM, which is the smallest positive integer that is divisible by both input numbers without leaving a remainder.
- The program uses the concept of GCD, which is the largest positive integer that divides both input numbers without leaving a remainder.
- Will learn how to implement the LCM calculation using the relationship between LCM and GCD:

LCM(a, b) = (a * b) / GCD(a, b)

- Learners will understand the Euclidean algorithm for calculating GCD iteratively. The algorithm involves finding the remainder repeatedly until the remainder is zero.
- Learners will gain experience in defining and using functions to modularize code, promoting code reusability and readability.
- The program involves basic arithmetic operations (+, %, //) that are fundamental in programming and mathematical computations.