📄 as27.s
字号:
/// a7 -- pdp-11 assemblerexpres: clr xsymbolexpres1: mov r5,-(sp) mov $'+,-(sp) clr r2 mov $1,r3 br 1fadvanc: jsr pc,readop1: mov r4,r0 jsr r5,betwen; 0; 177 br .+4 br 7f movb (r4),r0 tst r0 bne 1f tstb passno beq 1f jsr r5,error; 'u1: cmp r0,$40 bne 1f mov r4,xsymbol clr r1 br oprand1: mov 2(r4),r1 br oprand7: cmp r4,$141 blo 1f asl r4 mov curfb-[2*141](r4),r0 mov 2(r0),r1 movb (r0),r0 br oprand1: mov $esw1,r11: cmp (r1)+,r4 beq 1f tst (r1)+ bne 1b tst (sp)+ mov (sp)+,r5 rts pc1: jmp *(r1)esw1: '+; binop '-; binop '*; binop '/; binop '&; binop 037; binop 035; binop 036; binop '%; binop '[; brack '^; binop 1; exnum 2; exnum1 '!; binop 200; 0binop: cmpb (sp),$'+ beq 1f jsr pc,errore1: movb r4,(sp) br advancexnum1: mov numval,r1 br 1fexnum: jsr pc,getw mov r4,r11: mov $1,r0 br oprandbrack: mov r2,-(sp) mov r3,-(sp) jsr pc,readop jsr pc,expres1 cmp r4,$'] beq 1f jsr r5,error; ']1: mov r3,r0 mov r2,r1 mov (sp)+,r3 mov (sp)+,r2oprand: mov $exsw2,r51: cmp (sp),(r5)+ beq 1f tst (r5)+ bne 1b br eoprnd1: jmp *(r5)exsw2: '+; exadd '-; exsub '*; exmul '/; exdiv 037; exor '&; exand 035;exlsh 036;exrsh '%; exmod '^; excmbin '!; exnot 200; 0excmbin: mov r0,r3 br eoprndexrsh: neg r1 beq exlsh inc r1 clc ror r2exlsh: jsr r5,combin; relte2 als r1,r2 br eoprndexmod: jsr r5,combin; relte2 mov r3,r0 mov r2,r3 clr r2 dvd r1,r2 mov r3,r2 mov r0,r3 br eoprndexadd: jsr r5,combin; reltp2 add r1,r2 br eoprndexsub: jsr r5,combin; reltm2 sub r1,r2 br eoprndexand: jsr r5,combin; relte2 com r1 bic r1,r2 br eoprndexor: jsr r5,combin; relte2 bis r1,r2 br eoprndexmul: jsr r5,combin; relte2 mpy r2,r1 mov r1,r2 br eoprndexdiv: jsr r5,combin; relte2 mov r3,r0 mov r2,r3 clr r2 dvd r1,r2 mov r0,r3 br eoprndexnot: jsr r5,combin; relte2 com r1 add r1,r2 br eoprndeoprnd: mov $'+,(sp) jmp advanccombin: tstb passno bne combin1 mov r0,-(sp) bis r3,(sp) bic $!40,(sp) bic $!37,r0 bic $!37,r3 cmp r0,r3 ble 1f mov r0,-(sp) mov r3,r0 mov (sp)+,r31: tst r0 beq 1f cmp (r5)+,$reltm2 bne 2f cmp r0,r3 bne 2f mov $1,r3 br 2f1: tst (r5)+ clr r32: bis (sp)+,r3 rts r5combin1: mov r1,-(sp) clr maxtyp jsr pc,maprel mov r0,r1 mpy $6,r1 mov r3,r0 jsr pc,maprel add (r5)+,r0 add r1,r0 movb (r0),r3 bpl 1f cmp r3,$-1 beq 2f jsr r5,error; 'r2: mov maxtyp,r31: mov (sp)+,r1 rts r5maprel: cmp r0,$40 bne 1f mov $5,r0 rts pc1: bic $!37,r0 cmp r0,maxtyp blos 1f mov r0,maxtyp1: cmp r0,$5 blos 1f mov $1,r01: rts pcX = -2M = -1reltp2: .byte 0, 0, 0, 0, 0, 0 .byte 0, M, 2, 3, 4,40 .byte 0, 2, X, X, X, X .byte 0, 3, X, X, X, X .byte 0, 4, X, X, X, X .byte 0,40, X, X, X, Xreltm2: .byte 0, 0, 0, 0, 0, 0 .byte 0, M, 2, 3, 4,40 .byte 0, X, 1, X, X, X .byte 0, X, X, 1, X, X .byte 0, X, X, X, 1, X .byte 0, X, X, X, X, Xrelte2: .byte 0, 0, 0, 0, 0, 0 .byte 0, M, X, X, X, X .byte 0, X, X, X, X, X .byte 0, X, X, X, X, X .byte 0, X, X, X, X, X .byte 0, X, X, X, X, X
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -