📄 stream_file.mid
字号:
.file 1 "stream_file.c" .section .mdebug.abi32 .previous .section .rodata.str1.4,"aMS",@progbits,1 .align 2$LC0: .ascii "Cannot seek backward in linear streams!\012\000" .section .text.seek_forward,"ax",@progbits .align 2 .align 5 .ent seek_forward .type seek_forward, @functionseek_forward: .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 $18,24($sp) sw $16,16($sp) sw $31,28($sp) sw $17,20($sp) lw $3,44($4) move $16,$4 slt $2,$5,$3 bne $2,$0,$L2 move $18,$5 slt $2,$3,$5 beq $2,$0,$L5 addiu $17,$4,80 j $L15 lw $2,0($16)$L14: lw $2,44($16) sw $0,36($16) addu $2,$4,$2 slt $3,$2,$18 sw $4,40($16) beq $3,$0,$L5 sw $2,44($16) lw $2,0($16)$L15: move $4,$16 move $5,$17 jal $2 li $6,131072 # 0x20000 bgtz $2,$L14 move $4,$2 li $2,1 # 0x1 sw $2,56($16) sw $0,36($16) sw $0,40($16) li $3,1 # 0x1 lw $31,28($sp) lw $18,24($sp) lw $17,20($sp) lw $16,16($sp) move $2,$3 j $31 addiu $sp,$sp,32$L5: li $3,1 # 0x1 lw $31,28($sp) lw $18,24($sp) lw $17,20($sp) lw $16,16($sp) move $2,$3 j $31 addiu $sp,$sp,32$L2: lui $6,%hi($LC0) addiu $6,$6,%lo($LC0) li $4,20 # 0x14 jal mp_msg li $5,4 # 0x4 move $3,$0 lw $31,28($sp) lw $18,24($sp) lw $17,20($sp) lw $16,16($sp) move $2,$3 j $31 addiu $sp,$sp,32 .set macro .set reorder .end seek_forward .section .rodata.str1.4 .align 2$LC1: .ascii "rb\000" .align 2$LC2: .ascii "wb\000" .align 2$LC3: .ascii "[file] Unknown open mode %d\012\000" .align 2$LC4: .ascii "File not found: '%s'\012\000" .align 2$LC5: .ascii "[file] File size is %lld bytes\012\000" .align 2$LC6: .ascii "[file] No filename\012\000" .section .text.open_f,"ax",@progbits .align 2 .align 5 .ent open_f .type open_f, @functionopen_f: .frame $sp,64,$31 # vars= 16, regs= 6/0, args= 24, gp= 0 .mask 0x801f0000,-4 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-64 sw $20,56($sp) sw $19,52($sp) sw $18,48($sp) sw $31,60($sp) sw $17,44($sp) sw $16,40($sp) move $19,$5 move $18,$4 beq $5,$0,$L39 move $20,$6 li $2,1 # 0x1 bne $5,$2,$L20 addiu $17,$sp,24 lui $5,%hi($LC2) move $4,$17 jal strcpy addiu $5,$5,%lo($LC2) lw $4,0($20) beq $4,$0,$L40 move $5,$17$L45: jal BUFF_Open move $16,$4 beq $2,$0,$L41 move $17,$2 jal BUFF_GetFileSize move $4,$2 move $7,$2 li $2,-1 # 0xffffffffffffffff beq $7,$2,$L42 nop bltz $7,$L34 lui $2,%hi(seek) addiu $2,$2,%lo(seek) sw $2,8($18) sw $7,52($18) sw $0,24($18)$L34: lui $6,%hi($LC5) sra $2,$7,31 addiu $6,$6,%lo($LC5) li $4,16 # 0x10 li $5,6 # 0x6 sw $2,20($sp) jal mp_msg sw $7,16($sp) lui $2,%hi(close_f) addiu $2,$2,%lo(close_f) sw $2,16($18) lui $3,%hi(control) lui $2,%hi(fill_buffer) addiu $2,$2,%lo(fill_buffer) addiu $3,$3,%lo(control) lui $4,%hi(stream_opts) sw $2,0($18) sw $17,20($18) sw $3,12($18) sw $0,4($18) addiu $4,$4,%lo(stream_opts) jal m_struct_free move $5,$20 li $2,1 # 0x1$L22: lw $31,60($sp) lw $20,56($sp) lw $19,52($sp) lw $18,48($sp) lw $17,44($sp) lw $16,40($sp) j $31 addiu $sp,$sp,64$L39: addiu $17,$sp,24 lui $5,%hi($LC1) move $4,$17 jal strcpy addiu $5,$5,%lo($LC1) lw $4,0($20) bne $4,$0,$L45 move $5,$17$L40: lw $4,4($20) bne $4,$0,$L45 move $5,$17 lui $6,%hi($LC6) addiu $6,$6,%lo($LC6) li $4,16 # 0x10 jal mp_msg li $5,1 # 0x1 j $L44 lui $4,%hi(stream_opts)$L42: beq $19,$0,$L43 lui $2,%hi(seek_forward) lw $2,28($18) li $3,2 # 0x2 ori $2,$2,0x4 sw $3,24($18) j $L34 sw $2,28($18)$L43: addiu $2,$2,%lo(seek_forward) sw $2,8($18) lw $2,28($18) li $3,2 # 0x2 ori $2,$2,0x4 sw $3,24($18) j $L34 sw $2,28($18)$L41: lui $6,%hi($LC4) addiu $6,$6,%lo($LC4) move $7,$16 li $4,16 # 0x10 jal mp_msg li $5,1 # 0x1 lui $4,%hi(stream_opts)$L44: move $5,$20 jal m_struct_free addiu $4,$4,%lo(stream_opts) lw $31,60($sp) lw $20,56($sp) lw $19,52($sp) lw $18,48($sp) lw $17,44($sp) lw $16,40($sp) move $2,$0 j $31 addiu $sp,$sp,64$L20: lui $6,%hi($LC3) move $7,$5 addiu $6,$6,%lo($LC3) li $4,16 # 0x10 jal mp_msg li $5,1 # 0x1 lui $4,%hi(stream_opts) addiu $4,$4,%lo(stream_opts) jal m_struct_free move $5,$20 j $L22 li $2,-1 # 0xffffffffffffffff .set macro .set reorder .end open_f .section .text.close_f,"ax",@progbits .align 2 .align 5 .ent close_f .type close_f, @functionclose_f: .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 .mask 0x00000000,0 .fmask 0x00000000,0 .set noreorder .set nomacro j BUFF_Close lw $4,20($4) .set macro .set reorder .end close_f .section .text.control,"ax",@progbits .align 2 .align 5 .ent control .type control, @functioncontrol: .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 $18,24($sp) sw $16,16($sp) sw $31,28($sp) sw $17,20($sp) move $7,$5 move $16,$4 beq $5,$0,$L50 move $18,$6 li $2,7 # 0x7 move $5,$0 li $6,2 # 0x2 beq $7,$2,$L55 li $3,-1 # 0xffffffffffffffff lw $31,28($sp) lw $18,24($sp) lw $17,20($sp) lw $16,16($sp) move $2,$3 j $31 addiu $sp,$sp,32$L50: lw $4,20($16) sw $0,44($16) move $5,$0 jal BUFF_Seek move $6,$0 li $3,1 # 0x1 lw $31,28($sp) lw $18,24($sp) lw $17,20($sp) lw $16,16($sp) move $2,$3 j $31 addiu $sp,$sp,32$L55: jal BUFF_Seek lw $4,20($4) lw $4,20($16) lw $5,44($16) move $6,$0 jal BUFF_Seek move $17,$2 li $2,-1 # 0xffffffffffffffff beq $17,$2,$L50 li $3,1 # 0x1 sw $17,0($18) lw $31,28($sp) lw $18,24($sp) lw $17,20($sp) lw $16,16($sp) move $2,$3 j $31 addiu $sp,$sp,32 .set macro .set reorder .end control .section .text.seek,"ax",@progbits .align 2 .align 5 .ent seek .type seek, @functionseek: .frame $sp,24,$31 # vars= 0, regs= 2/0, args= 16, gp= 0 .mask 0x80010000,-4 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-24 sw $16,16($sp) sw $31,20($sp) move $16,$4 lw $4,20($4) sw $5,44($16) jal BUFF_Seek move $6,$0 bgez $2,$L59 li $3,1 # 0x1 li $2,1 # 0x1 sw $2,56($16) move $3,$0$L59: lw $31,20($sp) lw $16,16($sp) move $2,$3 j $31 addiu $sp,$sp,24 .set macro .set reorder .end seek .section .text.fill_buffer,"ax",@progbits .align 2 .align 5 .ent fill_buffer .type fill_buffer, @functionfill_buffer: .frame $sp,24,$31 # vars= 0, regs= 1/0, args= 16, gp= 0 .mask 0x80000000,-8 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-24 sw $31,16($sp) jal BUFF_DirectRead lw $4,20($4) slt $4,$0,$2 li $3,-1 # 0xffffffffffffffff lw $31,16($sp) movz $2,$3,$4 j $31 addiu $sp,$sp,24 .set macro .set reorder .end fill_buffer .globl stream_info_file .section .rodata.str1.4 .align 2$LC7: .ascii "File\000" .align 2$LC8: .ascii "file\000" .align 2$LC9: .ascii "Albeu\000" .align 2$LC10: .ascii "based on the code from ??? (probably Arpi)\000" .subsection -1 .align 2$LC11: .ascii "\000" .data .align 2 .type stream_info_file, @object .size stream_info_file, 68stream_info_file: .word $LC7 .word $LC8 .word $LC9 .word $LC10 .word open_f .word $LC8 .word $LC11 .word 0 .space 28 .word stream_opts .word 1 .align 2 .type stream_opts, @object .size stream_opts, 16stream_opts: .word $LC8 .word 8 .word stream_priv_dflts .word stream_opts_fields .local stream_priv_dflts .comm stream_priv_dflts,8,4 .section .rodata.str1.4 .align 2$LC12: .ascii "string\000" .align 2$LC13: .ascii "filename\000" .data .align 3 .type stream_opts_fields, @object .size stream_opts_fields, 120stream_opts_fields: .word $LC12 .word 0 .word m_option_type_string .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .space 4 .word $LC13 .word 4 .word m_option_type_string .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .space 4 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .space 4 .ident "GCC: (GNU) 4.1.2"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -