Little Man Computer - Multiplication

We recently looked at how to do multiplication using the Little Man Computer instructions. It will help with what we are about to do if you have read and understood that article. A key concept from that article was the need to be very clear about the different roles played by the multiplier and the multiplicand. A similar distinction is needed with division. We have the dividend, which is the number to be divided, and the divisor, which is the number we are dividing by. In our program, we will repeatedly subtract the divisor, keeping track of how many times we do so, until we reach zero. For now we will only use numbers where the divisor is a factor of the dividend (i.e. it “goes into” the dividend exactly). Here is our pseudocode:

READ DIVIDEND, DIVISOR
QUOTIENT = 0
WHILE DIVIDEND > 0:
        DIVIDEND = DIVIDEND - DIVISOR
        QUOTIENT = QUOTIENT + 1
ENDWHILE
PRINT QUOTIENT

The Little Man Computer instructions are below, along with comments. Try to understand exactly what each line does and how. If you get stuck, let me know in the comments and I’ll try and help. There is a great LMC simulator available here: Little Man Computer for you to use. Enjoy!

// Get user input
INP DIVIDEND
STA DIVIDEND
INP DIVISOR
STA DIVISOR
// Begin loop
LOOP    LDA DIVIDEND
// If we have reached 0, jump to END
BRZ END
// Subtract divisor from dividend and store the result
SUB DIVISOR
STA DIVIDEND
// Increase the count (QUOTIENT) and store
LDA QUOTIENT
ADD ONE
STA QUOTIENT
// Jump to start of loop
BRA LOOP
// We've finished, so display the result
END     LDA QUOTIENT
OUT
SUB QUOTIENT
STA QUOTIENT
HLT
// Variables
DIVIDEND DAT 0
DIVISOR DAT 0
QUOTIENT DAT 0
ONE     DAT 1

Little Man Computer Programming Teaching Pack for Computer Science GCSE and A Level

You can check out a great resource for teaching or learning about Little Man Computer Programming by clicking here or on the image below.

Little Man Computer Programming Teaching Pack

Leave a Reply

Your email address will not be published. Required fields are marked

  1. Hai can you show me the coding if the divider is not the factor of the dividend? To find the GCD.

    1. This works for GCD:


      INP
      STO p
      INP
      BRZ end
      BRP loop
      end LDA p
      OUT
      HLT
      loop SUB p
      BRZ end
      BRP loop
      ADD p
      STO q
      LDA p
      SUB q
      STO p
      LDA q
      BRA loop
      p DAT
      q DAT

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Join our mailing list

Join our mailing list to receive awesome articles about learning Python and Computer Science in a fun and accessible way, straight to your inbox.