wv.mid
来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· MID 代码 · 共 766 行
MID
766 行
.file 1 "wv.c" .section .mdebug.abi32 .previous .section .text.wv_probe,"ax",@progbits .align 2 .align 5 .ent wv_probe .type wv_probe, @functionwv_probe: .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 .mask 0x00000000,0 .fmask 0x00000000,0 .set noreorder .set nomacro lw $2,8($4) slt $2,$2,33 bne $2,$0,$L12 move $5,$0 lw $4,4($4) li $2,119 # 0x77 lbu $3,0($4) beq $3,$2,$L11 nop$L8:$L12: j $31 move $2,$5$L11: lbu $3,1($4) li $2,118 # 0x76 bne $3,$2,$L12 move $5,$0 lbu $3,2($4) li $2,112 # 0x70 bne $3,$2,$L12 nop lbu $3,3($4) li $2,107 # 0x6b beq $3,$2,$L8 li $5,100 # 0x64 j $L12 move $5,$0 .set macro .set reorder .end wv_probe .section .text.wv_read_close,"ax",@progbits .align 2 .align 5 .ent wv_read_close .type wv_read_close, @functionwv_read_close: .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 .mask 0x00000000,0 .fmask 0x00000000,0 .set noreorder .set nomacro j $31 move $2,$0 .set macro .set reorder .end wv_read_close .section .rodata.str1.4,"aMS",@progbits,1 .align 2$LC0: .ascii "Incorrect block size %i\012\000" .align 2$LC1: .ascii "Unsupported version %03X\012\000" .align 2$LC2: .ascii "Floating point data is not supported\012\000" .align 2$LC3: .ascii "Hybrid coding mode is not supported\012\000" .align 2$LC4: .ascii "Unknown sampling rate\012\000" .align 2$LC5: .ascii "Bits per sample differ, this block: %i, header block: %i" .ascii "\012\000" .align 2$LC6: .ascii "Channels differ, this block: %i, header block: %i\012\000" .align 2$LC7: .ascii "Sampling rate differ, this block: %i, header block: %i\012" .ascii "\000" .section .text.wv_read_block_header,"ax",@progbits .align 2 .align 5 .ent wv_read_block_header .type wv_read_block_header, @functionwv_read_block_header: .frame $sp,48,$31 # vars= 0, regs= 6/0, args= 24, gp= 0 .mask 0x801f0000,-4 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-48 sw $31,44($sp) sw $19,36($sp) sw $18,32($sp) sw $20,40($sp) sw $17,28($sp) sw $16,24($sp) lw $17,12($4) move $19,$4 move $4,$5 jal url_ftell move $18,$5 sw $3,52($17) sw $2,48($17) jal get_le32 move $4,$18 li $3,1802502144 # 0x6b700000 ori $3,$3,0x7677 beq $2,$3,$L48 li $2,-1 # 0xffffffffffffffff$L18: lw $31,44($sp) lw $20,40($sp) lw $19,36($sp) lw $18,32($sp) lw $17,28($sp) lw $16,24($sp) j $31 addiu $sp,$sp,48$L48: jal get_le32 move $4,$18 addiu $20,$2,-24 move $7,$2 li $2,983040 # 0xf0000 ori $2,$2,0xfc01 sltu $2,$20,$2 beq $2,$0,$L49 lui $6,%hi($LC0) sw $7,0($17) jal get_le16 move $4,$18 move $7,$2 addiu $2,$2,-1026 sltu $2,$2,15 beq $2,$0,$L50 lui $6,%hi($LC1) jal get_byte move $4,$18 jal get_byte move $4,$18 jal get_le32 move $4,$18 sw $2,20($17) jal get_le32 move $4,$18 addiu $16,$17,32 move $4,$18 move $5,$16 sw $2,24($17) jal get_buffer li $6,12 # 0xc lbu $3,7($16) lbu $4,6($16) lbu $5,4($16) sll $4,$4,16 lbu $2,5($16) sll $3,$3,24 or $3,$3,$4 or $3,$3,$5 sll $2,$2,8 or $5,$2,$3 andi $4,$5,0x80 bne $4,$0,$L51 sw $5,4($17) andi $2,$5,0x8 bne $2,$0,$L52 srl $3,$5,21 lui $2,%hi(wv_rates) addiu $2,$2,%lo(wv_rates) andi $3,$3,0x3c addu $3,$3,$2 lw $8,0($3) andi $4,$5,0x4 li $9,2 # 0x2 li $2,1 # 0x1 li $3,-1 # 0xffffffffffffffff beq $8,$3,$L53 movn $9,$2,$4 andi $2,$5,0x3 lw $3,16($17) addiu $2,$2,1 beq $3,$0,$L54 sll $7,$2,3 lw $2,12($17) beq $2,$0,$L55 nop$L34: lw $2,8($17) beq $2,$0,$L56 nop$L36: lw $2,4($17) beq $2,$0,$L38 nop lw $2,16($17)$L61: bne $7,$2,$L57 move $5,$0 lw $2,12($17) bne $9,$2,$L58 nop lw $2,8($17) bne $8,$2,$L59 nop$L38: sw $20,0($17) lw $31,44($sp) lw $20,40($sp) lw $19,36($sp) lw $18,32($sp) lw $17,28($sp) lw $16,24($sp) move $2,$0 j $31 addiu $sp,$sp,48$L56: lw $2,4($17)$L62: beq $2,$0,$L38 sw $8,8($17) j $L61 lw $2,16($17)$L55: lw $2,8($17)$L63: bne $2,$0,$L36 sw $9,12($17) j $L62 lw $2,4($17)$L54: lw $2,12($17) bne $2,$0,$L34 sw $7,16($17) j $L63 lw $2,8($17)$L59: lui $6,%hi($LC7) move $4,$19 addiu $6,$6,%lo($LC7) move $7,$8 jal av_log sw $2,16($sp) j $L18 li $2,-1 # 0xffffffffffffffff$L49: move $4,$19 addiu $6,$6,%lo($LC0) jal av_log move $5,$0 j $L18 li $2,-1 # 0xffffffffffffffff$L50: move $4,$19 addiu $6,$6,%lo($LC1) jal av_log move $5,$0 j $L18 li $2,-1 # 0xffffffffffffffff$L57: lui $6,%hi($LC5) move $4,$19 addiu $6,$6,%lo($LC5) jal av_log sw $2,16($sp) j $L18 li $2,-1 # 0xffffffffffffffff$L58: lui $6,%hi($LC6) move $4,$19 addiu $6,$6,%lo($LC6) move $7,$9 jal av_log sw $2,16($sp) j $L18 li $2,-1 # 0xffffffffffffffff$L51: lui $6,%hi($LC2) move $4,$19 addiu $6,$6,%lo($LC2) jal av_log move $5,$0 j $L18 li $2,-1 # 0xffffffffffffffff$L52: lui $6,%hi($LC3) move $4,$19 addiu $6,$6,%lo($LC3) jal av_log move $5,$0 j $L18 li $2,-1 # 0xffffffffffffffff$L53: lui $6,%hi($LC4) move $4,$19 addiu $6,$6,%lo($LC4) jal av_log move $5,$0 j $L18 li $2,-1 # 0xffffffffffffffff .set macro .set reorder .end wv_read_block_header .section .text.wv_read_packet,"ax",@progbits .align 2 .align 5 .ent wv_read_packet .type wv_read_packet, @functionwv_read_packet: .frame $sp,64,$31 # vars= 0, regs= 5/0, args= 40, gp= 0 .mask 0x800f0000,-8 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-64 sw $17,44($sp) addiu $17,$4,16 sw $19,52($sp) sw $18,48($sp) move $19,$4 sw $31,56($sp) sw $16,40($sp) move $4,$17 move $18,$5 jal url_feof lw $16,12($19) bne $2,$0,$L81 lw $31,56($sp) lw $2,28($16) bne $2,$0,$L77 move $4,$19$L67: lw $5,0($16) move $4,$18 jal av_new_packet addiu $5,$5,12 bltz $2,$L78 addiu $5,$16,32 lw $4,16($18) jal memcpy li $6,12 # 0xc lw $5,16($18) lw $6,0($16) move $4,$17 jal get_buffer addiu $5,$5,12 move $4,$2 lw $2,0($16) bne $4,$2,$L79 li $5,1 # 0x1 addiu $4,$4,12 sw $0,24($18) sw $5,28($16) sw $4,20($18) lw $2,24($16) move $3,$0 sw $2,0($18) sw $3,4($18) lw $6,48($16) lw $7,52($16) lw $4,100($19) sw $2,16($sp) sw $3,20($sp) sw $5,32($sp) sw $0,24($sp) jal av_add_index_entry sw $0,28($sp) move $2,$0$L70: lw $31,56($sp)$L82: lw $19,52($sp) lw $18,48($sp) lw $17,44($sp) lw $16,40($sp) j $31 addiu $sp,$sp,64$L77: jal wv_read_block_header move $5,$17 bgez $2,$L67 li $2,-1 # 0xffffffffffffffff j $L82 lw $31,56($sp)$L79: lw $2,36($18) bne $2,$0,$L80 lw $31,56($sp)$L81: lw $19,52($sp) lw $18,48($sp) lw $17,44($sp) lw $16,40($sp) li $2,-5 # 0xfffffffffffffffb j $31 addiu $sp,$sp,64$L78: lw $31,56($sp) lw $19,52($sp) lw $18,48($sp) lw $17,44($sp) lw $16,40($sp) li $2,-12 # 0xfffffffffffffff4 j $31 addiu $sp,$sp,64$L80: jal $2 move $4,$18 j $L70 li $2,-5 # 0xfffffffffffffffb .set macro .set reorder .end wv_read_packet .globl __divdi3 .section .text.wv_read_header,"ax",@progbits .align 2 .align 5 .ent wv_read_header .type wv_read_header, @functionwv_read_header: .frame $sp,32,$31 # vars= 0, regs= 4/0, args= 16, gp= 0 .mask 0x80070000,-4 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-32 sw $17,20($sp) addiu $5,$4,16 sw $31,28($sp) sw $18,24($sp) sw $16,16($sp) move $17,$4 jal wv_read_block_header lw $16,12($4) move $4,$17 bgez $2,$L89 move $5,$0$L84: li $4,-1 # 0xffffffffffffffff$L87: lw $31,28($sp) lw $18,24($sp) lw $17,20($sp) lw $16,16($sp) move $2,$4 j $31 addiu $sp,$sp,32$L89: jal av_new_stream sw $0,28($16) move $18,$2 move $4,$2 li $5,64 # 0x40 beq $2,$0,$L84 li $6,1 # 0x1 lw $3,8($2) lw $7,12($16) li $2,1 # 0x1 sw $7,68($3) lw $8,8($16) sw $2,224($3) li $2,65536 # 0x10000 sw $8,64($3) ori $2,$2,0x501c sw $2,228($3) lw $2,16($16) sw $2,392($3) jal av_set_pts_info lw $7,8($16) lw $3,20($16) lw $8,8($18) li $4,983040 # 0xf0000 ori $4,$4,0x4240 multu $3,$4 lw $2,64($8) mflo $4 move $6,$2 sra $7,$2,31 move $3,$0 move $2,$0 mfhi $5 sw $2,3824($17) jal __divdi3 sw $3,3828($17) move $4,$0 sw $2,3832($17) j $L87 sw $3,3836($17) .set macro .set reorder .end wv_read_header .section .text.wv_read_seek,"ax",@progbits .align 2 .align 5 .ent wv_read_seek .type wv_read_seek, @functionwv_read_seek: .frame $sp,120,$31 # vars= 56, regs= 10/0, args= 24, gp= 0 .mask 0xc0ff0000,-4 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-120 sll $5,$5,2 sw $21,100($sp) sw $20,96($sp) sw $18,88($sp) sw $31,116($sp) sw $fp,112($sp) sw $23,108($sp) sw $22,104($sp) sw $19,92($sp) sw $17,84($sp) sw $16,80($sp) addu $5,$5,$4 lw $16,100($5) lw $2,136($sp) move $18,$4 sw $2,16($sp) move $4,$16 move $20,$6 move $21,$7 jal av_index_search_timestamp lw $17,12($18) bltz $2,$L91 move $3,$2 lw $4,144($16) sll $3,$3,3 sll $2,$2,5 subu $2,$2,$3 addu $2,$2,$4 lw $6,0($2) lw $7,4($2) li $3,1 # 0x1 sw $3,28($17) addiu $4,$18,16 jal url_fseek sw $0,16($sp) move $2,$0$L93: lw $31,116($sp)$L118: lw $fp,112($sp) lw $23,108($sp) lw $22,104($sp) lw $21,100($sp) lw $20,96($sp) lw $19,92($sp) lw $18,88($sp) lw $17,84($sp) lw $16,80($sp) j $31 addiu $sp,$sp,120$L91: bltz $21,$L93 li $2,-1 # 0xffffffffffffffff lw $3,3836($18) slt $2,$21,$3 bne $2,$0,$L116 addiu $fp,$18,16 bne $3,$21,$L93 li $2,-1 # 0xffffffffffffffff lw $2,3832($18) sltu $2,$20,$2 beq $2,$0,$L93 li $2,-1 # 0xffffffffffffffff addiu $fp,$18,16$L116: jal url_ftell move $4,$fp move $22,$2 move $23,$3 addiu $19,$sp,24$L113: move $4,$18$L117: jal av_read_frame move $5,$19 bltz $2,$L108 move $4,$19 lw $2,60($sp) lw $16,24($sp) beq $2,$0,$L102 lw $17,28($sp) jal $2 nop$L102: slt $2,$17,$21 bne $2,$0,$L113 sltu $3,$16,$20 bne $17,$21,$L93 move $2,$0 bne $3,$0,$L117 move $4,$18 j $L118 lw $31,116($sp)$L108: move $4,$fp move $6,$22 move $7,$23 jal url_fseek sw $0,16($sp) j $L93 li $2,-1 # 0xffffffffffffffff .set macro .set reorder .end wv_read_seek .globl wv_demuxer .section .rodata.str1.4 .align 2$LC8: .ascii "wv\000" .align 2$LC9: .ascii "WavPack\000" .data .align 2 .type wv_demuxer, @object .size wv_demuxer, 64wv_demuxer: .word $LC8 .word $LC9 .word 56 .word wv_probe .word wv_read_header .word wv_read_packet .word wv_read_close .word wv_read_seek .space 32 .rdata .align 2 .type wv_rates, @object .size wv_rates, 64wv_rates: .word 6000 .word 8000 .word 9600 .word 11025 .word 12000 .word 16000 .word 22050 .word 24000 .word 32000 .word 44100 .word 48000 .word 64000 .word 88200 .word 96000 .word 192000 .word -1 .ident "GCC: (GNU) 4.1.2"
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?