📄 fat.lst
字号:
314 019a 0000 .align 2 315 $LC24: 316 019c 46696C65 .ascii "File Info:\000" 316 20496E66 316 6F3A00 317 01a7 00 .align 2 318 $LC25: 319 01a8 0A .ascii "\n" 320 01a9 46696C65 .ascii "Filename: \000" 320 6E616D65 320 3A2000 321 .align 2 322 $LC26: 323 01b4 2E00 .ascii ".\000" 324 01b6 0000 .align 2 325 $LC27: 326 01b8 0A .ascii "\n" 327 01b9 41747472 .ascii "Attributes: %X\000" 327 69627574 327 65733A20 327 255800 328 .align 2 329 $LC28: 330 01c8 0A .ascii "\n" 331 01c9 53697A65 .ascii "Size: %d Bytes\000" 331 3A202564 331 20427974 331 657300 332 .align 2 333 $LC29: 334 01d8 0A .ascii "\n" 335 01d9 53746172 .ascii "Start Cluster: %d\n\000" 335 7420436C 335 75737465 335 723A2025 335 640A00 336 .align 2 337 $LC30: 338 01ec 4641544F .ascii "FATOffset: %d\n\000" 338 66667365 338 743A2025 338 640A00 339 01fb 00 .align 2 340 $LC31: 341 01fc 54686973 .ascii "ThisFATSecNum: %d\n\000" 341 46415453 341 65634E75 341 6D3A2025 341 640A00 342 020f 00 .align 2 343 $LC32: 344 0210 54686973 .ascii "ThisFATEntOffset: %d\n\000" 344 46415445 344 6E744F66 344 66736574 344 3A202564 GAS LISTING /tmp/ccZKkRKo.s page 12 345 0226 0000 .text 346 .align 2 347 .globl displayDirectoryEntry 348 .ent displayDirectoryEntry 349 .type displayDirectoryEntry, @function 350 displayDirectoryEntry: 351 $LFB3: 184:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** } 185:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** 186:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** void displayDirectoryEntry(FATDirEntry* handle) 187:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** { 352 .loc 1 187 0 353 .frame $sp,8224,$31 # vars= 8192, regs= 4/0, args= 16, gp= 0 354 .mask 0x80070000,-4 355 .fmask 0x00000000,0 356 .set noreorder 357 .set nomacro 358 359 01fc E0DFBD27 addiu $sp,$sp,-8224 360 $LCFI6: 361 0200 1420B1AF sw $17,8212($sp) 362 $LCFI7: 363 0204 21888000 move $17,$4 188:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** int FATOffset, ThisFATSecNum, ThisFATEntOffset; 189:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** int i; 190:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** short buffer[4096]; 191:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** 192:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** printf("\n-------------------------------\n"); 364 .loc 1 192 0 365 0208 0000043C lui $4,%hi($LC0) 366 020c 00008424 addiu $4,$4,%lo($LC0) 367 .loc 1 187 0 368 0210 1C20BFAF sw $31,8220($sp) 369 $LCFI8: 370 0214 1820B2AF sw $18,8216($sp) 371 $LCFI9: 372 .loc 1 187 0 373 $LCFI10: 374 .loc 1 192 0 375 0218 0000000C jal printf 376 021c 1020B0AF sw $16,8208($sp) 377 193:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** printf("File Info:"); 378 .loc 1 193 0 379 0220 0000043C lui $4,%hi($LC24) 380 0224 0000000C jal printf 381 0228 00008424 addiu $4,$4,%lo($LC24) 382 194:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** printf("\nFilename: "); 383 .loc 1 194 0 384 022c 0000043C lui $4,%hi($LC25) 385 0230 0000000C jal printf 386 0234 00008424 addiu $4,$4,%lo($LC25) 387 195:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** for(i = 0; i < 8; ++i) 388 .loc 1 195 0 389 0238 21800000 move $16,$0GAS LISTING /tmp/ccZKkRKo.s page 13 390 023c 0000123C lui $18,%hi($LC3) 196:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** { 197:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** printf("%c", handle->name[i]); 391 .loc 1 197 0 392 0240 21103002 addu $2,$17,$16 393 $L30: 394 0244 00004590 lbu $5,0($2) 395 .loc 1 195 0 396 0248 01001026 addiu $16,$16,1 397 .loc 1 197 0 398 024c 0000000C jal printf 399 0250 00004426 addiu $4,$18,%lo($LC3) 400 401 .loc 1 195 0 402 0254 0800022A slt $2,$16,8 403 .loc 1 197 0 404 .loc 1 195 0 405 0258 FAFF4014 bne $2,$0,$L30 406 025c 21103002 addu $2,$17,$16 407 198:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** } 199:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** printf("."); 408 .loc 1 199 0 409 0260 0000043C lui $4,%hi($LC26) 410 0264 0000000C jal printf 411 0268 00008424 addiu $4,$4,%lo($LC26) 412 200:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** for(i = 0; i < 3; ++i) 413 .loc 1 200 0 414 026c 21800000 move $16,$0 201:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** { 202:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** printf("%c", handle->ext[i]); 415 .loc 1 202 0 416 0270 21101102 addu $2,$16,$17 417 $L31: 418 0274 08004590 lbu $5,8($2) 419 .loc 1 200 0 420 0278 01001026 addiu $16,$16,1 421 .loc 1 202 0 422 027c 0000000C jal printf 423 0280 00004426 addiu $4,$18,%lo($LC3) 424 425 .loc 1 200 0 426 0284 0300022A slt $2,$16,3 427 .loc 1 202 0 428 .loc 1 200 0 429 0288 FAFF4014 bne $2,$0,$L31 430 028c 21101102 addu $2,$16,$17 431 203:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** } 204:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** 205:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** printf("\nAttributes: %X", handle->attr); 432 .loc 1 205 0 433 0290 0B002592 lbu $5,11($17) 434 0294 0000043C lui $4,%hi($LC27) 435 0298 0000000C jal printf 436 029c 00008424 addiu $4,$4,%lo($LC27)GAS LISTING /tmp/ccZKkRKo.s page 14 437 206:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** printf("\nSize: %d Bytes", handle->size); 438 .loc 1 206 0 439 02a0 1C00258E lw $5,28($17) 440 02a4 0000043C lui $4,%hi($LC28) 441 02a8 0000000C jal printf 442 02ac 00008424 addiu $4,$4,%lo($LC28) 443 207:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** printf("\nStart Cluster: %d\n", handle->start); 444 .loc 1 207 0 445 02b0 1A002596 lhu $5,26($17) 446 02b4 0000043C lui $4,%hi($LC29) 447 02b8 0000000C jal printf 448 02bc 00008424 addiu $4,$4,%lo($LC29) 449 208:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** 209:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** FATOffset = handle->start * 2; 210:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** ThisFATSecNum = fat.reservedSectorCount + (FATOffset / fat.bytesPerSector); 450 .loc 1 210 0 451 02c0 0000023C lui $2,%hi(fat) 452 02c4 00004224 addiu $2,$2,%lo(fat) 453 .loc 1 209 0 454 02c8 1A002596 lhu $5,26($17) 455 .loc 1 210 0 456 02cc 0002438C lw $3,512($2) 457 02d0 0402508C lw $16,516($2) 458 .loc 1 209 0 459 02d4 40280500 sll $5,$5,1 460 .loc 1 210 0 461 02d8 1A00A300 div $0,$5,$3 462 02dc 02006014 bne $3,$0,1f 463 02e0 00000000 nop 464 02e4 0D000700 break 7 465 1: 211:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** ThisFATEntOffset = FATOffset % fat.bytesPerSector; 212:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** 213:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** printf("FATOffset: %d\n", FATOffset); 466 .loc 1 213 0 467 02e8 0000043C lui $4,%hi($LC30) 468 02ec 00008424 addiu $4,$4,%lo($LC30) 469 .loc 1 210 0 470 02f0 12180000 mflo $3 471 02f4 10880000 mfhi $17 472 .loc 1 213 0 473 02f8 0000000C jal printf 474 02fc 21800302 addu $16,$16,$3 475 214:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** printf("ThisFATSecNum: %d\n", ThisFATSecNum); 476 .loc 1 214 0 477 0300 0000043C lui $4,%hi($LC31) 478 0304 21280002 move $5,$16 479 0308 0000000C jal printf 480 030c 00008424 addiu $4,$4,%lo($LC31) 481 215:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** printf("ThisFATEntOffset: %d\n", ThisFATEntOffset); 482 .loc 1 215 0 483 0310 0000043C lui $4,%hi($LC32)GAS LISTING /tmp/ccZKkRKo.s page 15 484 0314 21282002 move $5,$17 485 0318 0000000C jal printf 486 031c 00008424 addiu $4,$4,%lo($LC32) 487 216:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** printf("-------------------------------\n"); 488 .loc 1 216 0 489 0320 0000043C lui $4,%hi($LC23) 490 0324 0000000C jal printf 491 0328 00008424 addiu $4,$4,%lo($LC23) 492 493 032c 1C20BF8F lw $31,8220($sp) 494 0330 1820B28F lw $18,8216($sp) 495 0334 1420B18F lw $17,8212($sp) 496 0338 1020B08F lw $16,8208($sp) 497 033c 0800E003 j $31 498 0340 2020BD27 addiu $sp,$sp,8224 499 500 .set macro 501 .set reorder 502 $LFE3: 503 .end displayDirectoryEntry 504 .align 2 505 .globl getSectorNumber 506 .ent getSectorNumber 507 .type getSectorNumber, @function 508 getSectorNumber: 509 $LFB4: 217:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** } 218:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** 219:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** int getSectorNumber(int clusterOffset) 220:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** { 510 .loc 1 220 0 511 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 512 .mask 0x00000000,0 513 .fmask 0x00000000,0 514 .set noreorder 515 .set nomacro 516 221:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** return fat.rootSector + (clusterOffset - 2) * fat.fbs.BPB_SecPerClus + fat.firstDataSector; 517 .loc 1 221 0 518 0344 0000033C lui $3,%hi(fat) 519 0348 00006324 addiu $3,$3,%lo(fat) 520 034c 0D006690 lbu $6,13($3) 521 0350 FEFF8424 addiu $4,$4,-2 522 0354 3C02658C lw $5,572($3) 523 0358 1802628C lw $2,536($3) 524 035c 02188670 mul $3,$4,$6 525 0360 21206500 addu $4,$3,$5 222:/mnt/hgfs/boot/booter/source/applications/booter/fat.c **** } 526 .loc 1 222 0 527 0364 0800E003 j $31 528 0368 21108200 addu $2,$4,$2 529 530 .set macro 531 .set reorder 532 $LFE4: 533 .end getSectorNumberGAS LISTING /tmp/ccZKkRKo.s page 16 534 .align 2 535 .globl getNextCluster 536 .ent getNextCluster
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -