📄 du.s
字号:
/ dusg -- summarize disk usage.globl putc, flush, _end mov $1,obuf mov (sp)+,r5 tst (sp)+1: dec r5 bgt 2f tstb buf1 beq 3f jsr r5,flush; obuf sys exit3: mov $dot,r0 br 3f2: mov (sp)+,r03: cmpb (r0),$'- bne 2f cmpb 1(r0),$'a bne 3f inc aflg br 1b3: cmpb 1(r0),$'s bne 1b dec aflg br 1b2: mov $buf1,r12: movb (r0)+,(r1)+ bne 2b dec r1 clr buf3+10. mov $_end,iptr mov $_end,brk sys break; _end jsr pc,tree tst aflg bpl 1b jsr r5,name br 1btree: sys stat; buf1; buf2 bes 1f bic $!60000,buf2+4 bit $20000,buf2+4 beq 2f1: clr r4 rts pc2: mov $_end,r2 mov buf2+2,r31: cmp r2,iptr bhis 1f cmp r3,(r2)+ bne 1b clr r4 jsr r5,cname rts pc1: cmp r2,brk blo 1f add $512.,brk sys break; brk: ..1: mov r3,(r2)+ mov r2,iptr cmp $40000,buf2+4 beq 1f jsr pc,gsize jsr r5,cname rts pc1: jsr pc,gsize mov r4,r3 sys open; buf1; 0 bec 1f rts pc1: mov r0,-(sp) mov r1,-(sp)1: mov 2(sp),r0 sys read; buf3; 16. bes 1f tst r0 beq 1f tst buf3 beq 1b cmp buf3+2,$".\0 beq 1b cmp buf3+2,$".. bne 2f tst buf3+4 beq 1b2: mov $buf3+2,r2 mov (sp),r1 movb $'/,(r1)+ cmpb -2(r1),$'/ bne 2f dec r12: movb (r2)+,(r1)+ bne 2b dec r1 mov r3,-(sp) jsr pc,tree mov r4,r3 add (sp)+,r3 br 1b1: mov (sp)+,r1 clrb (r1) mov (sp)+,r0 sys close mov r3,r4 tst aflg bmi 1f jsr r5,name1: rts pccname: tst aflg bgt name rts r5name: jsr pc,pnum mov $011,r0 jsr pc,pchar mov $buf1,r21: movb (r2)+,r0 beq 1f jsr pc,pchar br 1b1: mov $'\n,r0 jsr pc,pchar rts r5gsize: mov r5,-(sp) mov buf2+10.,r5 / size movb buf2+9.,r4 add $511.,r5 adc r4 alsc $-9,r4 cmp r5,$8. blo 1f mov r5,-(sp) add $255.,r5 alsc $-8,r4 add (sp)+,r51: mov r5,r4 mov (sp)+,r5 rts pcpnum: mov r4,-(sp) mov r5,-(sp) mov r4,r5 jsr pc,1f mov (sp)+,r5 mov (sp)+,r4 rts pc1: clr r4 dvd $10.,r4 mov r5,-(sp) mov r4,r5 beq 1f jsr pc,1b1: mov (sp)+,r0 add $'0,r0 jsr pc,pchar rts pcpchar: jsr r5,putc; obuf rts pcdot: <.\0> .bssiptr: .=.+2buf1: .=.+100.buf2: .=.+40.buf3: .=.+18.aflg: .=.+2obuf: .=.+520.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -