📄 f32.s
字号:
/// f32 -- expression to tree.globl e1.globl e2.globl e11.globl error.globl getsym.globl blockp.globl blocks.globl declimpl.globl conu.globl ptemp.globl functn.globl funimpl/ e1: e2[,e1]/ e2: e2[.or.e3]/ e3: e3[.and.e4]/ e4: [.not.]e5/ e5: e6[.rel.e6]/ e6: [+-]e7[+-e6]/ e7: e7[*/e8]/ e8: e9[**e9]/ e9: constant/ name[(e1)]/ (e2)e1: jsr r5,e2 cmp r0,$36. / , bne 1f jsr r5,block; e1 rts r5e2: jsr r5,e32: cmp r0,$30. / or bne 1f jsr r5,block; e3 br 2be3: jsr r5,e42: cmp r0,$28. / and bne 1f jsr r5,block; e4 br 2be4: jsr r5,getsym cmp r0,$26. / not bne e5 clr r2 jsr r5,block; e5a rts r5e5a: jsr r5,getsyme5: jsr r5,e6 cmp r0,$14. / .lt. blo 1f cmp r0,$24. / .ge. bhi 1f jsr r5,block; e6a rts r5e6a: jsr r5,getsyme6: cmp r0,$12. / + beq e6a cmp r0,$10. / - bne 2f clr r2 jsr r5,block; e7a br 3f2: jsr r5,e73: cmp r0,$10. / - blo 1f cmp r0,$12. / + bhi 1f jsr r5,block; e7a br 3be7a: jsr r5,getsyme7: jsr r5,e82: cmp r0,$6. / / blo 1f cmp r0,$8. / * bhi 1f jsr r5,block; e8a br 2be8a: jsr r5,getsyme8: jsr r5,e9 cmp r0,$4 / ** bne 1f jsr r5,block; e9a1: rts r5e9a: jsr r5,getsyme9: cmp r0,$2 / constant beq 3f/ (e2) cmp r0,$32. / ( bne 1f jsr r5,e2 br 2fe10: jsr r5,e12: cmp r0,$34. / ) beq 2f jsr r5,error; 29. rts r52: jsr r5,getsym rts r51: tst r0 beq e11/ unknown jsr r5,error; 30. rts r5/ namee11: mov r3,r2 jsr r5,getsym cmp r0,$32. / ( bne 1f jsr r5,appl jsr r5,block; e10 rts r51: mov r2,r3 mov r0,-(sp) jsr r5,declimpl mov symtab(r3),r0 bic $!70,r0 cmp r0,$30 / class =| funct bne 1f jsr r5,appl mov $42.,r3 / just function name br 2f1: clr r32: mov (sp)+,r0 mov r2,-(sp) mov blockp,r2 add $6,blockp mov r3,(r2) mov (sp)+,2(r2) clr 4(r2) rts r5/ number3: mov blockp,r2 add $6,blockp mov r0,(r2) mov r3,2(r2) cmpb 2(r2),$5 / const->int bne 4f movb $1,2(r2)4: mov r3,temp mov conu,4(r2) inc conu jsr r5,ptemp; 'c; temp; symbuf jsr r5,getsym rts r5appl: clr functn bit $70,symtab(r2) / class bne 1f bis $30,symtab(r2) jsr r5,funimpl1: mov r2,r3 jsr r5,declimpl mov symtab(r2),r0 bic $!70,r0 / class again cmp r0,$20 / array beq 1f cmp r0,$30 / funct beq 2f jsr r5,error; 33. bic $70,symtab(r2) br appl1: mov $32.,r0 rts r52: mov $34.,r0 rts r5block: mov blockp,r3 add $6,blockp mov r0,(r3)+ mov r2,(r3)+ mov r3,-(sp) jsr r5,*(r5)+ mov r2,*(sp) mov (sp)+,r2 sub $4,r2 rts r5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -