Skip to content

Instantly share code, notes, and snippets.

@aurorapar
Created November 26, 2016 21:10
Show Gist options
  • Save aurorapar/69a6c3d3b1a0d9f8f9b5f25610105f35 to your computer and use it in GitHub Desktop.
Save aurorapar/69a6c3d3b1a0d9f8f9b5f25610105f35 to your computer and use it in GitHub Desktop.
1
2
3 .TITLE Resursive Multiply
4 000000 SP: .BLKW 1750
5 003720 ANS: .BLKW 2
6 003724 M: .BLKW 1
7 003726 N: .BLKW 1
8
9 003730 012767 003756 174042 START: MOV #NEXT, SP
10 003736 162767 000012 174034 SUB #12, SP
11 003744 016766 177754 000000 MOV M, SP(6) ; 2(SP) AND 4(SP) CONTAIN DP ANSWER
C:\PDP11\User\MULT\mult.mac:12: ***ERROR Illegal addressing mode
12 MOV N, SP(10)
13 003752 000167 000032 JMP RECMULT
14 003756 016267 000000 177734 NEXT: MOV SP(2), ANS
15 003764 016467 000000 177730 MOV SP(4), ANS+2
16 003772 062767 000012 174000 ADD #12, SP
17
18
19 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
20 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
21 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
22
23 004000 005062 000000 RETURN: CLR SP(2)
24 004004 000177 173770 JMP @SP
25
C:\PDP11\User\MULT\mult.mac:26: ***ERROR Illegal addressing mode
26 RECMULT: TST SP(10)
27 004010 002773 BLT RETURN
28 004012 066664 000000 000000 ADD SP(6), SP(4)
29 004020 005562 000000 ADC SP(2)
C:\PDP11\User\MULT\mult.mac:30: ***ERROR Illegal addressing mode
30 DEC SP(10)
31
32 004024 016705 173750 JMPSTUFF: MOV SP, R5
33 004030 162767 000012 173742 SUB #12, SP
34 004036 012767 004052 173734 MOV #RETMULT, SP
35 004044 016666 000005 000000 MOV R5(6), SP(6)
C:\PDP11\User\MULT\mult.mac:36: ***ERROR Illegal addressing mode
36 MOV R5(10), SP(10)
37
38 004052 066464 000000 000005 RETMULT: ADD SP(4), R5(4)
39 004060 005562 000005 ADC R5(2) ; Use register instead of SP - faster
40 004064 066262 000000 000005 ADD SP(2), R5(2)
40 004072 062767 000012 173700 ADD #12, SP
Symbol Table:
ANS 003720
JMPSTU 004024
M 003724
N 003726
NEXT 003756
RECMUL 004010
RETMUL 004052
RETURN 004000
SP 000000
START 003730
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment