Assembly Language Division
1 INP R0,2 2 INP R1,2 3 MOV R2,#0 4 LOOP:SUB R0,R0,R1 5 ADD R2,R2,#1 6 CMP R0,#0 7 BGT LOOP 8 BEQ END 9 SUB R2,R2,#1 10 END:OUT R2,4 11 HALT
Line 1 & 2 will get the two numbers to divide.
Line 3 will clear register 2 and make sure its set to zero.
Line 4 is the loop label and it will subtract the second number from the first.
Line 5 will increment register 2 to count the number of subtractions we make.
Line 6 compares register 0 with zero.
Line 7 if the compare is greater than we still have subtractions to make.
Line 8 if the compare was equal, then we have completed and the number divides exactly.
Line 9 is reached if the compare was less than zero, so the last subtraction was one too far, so minus 1 from register 2.
Line 10 is the end label and will output the answer.
Line 11 is the halt.