📄 f46.s
字号:
/// f46 -- constant evaluation.globl getcon.globl dope.globl codegetcon: mov r0,-(sp) mov r2,-(sp) clr r2 / dec . counter clrf fr0 movif $10.,fr1 clr -(sp) / - flag cmpb (r1)+,$'+ beq 1f cmpb -(r1),$'- bne 1f inc r1 inc (sp)1: movb (r1)+,r0 sub $'0,r0 cmp r0,$9 blos 2f cmp r0,$'.-'0 bne 1f dec r2 br 1b2: tst r2 beq 2f dec r22: mulf fr1,fr0 movif r0,fr2 addf fr2,fr0 br 1b1: tst r2 bne 1f dec r21: cmp r0,$'e-'0 beq 2f cmp r0,$'d-'0 bne 1f2: mov r3,-(sp) clr r3 clr -(sp) cmpb (r1),$'- bne 3f inc r1 inc (sp) br 2f3: cmpb (r1),$'+ bne 2f inc r12: movb (r1)+,r0 sub $'0,r0 cmp r0,$9 bhi 2f mpy $10.,r3 add r0,r3 br 2b2: tst (sp)+ beq 2f neg r32: add r3,r2 mov (sp)+,r31: movf fr1,fr2 add $1,r2 beq 1f blt 2f clr -(sp) br 3f2: mov pc,-(sp) neg r23: sub $1,r2 ble 2f mulf fr1,fr2 br 3b2: tst (sp)+ bne 2f mulf fr2,fr0 br 1f2: divf fr2,fr01: tst (sp)+ beq 1f negf fr01: cmpb -(r1),$', bne 1f movf fr0,-(sp) inc r1 jsr r5,getcon movf (sp)+,fr1 / a,b -> r1,r01: mov (sp)+,r2 mov (sp)+,r0 rts r5dope: cmp progt,$6 / test "block data" bne 1f rts r51: clr r31: cmp r3,symtp bhis 1f mov symtab(r3),r0 bic $!70,r0 cmp r0,$20 bne 2f mov symtab+2(r3),r0 beq 2f mov (r0)+,r1 mov r1,r2 asl r2 add r0,r2 mov (r2),r0 jsr r5,code <d%d: %d.\n \0>; .even r0 r13: dec r1 blt 3f mov -(r2),r0 bge 4f jsr r5,code <..; \0>; .even br 3b4: jsr r5,code <%d.; \0>; .even r0 br 3b3: mov symtab(r3),r2 clrb r2 swab r2 jsr r5,code <%d.\n\0>; .even r22: add $8,r3 br 1b1: rts r5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -