📄 stdlib.lst
字号:
249 0108 0000000C jal puts 250 010c 23882302 subu $17,$17,$3 251 252 .loc 1 74 0 253 0110 F6FF1316 bne $16,$19,$L18 254 0114 00000000 nop 255 256 $L24: 75:/mnt/hgfs/boot/booter/source/stdlib.c **** 76:/mnt/hgfs/boot/booter/source/stdlib.c **** s[i] = '\0'; 257 .loc 1 76 0 258 0118 21105102 addu $2,$18,$17 259 011c 000040A0 sb $0,0($2) 77:/mnt/hgfs/boot/booter/source/stdlib.c **** 78:/mnt/hgfs/boot/booter/source/stdlib.c **** return s; 79:/mnt/hgfs/boot/booter/source/stdlib.c **** }GAS LISTING /tmp/ccLTWmfM.s page 7 260 .loc 1 79 0 261 0120 2800BF8F lw $31,40($sp) 262 0124 21104002 move $2,$18 263 0128 2400B58F lw $21,36($sp) 264 012c 2000B48F lw $20,32($sp) 265 0130 1C00B38F lw $19,28($sp) 266 0134 1800B28F lw $18,24($sp) 267 0138 1400B18F lw $17,20($sp) 268 013c 1000B08F lw $16,16($sp) 269 0140 0800E003 j $31 270 0144 3000BD27 addiu $sp,$sp,48 271 272 .set macro 273 .set reorder 274 $LFE7: 275 .end gets 276 .align 2 277 .globl gets_noecho 278 .ent gets_noecho 279 .type gets_noecho, @function 280 gets_noecho: 281 $LFB8: 80:/mnt/hgfs/boot/booter/source/stdlib.c **** 81:/mnt/hgfs/boot/booter/source/stdlib.c **** /********************************************************************/ 82:/mnt/hgfs/boot/booter/source/stdlib.c **** char * 83:/mnt/hgfs/boot/booter/source/stdlib.c **** gets_noecho (char *s) 84:/mnt/hgfs/boot/booter/source/stdlib.c **** { 282 .loc 1 84 0 283 .frame $sp,40,$31 # vars= 0, regs= 5/0, args= 16, gp= 0 284 .mask 0x800f0000,-8 285 .fmask 0x00000000,0 286 .set noreorder 287 .set nomacro 288 289 0148 D8FFBD27 addiu $sp,$sp,-40 290 $LCFI16: 291 014c 1C00B3AF sw $19,28($sp) 292 $LCFI17: 293 0150 1800B2AF sw $18,24($sp) 294 $LCFI18: 295 0154 1400B1AF sw $17,20($sp) 296 $LCFI19: 297 0158 1000B0AF sw $16,16($sp) 298 $LCFI20: 299 015c 21888000 move $17,$4 85:/mnt/hgfs/boot/booter/source/stdlib.c **** int i = 0; 300 .loc 1 85 0 301 0160 21800000 move $16,$0 302 0164 08001324 li $19,8 # 0x8 303 0168 0A001224 li $18,10 # 0xa 304 .loc 1 84 0 305 $LCFI21: 306 016c 61000008 j $L26 307 0170 2000BFAF sw $31,32($sp) 308 309 $L29: 86:/mnt/hgfs/boot/booter/source/stdlib.c **** int ch;GAS LISTING /tmp/ccLTWmfM.s page 8 87:/mnt/hgfs/boot/booter/source/stdlib.c **** 88:/mnt/hgfs/boot/booter/source/stdlib.c **** do 89:/mnt/hgfs/boot/booter/source/stdlib.c **** { 90:/mnt/hgfs/boot/booter/source/stdlib.c **** ch = getc_noecho(); 91:/mnt/hgfs/boot/booter/source/stdlib.c **** if (ch == '\b') 92:/mnt/hgfs/boot/booter/source/stdlib.c **** { 93:/mnt/hgfs/boot/booter/source/stdlib.c **** if (i > 0) 94:/mnt/hgfs/boot/booter/source/stdlib.c **** --i; 95:/mnt/hgfs/boot/booter/source/stdlib.c **** } 96:/mnt/hgfs/boot/booter/source/stdlib.c **** else 97:/mnt/hgfs/boot/booter/source/stdlib.c **** { 98:/mnt/hgfs/boot/booter/source/stdlib.c **** s[i++] = ch; 310 .loc 1 98 0 311 0174 01001026 addiu $16,$16,1 312 0178 000062A0 sb $2,0($3) 313 $L28: 99:/mnt/hgfs/boot/booter/source/stdlib.c **** } 100:/mnt/hgfs/boot/booter/source/stdlib.c **** } while (ch != '\n'); 101:/mnt/hgfs/boot/booter/source/stdlib.c **** 102:/mnt/hgfs/boot/booter/source/stdlib.c **** s[i] = '\0'; 314 .loc 1 102 0 315 .loc 1 100 0 316 017c 0A005210 beq $2,$18,$L33 317 0180 21103002 addu $2,$17,$16 318 319 $L26: 320 .loc 1 90 0 321 0184 0000000C jal getc_noecho 322 0188 00000000 nop 323 324 .loc 1 98 0 325 .loc 1 91 0 326 018c F9FF5314 bne $2,$19,$L29 327 0190 21181102 addu $3,$16,$17 328 329 .loc 1 93 0 330 0194 F9FF001A blez $16,$L28 331 0198 00000000 nop 332 333 .loc 1 94 0 334 .loc 1 100 0 335 019c F9FF5214 bne $2,$18,$L26 336 01a0 FFFF1026 addiu $16,$16,-1 337 338 .loc 1 102 0 339 01a4 21103002 addu $2,$17,$16 340 $L33: 341 01a8 000040A0 sb $0,0($2) 103:/mnt/hgfs/boot/booter/source/stdlib.c **** 104:/mnt/hgfs/boot/booter/source/stdlib.c **** return s; 105:/mnt/hgfs/boot/booter/source/stdlib.c **** } 342 .loc 1 105 0 343 01ac 2000BF8F lw $31,32($sp) 344 01b0 21102002 move $2,$17 345 01b4 1C00B38F lw $19,28($sp) 346 01b8 1800B28F lw $18,24($sp) 347 01bc 1400B18F lw $17,20($sp)GAS LISTING /tmp/ccLTWmfM.s page 9 348 01c0 1000B08F lw $16,16($sp) 349 01c4 0800E003 j $31 350 01c8 2800BD27 addiu $sp,$sp,40 351 352 .set macro 353 .set reorder 354 $LFE8: 355 .end gets_noecho 356 .align 2 357 .globl srand 358 .ent srand 359 .type srand, @function 360 srand: 361 $LFB9: 106:/mnt/hgfs/boot/booter/source/stdlib.c **** 107:/mnt/hgfs/boot/booter/source/stdlib.c **** /********************************************************************/ 108:/mnt/hgfs/boot/booter/source/stdlib.c **** int 109:/mnt/hgfs/boot/booter/source/stdlib.c **** srand (int max) 110:/mnt/hgfs/boot/booter/source/stdlib.c **** { 362 .loc 1 110 0 363 .frame $sp,24,$31 # vars= 0, regs= 2/0, args= 16, gp= 0 364 .mask 0x80010000,-4 365 .fmask 0x00000000,0 366 .set noreorder 367 .set nomacro 368 369 01cc E8FFBD27 addiu $sp,$sp,-24 370 $LCFI22: 371 01d0 1000B0AF sw $16,16($sp) 372 $LCFI23: 373 01d4 1400BFAF sw $31,20($sp) 374 $LCFI24: 375 .loc 1 110 0 111:/mnt/hgfs/boot/booter/source/stdlib.c **** int v = (int)cp0RdCount(); 376 .loc 1 111 0 377 01d8 0000000C jal cp0RdCount 378 01dc 21808000 move $16,$4 379 112:/mnt/hgfs/boot/booter/source/stdlib.c **** 113:/mnt/hgfs/boot/booter/source/stdlib.c **** v &= 0x0ffff; 380 .loc 1 113 0 114:/mnt/hgfs/boot/booter/source/stdlib.c **** 115:/mnt/hgfs/boot/booter/source/stdlib.c **** if( max != 0 ) 381 .loc 1 115 0 382 01e0 06000012 beq $16,$0,$L35 383 01e4 FFFF4230 andi $2,$2,0xffff 384 116:/mnt/hgfs/boot/booter/source/stdlib.c **** v = v % max; 385 .loc 1 116 0 386 01e8 1A005000 div $0,$2,$16 387 01ec 02000016 bne $16,$0,1f 388 01f0 00000000 nop 389 01f4 0D000700 break 7 390 1: 391 01f8 10100000 mfhi $2 392 $L35: 117:/mnt/hgfs/boot/booter/source/stdlib.c **** GAS LISTING /tmp/ccLTWmfM.s page 10 118:/mnt/hgfs/boot/booter/source/stdlib.c **** return v; 119:/mnt/hgfs/boot/booter/source/stdlib.c **** } 393 .loc 1 119 0 394 01fc 1400BF8F lw $31,20($sp) 395 0200 1000B08F lw $16,16($sp) 396 0204 0800E003 j $31 397 0208 1800BD27 addiu $sp,$sp,24 398 399 .set macro 400 .set reorder 401 $LFE9: 402 .end srand 403 .align 2 404 .globl hexchartoi 405 .ent hexchartoi 406 .type hexchartoi, @function 407 hexchartoi: 408 $LFB10: 120:/mnt/hgfs/boot/booter/source/stdlib.c **** 121:/mnt/hgfs/boot/booter/source/stdlib.c **** /********************************************************************/ 122:/mnt/hgfs/boot/booter/source/stdlib.c **** int hexchartoi(const char ch) 123:/mnt/hgfs/boot/booter/source/stdlib.c **** { 409 .loc 1 123 0 410 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 411 .mask 0x00000000,0 412 .fmask 0x00000000,0 413 .set noreorder 414 .set nomacro 415 416 .loc 1 123 0 417 020c 00260400 sll $4,$4,24 418 0210 03260400 sra $4,$4,24 124:/mnt/hgfs/boot/booter/source/stdlib.c **** switch (ch) 419 .loc 1 124 0 420 0214 D0FF8524 addiu $5,$4,-48 421 0218 3700A22C sltu $2,$5,55 422 021c 07004010 beq $2,$0,$L60 423 0220 0000033C lui $3,%hi($L61) 424 425 0224 80100500 sll $2,$5,2 426 0228 00006324 addiu $3,$3,%lo($L61) 427 022c 21104300 addu $2,$2,$3 428 0230 0000448C lw $4,0($2) 429 0234 08008000 j $4 430 0238 00000000 nop 431 432 .rdata 433 .align 2 434 $L61: 435 0000 4C020000 .word $L47 436 0004 4C020000 .word $L47 437 0008 4C020000 .word $L47 438 000c 4C020000 .word $L47 439 0010 4C020000 .word $L47 440 0014 4C020000 .word $L47 441 0018 4C020000 .word $L47 442 001c 4C020000 .word $L47GAS LISTING /tmp/ccLTWmfM.s page 11 443 0020 4C020000 .word $L47 444 0024 4C020000 .word $L47 445 0028 3C020000 .word $L60 446 002c 3C020000 .word $L60 447 0030 3C020000 .word $L60 448 0034 3C020000 .word $L60 449 0038 3C020000 .word $L60 450 003c 3C020000 .word $L60 451 0040 3C020000 .word $L60 452 0044 54020000 .word $L49 453 0048 5C020000 .word $L51 454 004c 64020000 .word $L53 455 0050 6C020000 .word $L55 456 0054 74020000 .word $L57 457 0058 44020000 .word $L59 458 005c 3C020000 .word $L60 459 0060 3C020000 .word $L60 460 0064 3C020000 .word $L60 461 0068 3C020000 .word $L60 462 006c 3C020000 .word $L60 463 0070 3C020000 .word $L60 464 0074 3C020000 .word $L60 465 0078 3C020000 .word $L60 466 007c 3C020000 .word $L60 467 0080 3C020000 .word $L60 468 0084 3C020000 .word $L60 469 0088 3C020000 .word $L60 470 008c 3C020000 .word $L60 471 0090 3C020000 .word $L60 472 0094 3C020000 .word $L60 473 0098 3C020000 .word $L60 474 009c 3C020000 .word $L60 475 00a0 3C020000 .word $L60 476 00a4 3C020000 .word $L60 477 00a8 3C020000 .word $L60 478 00ac 3C020000 .word $L60 479 00b0 3C020000 .word $L60 480 00b4 3C020000 .word $L60 481 00b8 3C020000 .word $L60 482 00bc 3C020000 .word $L60 483 00c0 3C020000 .word $L60 484 00c4 54020000 .word $L49 485 00c8 5C020000 .word $L51 486 00cc 64020000 .word $L53 487 00d0 6C020000 .word $L55 488 00d4 74020000 .word $L57 489 00d8 44020000 .word $L59 490 00dc 00000000 .text 491 $L60: 125:/mnt/hgfs/boot/booter/source/stdlib.c **** { 126:/mnt/hgfs/boot/booter/source/stdlib.c **** case '0': 127:/mnt/hgfs/boot/booter/source/stdlib.c **** case '1': 128:/mnt/hgfs/boot/booter/source/stdlib.c **** case '2': 129:/mnt/hgfs/boot/booter/source/stdlib.c **** case '3': 130:/mnt/hgfs/boot/booter/source/stdlib.c **** case '4': 131:/mnt/hgfs/boot/booter/source/stdlib.c **** case '5': 132:/mnt/hgfs/boot/booter/source/stdlib.c **** case '6':GAS LISTING /tmp/ccLTWmfM.s page 12 133:/mnt/hgfs/boot/booter/source/stdlib.c **** case '7': 134:/mnt/hgfs/boot/booter/source/stdlib.c **** case '8': 135:/mnt/hgfs/boot/booter/source/stdlib.c **** case '9': 136:/mnt/hgfs/boot/booter/source/stdlib.c **** return (ch - '0'); 137:/mnt/hgfs/boot/booter/source/stdlib.c **** break; 138:/mnt/hgfs/boot/booter/source/stdlib.c **** case 'A': 139:/mnt/hgfs/boot/booter/source/stdlib.c **** case 'a': 140:/mnt/hgfs/boot/booter/source/stdlib.c **** return 10; 141:/mnt/hgfs/boot/booter/source/stdlib.c **** break; 142:/mnt/hgfs/boot/booter/source/stdlib.c **** case 'B': 143:/mnt/hgfs/boot/booter/source/stdlib.c **** case 'b': 144:/mnt/hgfs/boot/booter/source/stdlib.c **** return 11; 145:/mnt/hgfs/boot/booter/source/stdlib.c **** break; 146:/mnt/hgfs/boot/booter/source/stdlib.c **** case 'C': 147:/mnt/hgfs/boot/booter/source/stdlib.c **** case 'c': 148:/mnt/hgfs/boot/booter/source/stdlib.c **** return 12; 149:/mnt/hgfs/boot/booter/source/stdlib.c **** break; 150:/mnt/hgfs/boot/booter/source/stdlib.c **** case 'D': 151:/mnt/hgfs/boot/booter/source/stdlib.c **** case 'd': 152:/mnt/hgfs/boot/booter/source/stdlib.c **** return 13; 153:/mnt/hgfs/boot/booter/source/stdlib.c **** break; 154:/mnt/hgfs/boot/booter/source/stdlib.c **** case 'E': 155:/mnt/hgfs/boot/booter/source/stdlib.c **** case 'e': 156:/mnt/hgfs/boot/booter/source/stdlib.c **** return 14; 157:/mnt/hgfs/boot/booter/source/stdlib.c **** break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -