📄 util.lst
字号:
GAS LISTING /tmp/ccu9oIwe.s page 1 1 .section .mdebug.abi32 2 .previous 3 .section .debug_abbrev,"",@progbits 4 $Ldebug_abbrev0: 5 .section .debug_info,"",@progbits 6 $Ldebug_info0: 7 .section .debug_line,"",@progbits 8 $Ldebug_line0: 9 0000 0D010000 .text 9 02008000 9 00000101 9 FB0E0A00 9 01010101 10 $Ltext0: 11 .align 2 12 .globl stringCopy 13 .ent stringCopy 14 .type stringCopy, @function 15 stringCopy: 16 $LFB2: 17 .file 1 "/mnt/hgfs/boot/booter/source/applications/booter/util.c" 1:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** #include "util.h"
2:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** #include "example.h"
3:/mnt/hgfs/boot/booter/source/applications/booter/util.c ****
4:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** static int progress;
5:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** static int dots;
6:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** static int oldMode;
7:/mnt/hgfs/boot/booter/source/applications/booter/util.c ****
8:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** void stringCopy(const char* source, char* dest)
9:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** {
18 .loc 1 9 0 19 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 20 .mask 0x00000000,0 21 .fmask 0x00000000,0 22 .set noreorder 23 .set nomacro 24 10:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** int i;
11:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** for(i = 0; source[i] != 0; ++i)
25 .loc 1 11 0 26 0000 00008280 lb $2,0($4) 27 .loc 1 9 0 28 0004 2130A000 move $6,$5 29 .loc 1 11 0 30 0008 0A004010 beq $2,$0,$L7 31 000c 21280000 move $5,$0 32 33 0010 21188000 move $3,$4 34 $L5: 12:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** {
13:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** dest[i] = source[i];
35 .loc 1 13 0 36 0014 00006390 lbu $3,0($3) 37 0018 2110C500 addu $2,$6,$5 38 .loc 1 11 0 39 001c 0100A524 addiu $5,$5,1 40 .loc 1 13 0GAS LISTING /tmp/ccu9oIwe.s page 2 41 0020 000043A0 sb $3,0($2) 42 .loc 1 11 0 43 0024 21188500 addu $3,$4,$5 44 0028 00006280 lb $2,0($3) 45 002c F9FF4014 bne $2,$0,$L5 46 0030 00000000 nop 47 48 $L7: 14:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** }
15:/mnt/hgfs/boot/booter/source/applications/booter/util.c ****
16:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** dest[i] = 0;
49 .loc 1 16 0 50 0034 2110C500 addu $2,$6,$5 51 0038 0800E003 j $31 52 003c 000040A0 sb $0,0($2) 53 54 .set macro 55 .set reorder 56 $LFE2: 57 .end stringCopy 58 .align 2 59 .globl memCopy 60 .ent memCopy 61 .type memCopy, @function 62 memCopy: 63 $LFB3: 17:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** }
18:/mnt/hgfs/boot/booter/source/applications/booter/util.c ****
19:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** void memCopy(const void* src, void* dest, int bytes)
20:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** {
64 .loc 1 20 0 65 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 66 .mask 0x00000000,0 67 .fmask 0x00000000,0 68 .set noreorder 69 .set nomacro 70 71 .loc 1 20 0 72 0040 21408000 move $8,$4 21:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** int i;
22:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** const char* charSrc = (char*) src;
23:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** char* charDest = (char*) dest;
24:/mnt/hgfs/boot/booter/source/applications/booter/util.c ****
25:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** for(i = 0; i < bytes; ++i)
73 .loc 1 25 0 74 0044 0800C018 blez $6,$L16 75 0048 21380000 move $7,$0 76 77 $L13: 26:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** charDest[i] = charSrc[i];
78 .loc 1 26 0 79 004c 21100701 addu $2,$8,$7 80 0050 00004490 lbu $4,0($2) 81 0054 2118A700 addu $3,$5,$7 82 .loc 1 25 0 83 0058 0100E724 addiu $7,$7,1 84 005c 2A10E600 slt $2,$7,$6GAS LISTING /tmp/ccu9oIwe.s page 3 85 .loc 1 26 0 86 .loc 1 25 0 87 0060 FAFF4014 bne $2,$0,$L13 88 0064 000064A0 sb $4,0($3) 89 90 $L16: 91 0068 0800E003 j $31 92 006c 00000000 nop 93 94 .set macro 95 .set reorder 96 $LFE3: 97 .end memCopy 98 .align 2 99 .globl memFill 100 .ent memFill 101 .type memFill, @function 102 memFill: 103 $LFB4: 27:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** }
28:/mnt/hgfs/boot/booter/source/applications/booter/util.c ****
29:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** void memFill(void* dest, int bytes, char value)
30:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** {
104 .loc 1 30 0 105 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 106 .mask 0x00000000,0 107 .fmask 0x00000000,0 108 .set noreorder 109 .set nomacro 110 111 .loc 1 30 0 112 0070 00360600 sll $6,$6,24 113 0074 03360600 sra $6,$6,24 31:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** int i;
32:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** char* charDest = (char*) dest;
33:/mnt/hgfs/boot/booter/source/applications/booter/util.c ****
34:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** for(i = 0; i < bytes; ++i)
114 .loc 1 34 0 115 0078 0600A018 blez $5,$L24 116 007c 21380000 move $7,$0 117 118 $L21: 35:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** charDest[i] = value;
119 .loc 1 35 0 120 0080 21188700 addu $3,$4,$7 121 .loc 1 34 0 122 0084 0100E724 addiu $7,$7,1 123 0088 2A10E500 slt $2,$7,$5 124 .loc 1 35 0 125 .loc 1 34 0 126 008c FCFF4014 bne $2,$0,$L21 127 0090 000066A0 sb $6,0($3) 128 129 $L24: 130 0094 0800E003 j $31 131 0098 00000000 nop 132 GAS LISTING /tmp/ccu9oIwe.s page 4 133 .set macro 134 .set reorder 135 $LFE4: 136 .end memFill 137 .section .rodata.str1.4,"aMS",@progbits,1 138 .align 2 139 $LC2: 140 0000 25582000 .ascii "%X \000" 141 .align 2 142 $LC0: 143 0004 0A00 .ascii "\n\000" 144 0006 0000 .align 2 145 $LC1: 146 0008 3000 .ascii "0\000" 147 .text 148 .align 2 149 .globl memDisp 150 .ent memDisp 151 .type memDisp, @function 152 memDisp: 153 $LFB5: 36:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** }
37:/mnt/hgfs/boot/booter/source/applications/booter/util.c ****
38:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** void memDisp(void* src, int bytes)
39:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** {
154 .loc 1 39 0 155 .frame $sp,48,$31 # vars= 0, regs= 8/0, args= 16, gp= 0 156 .mask 0x807f0000,-4 157 .fmask 0x00000000,0 158 .set noreorder 159 .set nomacro 160 161 009c D0FFBD27 addiu $sp,$sp,-48 162 $LCFI0: 163 00a0 2800B6AF sw $22,40($sp) 164 $LCFI1: 165 00a4 2400B5AF sw $21,36($sp) 166 $LCFI2: 167 00a8 1000B0AF sw $16,16($sp) 168 $LCFI3: 169 00ac 2C00BFAF sw $31,44($sp) 170 $LCFI4: 171 00b0 2000B4AF sw $20,32($sp) 172 $LCFI5: 173 00b4 1C00B3AF sw $19,28($sp) 174 $LCFI6: 175 00b8 1800B2AF sw $18,24($sp) 176 $LCFI7: 177 00bc 1400B1AF sw $17,20($sp) 178 $LCFI8: 179 .loc 1 39 0 180 00c0 21A8A000 move $21,$5 181 00c4 21B08000 move $22,$4 40:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** char* charSrc = (char*) src;
41:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** int i;
42:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** for(i = 0; i < bytes; ++i)
182 .loc 1 42 0GAS LISTING /tmp/ccu9oIwe.s page 5 183 00c8 2500A018 blez $5,$L33 184 00cc 21800000 move $16,$0 185 186 00d0 0000143C lui $20,%hi($LC2) 187 00d4 0000133C lui $19,%hi($LC0) 188 00d8 43000008 j $L31 189 00dc 0000123C lui $18,%hi($LC1) 190 191 $L29: 43:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** {
44:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** if(i%16 == 0)
45:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** printf("\n");
46:/mnt/hgfs/boot/booter/source/applications/booter/util.c ****
47:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** if((charSrc[i] & 0x0FF) <= 0x0F)
192 .loc 1 47 0 193 00e0 00002592 lbu $5,0($17) 194 00e4 FF00A230 andi $2,$5,0x00ff 195 00e8 10004228 slt $2,$2,16 48:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** printf("0");
196 .loc 1 48 0 197 .loc 1 47 0 198 00ec 13004014 bne $2,$0,$L34 199 00f0 00004426 addiu $4,$18,%lo($LC1) 200 201 $L30: 49:/mnt/hgfs/boot/booter/source/applications/booter/util.c ****
50:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** printf("%X ", charSrc[i] & 0x0FF);
202 .loc 1 50 0 203 00f4 FF00A530 andi $5,$5,0x00ff 204 00f8 0000000C jal printf 205 00fc 00008426 addiu $4,$20,%lo($LC2) 206 207 .loc 1 42 0 208 0100 2A101502 slt $2,$16,$21 209 0104 17004010 beq $2,$0,$L35 210 0108 2C00BF8F lw $31,44($sp) 211 212 $L31: 213 .loc 1 44 0 214 010c 0F000232 andi $2,$16,0xf 215 $L36: 216 .loc 1 47 0 217 0110 2188D002 addu $17,$22,$16 218 .loc 1 45 0 219 0114 00006426 addiu $4,$19,%lo($LC0) 220 .loc 1 42 0 221 .loc 1 44 0 222 0118 F1FF4014 bne $2,$0,$L29 223 011c 01001026 addiu $16,$16,1 224 225 .loc 1 45 0 226 0120 0000000C jal printf 227 0124 00000000 nop 228 229 .loc 1 47 0 230 0128 00002592 lbu $5,0($17) 231 012c FF00A230 andi $2,$5,0x00ffGAS LISTING /tmp/ccu9oIwe.s page 6 232 0130 10004228 slt $2,$2,16 233 .loc 1 48 0 234 .loc 1 47 0 235 0134 EFFF4010 beq $2,$0,$L30 236 0138 00004426 addiu $4,$18,%lo($LC1) 237 238 $L34: 239 .loc 1 48 0 240 013c 0000000C jal printf 241 0140 00000000 nop 242 243 0144 00002592 lbu $5,0($17) 244 .loc 1 50 0 245 0148 00008426 addiu $4,$20,%lo($LC2) 246 014c 0000000C jal printf 247 0150 FF00A530 andi $5,$5,0x00ff 248 249 .loc 1 42 0 250 0154 2A101502 slt $2,$16,$21 251 .loc 1 44 0 252 .loc 1 42 0 253 0158 EDFF4014 bne $2,$0,$L36 254 015c 0F000232 andi $2,$16,0xf 255 256 $L33: 257 0160 2C00BF8F lw $31,44($sp) 258 $L35: 259 0164 2800B68F lw $22,40($sp) 260 0168 2400B58F lw $21,36($sp) 261 016c 2000B48F lw $20,32($sp) 262 0170 1C00B38F lw $19,28($sp) 263 0174 1800B28F lw $18,24($sp) 264 0178 1400B18F lw $17,20($sp) 265 017c 1000B08F lw $16,16($sp) 266 0180 0800E003 j $31 267 0184 3000BD27 addiu $sp,$sp,48 268 269 .set macro 270 .set reorder 271 $LFE5: 272 .end memDisp 273 .align 2 274 .globl stringLength 275 .ent stringLength 276 .type stringLength, @function 277 stringLength: 278 $LFB6: 51:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** }
52:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** }
53:/mnt/hgfs/boot/booter/source/applications/booter/util.c ****
54:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** int stringLength(const char* string)
55:/mnt/hgfs/boot/booter/source/applications/booter/util.c **** {
279 .loc 1 55 0 280 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 281 .mask 0x00000000,0 282 .fmask 0x00000000,0 283 .set noreorderGAS LISTING /tmp/ccu9oIwe.s page 7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -