📄 bin.lst
字号:
251 GAS LISTING /tmp/ccKe3Yhi.s page 7 56:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** printf("\n-------------------------------\n");
252 .loc 1 56 0 253 0134 0000043C lui $4,%hi($LC0) 254 .loc 1 55 0 255 0138 E8FFBD27 addiu $sp,$sp,-24 256 $LCFI9: 257 .loc 1 56 0 258 013c 00008424 addiu $4,$4,%lo($LC0) 259 .loc 1 55 0 260 0140 1400BFAF sw $31,20($sp) 261 $LCFI10: 262 .loc 1 55 0 263 $LCFI11: 264 .loc 1 56 0 265 0144 0000000C jal printf 266 0148 1000B0AF sw $16,16($sp) 267 57:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** printf("Record Info:\n");
268 .loc 1 57 0 269 014c 0000043C lui $4,%hi($LC5) 270 0150 00008424 addiu $4,$4,%lo($LC5) 58:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** printf(" Address: 0x%X\n", recordInfo.address);
271 .loc 1 58 0 272 .loc 1 57 0 273 0154 0000000C jal printf 274 0158 0000103C lui $16,%hi(recordInfo) 275 276 .loc 1 58 0 277 015c 0000058E lw $5,%lo(recordInfo)($16) 278 0160 0000043C lui $4,%hi($LC6) 59:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** printf(" Length: %d bytes\n", recordInfo.length);
279 .loc 1 59 0 280 0164 00001026 addiu $16,$16,%lo(recordInfo) 281 .loc 1 58 0 282 0168 0000000C jal printf 283 016c 00008424 addiu $4,$4,%lo($LC6) 284 285 .loc 1 59 0 286 0170 0400058E lw $5,4($16) 287 0174 0000043C lui $4,%hi($LC7) 288 0178 0000000C jal printf 289 017c 00008424 addiu $4,$4,%lo($LC7) 290 60:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** printf(" Checksum: %X\n", recordInfo.checksum);
291 .loc 1 60 0 292 0180 0800058E lw $5,8($16) 293 0184 0000043C lui $4,%hi($LC8) 294 0188 0000000C jal printf 295 018c 00008424 addiu $4,$4,%lo($LC8) 296 61:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** printf("-------------------------------\n");
297 .loc 1 61 0 298 0190 0000043C lui $4,%hi($LC4) 299 0194 1400BF8F lw $31,20($sp) 300 0198 1000B08F lw $16,16($sp) 301 019c 00008424 addiu $4,$4,%lo($LC4) 302 01a0 00000008 j printfGAS LISTING /tmp/ccKe3Yhi.s page 8 303 01a4 1800BD27 addiu $sp,$sp,24 304 305 .set macro 306 .set reorder 307 $LFE5: 308 .end displayRecordInfo 309 .align 2 310 .globl readImageInfo 311 .ent readImageInfo 312 .type readImageInfo, @function 313 readImageInfo: 314 $LFB6: 62:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** }
63:/mnt/hgfs/boot/booter/source/applications/booter/bin.c ****
64:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** int readImageInfo()
65:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** {
315 .loc 1 65 0 316 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 317 .mask 0x00000000,0 318 .fmask 0x00000000,0 319 .set noreorder 320 .set nomacro 321 66:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** return binRead((char*)&imageInfo, sizeof(BinImageInfo));
322 .loc 1 66 0 323 01a8 0000043C lui $4,%hi(imageInfo) 324 01ac 00008424 addiu $4,$4,%lo(imageInfo) 325 01b0 00000008 j binRead 326 01b4 08000524 li $5,8 # 0x8 327 328 .set macro 329 .set reorder 330 $LFE6: 331 .end readImageInfo 332 .section .rodata.str1.4 333 00c7 00 .align 2 334 $LC9: 335 00c8 0A .ascii "\n" 336 00c9 4572726F .ascii "Error: BIN checksum error!\n\000" 336 723A2020 336 42494E20 336 63686563 336 6B73756D 337 .text 338 .align 2 339 .globl readRecord 340 .ent readRecord 341 .type readRecord, @function 342 readRecord: 343 $LFB7: 67:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** }
68:/mnt/hgfs/boot/booter/source/applications/booter/bin.c ****
69:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** int readRecord(void** entryPoint)
70:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** {
344 .loc 1 70 0 345 .frame $sp,40,$31 # vars= 0, regs= 5/0, args= 16, gp= 0 346 .mask 0x800f0000,-8GAS LISTING /tmp/ccKe3Yhi.s page 9 347 .fmask 0x00000000,0 348 .set noreorder 349 .set nomacro 350 351 01b8 D8FFBD27 addiu $sp,$sp,-40 352 $LCFI12: 353 01bc 1400B1AF sw $17,20($sp) 354 $LCFI13: 71:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** char* address;
72:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** int bytes, i, checksum;
73:/mnt/hgfs/boot/booter/source/applications/booter/bin.c ****
74:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** checksum = 0;
75:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** if(bytes = binRead((char*)&recordInfo, sizeof(BinRecordInfo)))
355 .loc 1 75 0 356 01c0 0000113C lui $17,%hi(recordInfo) 357 .loc 1 70 0 358 01c4 1C00B3AF sw $19,28($sp) 359 $LCFI14: 360 .loc 1 75 0 361 01c8 0C000524 li $5,12 # 0xc 362 .loc 1 70 0 363 01cc 21988000 move $19,$4 364 .loc 1 75 0 365 01d0 00002426 addiu $4,$17,%lo(recordInfo) 366 .loc 1 70 0 367 01d4 1800B2AF sw $18,24($sp) 368 $LCFI15: 369 01d8 2000BFAF sw $31,32($sp) 370 $LCFI16: 371 01dc 1000B0AF sw $16,16($sp) 372 $LCFI17: 373 .loc 1 74 0 374 .loc 1 75 0 375 01e0 0000000C jal binRead 376 01e4 21900000 move $18,$0 377 76:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** {
77:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** if(recordInfo.address == 0)
78:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** {
79:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** *entryPoint = (void*) recordInfo.length;
80:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** return 0;
81:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** }
82:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** else
83:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** {
84:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** address = (char*) recordInfo.address;
85:/mnt/hgfs/boot/booter/source/applications/booter/bin.c ****
86:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** if(bytes = binRead(address, recordInfo.length))
87:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** {
88:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** for(i = 0; i < bytes; ++i)
89:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** {
90:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** checksum += address[i] & 0x00FF;
91:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** }
92:/mnt/hgfs/boot/booter/source/applications/booter/bin.c ****
93:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** if(checksum != recordInfo.checksum)
94:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** {
95:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** printf("\nError: BIN checksum error!\n");
96:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** return 0;
GAS LISTING /tmp/ccKe3Yhi.s page 10 97:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** }
98:/mnt/hgfs/boot/booter/source/applications/booter/bin.c ****
99:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** return 1;
100:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** }
101:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** }
102:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** }
103:/mnt/hgfs/boot/booter/source/applications/booter/bin.c ****
104:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** return 0;
378 .loc 1 104 0 379 .loc 1 75 0 380 01e8 23004010 beq $2,$0,$L11 381 01ec 21100000 move $2,$0 382 383 .loc 1 77 0 384 01f0 0000308E lw $16,%lo(recordInfo)($17) 385 .loc 1 79 0 386 .loc 1 77 0 387 01f4 0B000016 bne $16,$0,$L13 388 01f8 00002226 addiu $2,$17,%lo(recordInfo) 389 390 .loc 1 79 0 391 01fc 0400438C lw $3,4($2) 105:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** }
392 .loc 1 105 0 393 0200 2000BF8F lw $31,32($sp) 394 0204 1800B28F lw $18,24($sp) 395 .loc 1 79 0 396 0208 000063AE sw $3,0($19) 397 .loc 1 105 0 398 020c 1400B18F lw $17,20($sp) 399 0210 1C00B38F lw $19,28($sp) 400 0214 1000B08F lw $16,16($sp) 401 .loc 1 80 0 402 0218 21100000 move $2,$0 403 .loc 1 105 0 404 021c 0800E003 j $31 405 0220 2800BD27 addiu $sp,$sp,40 406 407 $L13: 408 .loc 1 86 0 409 0224 0400458C lw $5,4($2) 410 0228 0000000C jal binRead 411 022c 21200002 move $4,$16 412 413 0230 10004010 beq $2,$0,$L12 414 0234 21284000 move $5,$2 415 416 .loc 1 88 0 417 0238 07004018 blez $2,$L22 418 023c 21200000 move $4,$0 419 420 $L19: 421 .loc 1 90 0 422 0240 21100402 addu $2,$16,$4 423 0244 00004390 lbu $3,0($2) 424 .loc 1 88 0 425 0248 01008424 addiu $4,$4,1GAS LISTING /tmp/ccKe3Yhi.s page 11 426 024c 2A108500 slt $2,$4,$5 427 .loc 1 90 0 428 .loc 1 88 0 429 0250 FBFF4014 bne $2,$0,$L19 430 0254 21904302 addu $18,$18,$3 431 432 $L22: 433 .loc 1 93 0 434 0258 00002226 addiu $2,$17,%lo(recordInfo) 435 025c 0800438C lw $3,8($2) 436 .loc 1 99 0 437 .loc 1 93 0 438 0260 05004312 beq $18,$3,$L11 439 0264 01000224 li $2,1 # 0x1 440 441 .loc 1 95 0 442 0268 0000043C lui $4,%hi($LC9) 443 026c 0000000C jal printf 444 0270 00008424 addiu $4,$4,%lo($LC9) 445 446 $L12: 447 .loc 1 104 0 448 0274 21100000 move $2,$0 449 $L11: 450 .loc 1 105 0 451 0278 2000BF8F lw $31,32($sp) 452 027c 1C00B38F lw $19,28($sp) 453 0280 1800B28F lw $18,24($sp) 454 0284 1400B18F lw $17,20($sp) 455 0288 1000B08F lw $16,16($sp) 456 028c 0800E003 j $31 457 0290 2800BD27 addiu $sp,$sp,40 458 459 .set macro 460 .set reorder 461 $LFE7: 462 .end readRecord 463 .align 2 464 .globl readBin 465 .ent readBin 466 .type readBin, @function 467 readBin: 468 $LFB8: 106:/mnt/hgfs/boot/booter/source/applications/booter/bin.c ****
107:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** void* readBin()
108:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** {
469 .loc 1 108 0 470 .frame $sp,32,$31 # vars= 8, regs= 1/0, args= 16, gp= 0 471 .mask 0x80000000,-8 472 .fmask 0x00000000,0 473 .set noreorder 474 .set nomacro 475 476 0294 E0FFBD27 addiu $sp,$sp,-32 477 $LCFI18: 478 0298 1800BFAF sw $31,24($sp) 479 $LCFI19:GAS LISTING /tmp/ccKe3Yhi.s page 12 109:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** void* entryPoint = (void*) 0;
480 .loc 1 109 0 110:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** if(readImageInfo())
481 .loc 1 110 0 482 029c 0000000C jal readImageInfo 483 02a0 1000A0AF sw $0,16($sp) 484 111:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** {
112:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** while(readRecord(&entryPoint));
113:/mnt/hgfs/boot/booter/source/applications/booter/bin.c ****
114:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** return entryPoint;
115:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** }
116:/mnt/hgfs/boot/booter/source/applications/booter/bin.c ****
117:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** return 0;
485 .loc 1 117 0 486 .loc 1 110 0 487 02a4 05004010 beq $2,$0,$L23 488 02a8 21180000 move $3,$0 489 490 $L25: 491 .loc 1 112 0 492 02ac 0000000C jal readRecord 493 02b0 1000A427 addiu $4,$sp,16 494 495 .loc 1 114 0 496 .loc 1 112 0 497 02b4 FDFF4014 bne $2,$0,$L25 498 02b8 1000A38F lw $3,16($sp) 499 500 $L23: 118:/mnt/hgfs/boot/booter/source/applications/booter/bin.c **** }
501 .loc 1 118 0 502 02bc 1800BF8F lw $31,24($sp) 503 02c0 21106000 move $2,$3 504 02c4 0800E003 j $31 505 02c8 2000BD27 addiu $sp,$sp,32 506 507 .set macro 508 .set reorder 509 $LFE8: 510 .end readBin 511 .section .rodata.str1.4 512 00e6 0000 .align 2 513 $LC10: 514 00e8 0A .ascii "\n" 515 00e9 2D2D2D2D .ascii "---------------------------------------------\n\000" 515 2D2D2D2D 515 2D2D2D2D 515 2D2D2D2D 515 2D2D2D2D 516 .align 2 517 $LC11: 518 0118 4C6F6164 .ascii "Loading Image: %12s (Format = CE-BIN)\n\000" 518 696E6720 518 496D6167
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -