INP 
    STA x
    INP
    STA y
    LDA x
    SUB y
    BRP xmax
    LDA x
    OUT
    HLT 
    xmax LDA y
    OUT 
    HLT
    x DAT
    y DAT


    small = input
    big = input 

    while big > 0
    big = big - small
    answer = 0

    if big > 0 
    answer = answer + 1 
    continue 

    if big < 0
    print answer
    endwhile

   


    1. a. 64
    b. Immediate addressing takes the value of the operand as the value to add. Direct addressing takes the value stored at the address of the operand. Indirect addressing goes to the address of the operand, follows its address to another memory location, and adds that value stored.
    If the operand is 10110:
    Immediate: The value to add is 10110 (22)
    Direct: The value to add is in memory address 10110
    Indirect: In register (or memory address) 10110 you'll find the address of the data to add

    2. 
    LDA num1
    ADD num2
    STA num3
    HLT
    num1 DAT
    num2 DAT
    num3 DAT


    3. 
    in LDA numvals
    ADD increment
    STA numvals
    INP 
    STA x
    ADD total
    STA total
    LDA x
    BRZ stop
    BRP in
    stop LDA numvals
    SUB increment
    OUT
    LDA total
    OUT
    HLT
    increment DAT 1
    numvals DAT 0 
    total DAT 0
    x DAT

    hello INP 
    STA x
    ADD one
    SUB fifty
    STA y
    BRZ hello
    BRP no
    no LDA x
    ADD y
    STA x
    BRA shush
    shush LDA x
    OUT
    HLT
    x DAT
    y DAT
    one DAT 1
    fifty DAT 50