To implement a program that computes the GCD of two numbers.
The program to compute the GCD and its equivalent low-level instructions executed by the hardware. The low-level instructions used are:
assign | It assigns a value to a variable |
load | It loads a value of a global or local variable to the given register |
store | It stores the value from the given register to the global or local variable |
add | It adds the values contained in two registers and puts the result in the first register. |
out | It prints the output value to the screen. |
in | It reads the input from to user and stores in a variable |
copy | It copies the value of a variable between segments of memory. |
push | It pushes a variable on to the stack |
pop | It pops out the variable out of the stack |
rem | It performs division operation of the values contained in two registers and puts the remainder in the first register. |
fcall | It initiates a call to the given function. |
fenter | It changes the control of execution to the called function. |
freturn | It returns the control from the called function to the caller. |
neq | Check if the values in two registers are different. |
if_true | Checks if the condition evaluated to true. |
if_false | Checks if the condition evaluated to false. |
label | Is used to mark the position in the low-level instructions to enable jumping to the marked position. |
exit | Signifies the end of program |