📄 stream_file.s
字号:
.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 nomacroaddiu $sp,$sp,-32sw $18,24($sp)sw $16,16($sp)sw $31,28($sp)sw $17,20($sp)lw $3,44($4)move $16,$4slt $2,$5,$3bne $2,$0,$L2move $18,$5slt $2,$3,$5beq $2,$0,$L5addiu $17,$4,80j $L15lw $2,0($16)$L14:lw $2,44($16)sw $0,36($16)addu $2,$4,$2slt $3,$2,$18sw $4,40($16)beq $3,$0,$L5sw $2,44($16)lw $2,0($16)$L15:move $4,$16move $5,$17jal $2li $6,131072 # 0x20000bgtz $2,$L14move $4,$2li $2,1 # 0x1sw $2,56($16)sw $0,36($16)sw $0,40($16)li $3,1 # 0x1lw $31,28($sp)lw $18,24($sp)lw $17,20($sp)lw $16,16($sp)move $2,$3j $31addiu $sp,$sp,32$L5:li $3,1 # 0x1lw $31,28($sp)lw $18,24($sp)lw $17,20($sp)lw $16,16($sp)move $2,$3j $31addiu $sp,$sp,32$L2:lui $6,%hi($LC0)addiu $6,$6,%lo($LC0)li $4,20 # 0x14jal mp_msgli $5,4 # 0x4move $3,$0lw $31,28($sp)lw $18,24($sp)lw $17,20($sp)lw $16,16($sp)move $2,$3j $31addiu $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 nomacroaddiu $sp,$sp,-64sw $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,$5move $18,$4beq $5,$0,$L39move $20,$6li $2,1 # 0x1bne $5,$2,$L20addiu $17,$sp,24lui $5,%hi($LC2)move $4,$17jal strcpyaddiu $5,$5,%lo($LC2)lw $4,0($20)beq $4,$0,$L40move $5,$17$L45:jal BUFF_Openmove $16,$4beq $2,$0,$L41move $17,$2jal BUFF_GetFileSizemove $4,$2move $7,$2li $2,-1 # 0xffffffffffffffffbeq $7,$2,$L42nopbltz $7,$L34lui $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,31addiu $6,$6,%lo($LC5)li $4,16 # 0x10li $5,6 # 0x6sw $2,20($sp)jal mp_msgsw $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_freemove $5,$20li $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 $31addiu $sp,$sp,64$L39:addiu $17,$sp,24lui $5,%hi($LC1)move $4,$17jal strcpyaddiu $5,$5,%lo($LC1)lw $4,0($20)bne $4,$0,$L45move $5,$17$L40:lw $4,4($20)bne $4,$0,$L45move $5,$17lui $6,%hi($LC6)addiu $6,$6,%lo($LC6)li $4,16 # 0x10jal mp_msgli $5,1 # 0x1j $L44lui $4,%hi(stream_opts)$L42:beq $19,$0,$L43lui $2,%hi(seek_forward)lw $2,28($18)li $3,2 # 0x2ori $2,$2,0x4sw $3,24($18)j $L34sw $2,28($18)$L43:addiu $2,$2,%lo(seek_forward)sw $2,8($18)lw $2,28($18)li $3,2 # 0x2ori $2,$2,0x4sw $3,24($18)j $L34sw $2,28($18)$L41:lui $6,%hi($LC4)addiu $6,$6,%lo($LC4)move $7,$16li $4,16 # 0x10jal mp_msgli $5,1 # 0x1lui $4,%hi(stream_opts)$L44:move $5,$20jal m_struct_freeaddiu $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,$0j $31addiu $sp,$sp,64$L20:lui $6,%hi($LC3)move $7,$5addiu $6,$6,%lo($LC3)li $4,16 # 0x10jal mp_msgli $5,1 # 0x1lui $4,%hi(stream_opts)addiu $4,$4,%lo(stream_opts)jal m_struct_freemove $5,$20j $L22li $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 nomacroj BUFF_Closelw $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 nomacroaddiu $sp,$sp,-32sw $18,24($sp)sw $16,16($sp)sw $31,28($sp)sw $17,20($sp)move $7,$5move $16,$4beq $5,$0,$L50move $18,$6li $2,7 # 0x7move $5,$0li $6,2 # 0x2beq $7,$2,$L55li $3,-1 # 0xfffffffffffffffflw $31,28($sp)lw $18,24($sp)lw $17,20($sp)lw $16,16($sp)move $2,$3j $31addiu $sp,$sp,32$L50:lw $4,20($16)sw $0,44($16)move $5,$0jal BUFF_Seekmove $6,$0li $3,1 # 0x1lw $31,28($sp)lw $18,24($sp)lw $17,20($sp)lw $16,16($sp)move $2,$3j $31addiu $sp,$sp,32$L55:jal BUFF_Seeklw $4,20($4)lw $4,20($16)lw $5,44($16)move $6,$0jal BUFF_Seekmove $17,$2li $2,-1 # 0xffffffffffffffffbeq $17,$2,$L50li $3,1 # 0x1sw $17,0($18)lw $31,28($sp)lw $18,24($sp)lw $17,20($sp)lw $16,16($sp)move $2,$3j $31addiu $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 nomacroaddiu $sp,$sp,-24sw $16,16($sp)sw $31,20($sp)move $16,$4lw $4,20($4)sw $5,44($16)jal BUFF_Seekmove $6,$0bgez $2,$L59li $3,1 # 0x1li $2,1 # 0x1sw $2,56($16)move $3,$0$L59:lw $31,20($sp)lw $16,16($sp)move $2,$3j $31addiu $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 nomacroaddiu $sp,$sp,-24sw $31,16($sp)jal BUFF_DirectReadlw $4,20($4)slt $4,$0,$2li $3,-1 # 0xfffffffffffffffflw $31,16($sp)movz $2,$3,$4j $31addiu $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 + -