Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- label loop
- MOV INPUT TO RAM
- ADD_VAR_CST REG5 1 REG5 # REG5+1, store REG5
- 98 REG5 15 loop
- MOV REG5 TO REG3
- 65 REG3 1 REG3 # len()-1
- label loop1
- COPY_CONST 0 TO REG5
- COPY_CONST 0 TO REG4
- label loop2
- MOV RAM TO REG0
- MOV REG5 TO REG2
- ADD_VAR_CST REG5 1 REG5
- MOV RAM TO REG1
- MOV REG2 TO REG5
- IF_GRT REG0 REG1 replace
- label fwd_REG5
- ADD_VAR_CST REG5 1 REG5
- IF_LES REG5 REG3 loop2
- 96 REG4 1 loop1
- COPY_CONST 0 TO REG5
- JMP NOW TO output_sorted
- label replace
- MOV REG1 TO RAM
- ADD_VAR_CST REG5 1 REG5
- MOV REG0 TO RAM
- COPY_CONST 1 TO REG4
- JMP NOW TO fwd_REG5
- label output_sorted
- MOV RAM TO OUTPUT
- ADD_VAR_CST REG5 1 REG5
- JMP NOW TO output_sorted
- "Equivalent" Python code:
- l = [5,10,2,200,150,120,190,210, 0, 0, 0, 0]
- REG0 = 0 # elem A
- REG1 = 0 # elem B
- REG2 = 0
- REG3 = 0 # size list
- REG4 = 1 # swap occured
- REG5 = 0 # program counter
- while l[REG5] != 0:
- REG3 += 1
- REG5 += 1
- REG3 -= 1
- while REG4 == 1:
- REG5 = 0
- REG4 = 0
- while REG5 < REG3:
- REG0 = l[REG5]
- REG2 = REG5
- REG5 += 1
- REG1 = l[REG5]
- REG5 = REG2
- if REG0 > REG1:
- l[REG5] = REG1
- REG5 += 1
- l[REG5] = REG0
- REG4 = 1
- REG5 += 1
- print(l)
Advertisement
Add Comment
Please, Sign In to add comment