📄 atof.s
字号:
/ C library -- ascii to floating/ f = atof(p)/ char *p;ldfps = 170100^tststfps = 170200^tst.globl _atof.globl csv, cret_atof: jsr r5,csv stfps -(sp) ldfps $200 movf fr1,-(sp) clr -(sp) clrf fr0 clr r2 mov 4(r5),r31: movb (r3)+,r0 cmp $' ,r0 beq 1b cmpb r0,$'- bne 2f inc (sp)1: movb (r3)+,r02: sub $'0,r0 cmp r0,$9. bhi 2f jsr pc,digit br 1b inc r2 br 1b2: cmpb r0,$'.-'0 bne 2f1: movb (r3)+,r0 sub $'0,r0 cmp r0,$9. bhi 2f jsr pc,digit dec r2 br 1b2: cmpb r0,$'E-'0 beq 3f cmpb r0,$'e-'0 bne 1f3: clr r4 clr r1 cmpb (r3),$'- bne 3f inc r4 inc r33: movb (r3)+,r0 sub $'0,r0 cmp r0,$9. bhi 3f mul $10.,r1 add r0,r1 br 3b3: tst r4 bne 3f neg r13: sub r1,r21: movf $one,fr1 mov r2,-(sp) beq 2f bgt 1f neg r21: cmp r2,$38. blos 1f clrf fr0 tst (sp)+ bmi out movf $huge,fr0 br out1: mulf $ten,fr1 sob r2,1b2: tst (sp)+ bge 1f divf fr1,fr0 br 2f1: mulf fr1,fr0 cfcc bvc 2f movf $huge,fr02:out: tst (sp)+ beq 1f negf fr01: movf (sp)+,fr1 ldfps (sp)+ jmp cret//digit: cmpf $big,fr0 cfcc blt 1f mulf $ten,fr0 movif r0,fr1 addf fr1,fr0 rts pc1: add $2,(sp) rts pc//one = 40200ten = 41040big = 56200huge = 77777
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -