📄 testzlib.asm
字号:
nop.i 0;;
}
{ .mmi //R-Addr: 0X0c0
adds r16=stream$, sp;; //125 cc:0
ld8 r15=[r16] //125 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X0d0
cmp.ne.unc p14,p15=r0, r15 //125 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN4@ReadFileMe#;; //125 cc:2
}
// 126 : return 0;
{ .mmb //R-Addr: 0X0e0
mov r8=r0 //126 cc:0
nop.m 0
br.cond.sptk.few $LN5@ReadFileMe#;; //126 cc:0
}
$LN4@ReadFileMe:
// 127 :
// 128 : fseek(stream,0,SEEK_END);
// 129 :
// 130 : *plFileSize=ftell(stream);
// 131 : fseek(stream,0,SEEK_SET);
// 132 : ptr=malloc((*plFileSize)+1);
// 133 : if (ptr==NULL)
{ .mmi //R-Addr: 0X0f0
addl r10=@gprel(__imp_fseek#),gp //128 cc:0
adds r11=stream$, sp //128 cc:0
mov r40=2 //128 cc:0
}
{ .mmi //R-Addr: 0X0100
mov r39=0;; //128 cc:0
ld8 r9=[r10] //128 cc:1
nop.i 0
}
{ .mmi //R-Addr: 0X0110
ld8 r38=[r11];; //128 cc:1
ld8 r8=[r9], 8 //128 cc:3
nop.i 0;;
}
{ .mib //R-Addr: 0X0120
ld8 gp=[r9] //128 cc:4
mov b7=r8 //128 cc:4
br.call.dptk.many b0=b7;; //128 cc:4
}
{ .mmi //R-Addr: 0X0130
mov gp=r37;; //128 cc:15
addl r30=@gprel(__imp_ftell#),gp //130 cc:0
adds r31=stream$, sp;; //130 cc:0
}
{ .mmb //R-Addr: 0X0140
ld8 r29=[r30] //130 cc:1
ld8 r38=[r31] //130 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X0150
ld8 r28=[r29], 8;; //130 cc:3
ld8 gp=[r29] //130 cc:4
mov b6=r28 //130 cc:4
}
{ .mmb //R-Addr: 0X0160
nop.m 0
nop.m 0
br.call.dptk.many b0=b6;; //130 cc:4
}
{ .mmi //R-Addr: 0X0170
adds r27=$T80463, sp //130 cc:15
adds r26=$T80463, sp //130 cc:15
adds r22=plFileSize$, sp //130 cc:15
}
{ .mmi //R-Addr: 0X0180
mov gp=r37;; //130 cc:15
st4 [r27]=r8 //130 cc:16
nop.i 0
}
{ .mmb //R-Addr: 0X0190
ld4 r25=[r26] //130 cc:16
ld8 r21=[r22] //130 cc:16
nop.b 0;;
}
{ .mmi //R-Addr: 0X01a0
st4 [r21]=r25;; //130 cc:17
addl r19=@gprel(__imp_fseek#),gp //131 cc:0
adds r20=stream$, sp //131 cc:0
}
{ .mib //R-Addr: 0X01b0
mov r40=0 //131 cc:0
mov r39=0 //131 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X01c0
ld8 r18=[r19] //131 cc:1
ld8 r38=[r20] //131 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X01d0
ld8 r17=[r18], 8;; //131 cc:3
ld8 gp=[r18] //131 cc:4
mov b7=r17 //131 cc:4
}
{ .mmb //R-Addr: 0X01e0
nop.m 0
nop.m 0
br.call.dptk.many b0=b7;; //131 cc:4
}
{ .mmi //R-Addr: 0X01f0
mov gp=r37;; //131 cc:15
adds r16=plFileSize$, sp //132 cc:0
addl r9=@gprel(__imp_malloc#),gp;; //132 cc:0
}
{ .mmb //R-Addr: 0X0200
ld8 r15=[r16] //132 cc:1
ld8 r8=[r9] //132 cc:1
nop.b 0;;
}
{ .mmb //R-Addr: 0X0210
ld4 r11=[r15] //132 cc:3
ld8 r31=[r8], 8 //132 cc:3
nop.b 0;;
}
{ .mii //R-Addr: 0X0220
ld8 gp=[r8] //132 cc:4
mov b6=r31 //132 cc:4
adds r10=1, r11;; //132 cc:4
}
{ .mib //R-Addr: 0X0230
nop.m 0
sxt4 r38=r10 //132 cc:5
br.call.dptk.many b0=b6;; //132 cc:5
}
{ .mmi //R-Addr: 0X0240
adds r30=$T80464, sp //132 cc:16
adds r29=$T80464, sp //132 cc:16
adds r27=ptr$, sp //132 cc:16
}
{ .mmi //R-Addr: 0X0250
mov gp=r37;; //132 cc:16
st8 [r30]=r8 //132 cc:17
nop.i 0
}
{ .mmi //R-Addr: 0X0260
ld8 r28=[r29];; //132 cc:17
st8 [r27]=r28 //132 cc:18
nop.i 0;;
}
{ .mmi //R-Addr: 0X0270
adds r26=ptr$, sp;; //133 cc:0
ld8 r25=[r26] //133 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X0280
cmp.ne.unc p14,p15=r0, r25 //133 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN3@ReadFileMe#;; //133 cc:2
}
// 134 : retVal=0;
// 135 : else
{ .mmi //R-Addr: 0X0290
adds r22=retVal$, sp;; //134 cc:0
st4 [r22]=r0 //134 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X02a0
nop.m 0
nop.m 0
br.cond.sptk.few $LN2@ReadFileMe#;; //135 cc:0
}
$LN3@ReadFileMe:
// 136 : {
// 137 : if (fread(ptr, 1, *plFileSize,stream) != (*plFileSize))
{ .mmi //R-Addr: 0X02b0
addl r16=@gprel(__imp_fread#),gp //137 cc:0
adds r20=plFileSize$, sp //137 cc:0
adds r21=stream$, sp //137 cc:0
}
{ .mib //R-Addr: 0X02c0
adds r17=ptr$, sp //137 cc:0
mov r39=1 //137 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X02d0
ld8 r19=[r20] //137 cc:1
ld8 r15=[r16] //137 cc:1
nop.b 0;;
}
{ .mmb //R-Addr: 0X02e0
ld8 r41=[r21] //137 cc:2
ld8 r38=[r17] //137 cc:2
nop.b 0;;
}
{ .mmb //R-Addr: 0X02f0
ld8 r11=[r15], 8 //137 cc:3
ld4 r18=[r19] //137 cc:3
nop.b 0;;
}
{ .mii //R-Addr: 0X0300
ld8 gp=[r15] //137 cc:4
mov b7=r11 //137 cc:4
sxt4 r40=r18 //137 cc:4
}
{ .mmb //R-Addr: 0X0310
nop.m 0
nop.m 0
br.call.dptk.many b0=b7;; //137 cc:4
}
{ .mmi //R-Addr: 0X0320
adds r10=$T80465, sp //137 cc:15
adds r9=plFileSize$, sp //137 cc:15
adds r29=$T80465, sp //137 cc:15
}
{ .mmi //R-Addr: 0X0330
mov gp=r37;; //137 cc:15
st8 [r10]=r8 //137 cc:16
nop.i 0
}
{ .mmb //R-Addr: 0X0340
ld8 r8=[r9] //137 cc:16
ld8 r28=[r29] //137 cc:16
nop.b 0;;
}
{ .mmi //R-Addr: 0X0350
ld4 r31=[r8];; //137 cc:18
nop.m 0
sxt4 r30=r31;; //137 cc:19
}
{ .mmb //R-Addr: 0X0360
cmp.eq.unc p14,p15=r28, r30 //137 cc:20
nop.m 0
(p14) br.cond.dptk.few $LN2@ReadFileMe#;; //137 cc:20
}
// 138 : retVal=0;
{ .mmi //R-Addr: 0X0370
adds r27=retVal$, sp;; //138 cc:0
st4 [r27]=r0 //138 cc:1
nop.i 0;;
}
$LN2@ReadFileMe:
// 139 : }
// 140 : fclose(stream);
// 141 : *pFilePtr=ptr;
// 142 : return retVal;
{ .mib //R-Addr: 0X0380
addl r25=@gprel(__imp_fclose#),gp //140 cc:0
adds r26=stream$, sp //140 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X0390
ld8 r22=[r25] //140 cc:1
ld8 r38=[r26] //140 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X03a0
ld8 r21=[r22], 8;; //140 cc:3
ld8 gp=[r22] //140 cc:4
mov b6=r21 //140 cc:4
}
{ .mmb //R-Addr: 0X03b0
nop.m 0
nop.m 0
br.call.dptk.many b0=b6;; //140 cc:4
}
{ .mmi //R-Addr: 0X03c0
mov gp=r37;; //140 cc:15
adds r20=ptr$, sp //141 cc:0
adds r18=pFilePtr$, sp;; //141 cc:0
}
{ .mmb //R-Addr: 0X03d0
ld8 r19=[r20] //141 cc:1
ld8 r17=[r18] //141 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X03e0
st8 [r17]=r19;; //141 cc:2
adds r16=retVal$, sp //142 cc:0
nop.i 0;;
}
{ .mmi //R-Addr: 0X03f0
ld4 r8=[r16];; //142 cc:1
nop.m 0
nop.i 0;;
}
$LN5@ReadFileMe:
// 143 : }
{ .mii //R-Addr: 0X0400
adds sp=96, sp //143 cc:0, 00000060H
mov.ret b0=r35;; //143 cc:0
mov.i ar.pfs=r36 //143 cc:1
}
{ .mmb //R-Addr: 0X0410
nop.m 0
nop.m 0
br.ret.sptk.many b0;; //143 cc:1
}
// End code for function:
.endp ReadFileMemory#
.type main# ,@function
.global main#
.type memcmp# ,@function
.global memcmp#
.type inflateEnd# ,@function
.global inflateEnd#
.type inflate# ,@function
.global inflate#
.type inflateInit_# ,@function
.global inflateInit_#
.type __imp_realloc# ,@function
.global __imp_realloc#
.type deflateEnd# ,@function
.global deflateEnd#
.type deflate# ,@function
.global deflate#
.type deflateInit_# ,@function
.global deflateInit_#
.type memset# ,@function
.global memset#
.type __imp_atol# ,@function
.global __imp_atol#
.type __imp_printf# ,@function
.global __imp_printf#
.type _fltused# ,@object
.global _fltused#
.section .pdata
$T80506: data4 @imagerel($LN27@main#)
data4 @imagerel($LN27@main#+6128)
data4 @imagerel($T80504#)
.section .xdata
.skip 8
$T80504: data2 03H
data2 00H
data4 03H
string "\x0a" //R1:prologue size 10
string "\xe6\x00" //P7:pfs_when time 0
string "\xb1\x23" //P3:pfs_gr 35
string "\xe0\x01\x1d" //P7:mem_stack_f time 1 size 29
string "\xe4\x02" //P7:rp_when time 2
string "\xb0\xa2" //P3:rp_gr 34
string "\x61\xf3\x08" //R3:body size 1139
string "\x81" //B1:label_state 1
string "\xc0\x05" //B2:ecount 0 time 5
string "\x00\x00\x00\x00\x00\x00" //padding
// Function compile flags: /Odtp
.section .text
// Begin code for function: main:
.proc main#
.align 32
lCompressedSize$ = 16
li_qp$ = 24
lBufferSizeCpr$ = 32
BlockSizeUncompress$ = 36
lFileSize$ = 40
li_rdtsc$ = 48
FilePtr$ = 56
cprLevel$ = 64
lSizeCpr$ = 68
lSizeUncpr$ = 72
CprPtr$ = 80
lBufferSizeUncpr$ = 88
dwResRdtsc$ = 96
dwMsecQP$ = 104
dwGetTick$ = 108
BlockSizeCompress$ = 112
UncprPtr$ = 120
zcpr$80346 = 128
step$80350 = 216
ret$80347 = 220
lOrigDone$80349 = 224
lOrigToDo$80348 = 228
all_read_before$80357 = 232
zcpr$80366 = 240
step$80370 = 328
ret$80367 = 332
lOrigDone$80369 = 336
lOrigToDo$80368 = 340
all_read_before$80377 = 344
$T80478 = 348
$T80479 = 352
$T80480 = 356
$T80481 = 360
$T80482 = 368
$T80483 = 376
$T80484 = 380
$T80485 = 384
$T80486 = 388
$T80487 = 392
$T80488 = 400
$T80489 = 408
$T80490 = 416
$T80491 = 424
$T80492 = 428
$T80493 = 432
$T80494 = 436
$T80495 = 440
$T80496 = 448
$T80497 = 452
$T80498 = 456
argc$ = 464
argv$ = 472
main:
// argc$ = r32
// argv$ = r33
// Output regs: r37-r40
$LN27@main:
// 146 : {
// 147 : int BlockSizeCompress=0x8000;
// 148 : int BlockSizeUncompress=0x8000;
// 149 : int cprLevel=Z_DEFAULT_COMPRESSION ;
// 150 : long lFileSize;
// 151 : unsigned char* FilePtr;
// 152 : long lBufferSizeCpr;
// 153 : long lBufferSizeUncpr;
// 154 : long lCompressedSize=0;
// 155 : unsigned char* CprPtr;
// 156 : unsigned char* UncprPtr;
// 157 : long lSizeCpr,lSizeUncpr;
// 158 : DWORD dwGetTick,dwMsecQP;
// 159 : LARGE_INTEGER li_qp,li_rdtsc,dwResRdtsc;
// 160 :
// 161 : if (argc<=1)
{ .mmi //R-Addr: 0X00
alloc r35=2, 3, 4, 0 //146 cc:0
adds sp=-464, sp //146 cc:0, fffffe30H
mov r34=b0 //146 cc:0
}
{ .mmi //R-Addr: 0X010
mov r36=gp;; //146 cc:0
ld8.nta r2=[sp] //146 cc:1
adds r31=argc$, sp
}
{ .mmi //R-Addr: 0X020
adds r30=argv$, sp;;
st4 [r31]=r32
nop.i 0
}
{ .mmi //R-Addr: 0X030
st8 [r30]=r33;;
mov r29=32768 //147 cc:0, 00008000H
adds r28=BlockSizeCompress$, sp;; //147 cc:0
}
{ .mmi //R-Addr: 0X040
st4 [r28]=r29;; //147 cc:1
mov r27=32768 //148 cc:0, 00008000H
adds r26=BlockSizeUncompress$, sp;; //148 cc:0
}
{ .mmi //R-Addr: 0X050
st4 [r26]=r27;; //148 cc:1
mov r25=-1 //149 cc:0
adds r22=cprLevel$, sp;; //149 cc:0
}
{ .mmi //R-Addr: 0X060
st4 [r22]=r25;; //149 cc:1
adds r21=lCompressedSize$, sp //154 cc:0
nop.i 0;;
}
{ .mmi //R-Addr: 0X070
st4 [r21]=r0;; //154 cc:1
adds r20=argc$, sp //161 cc:0
nop.i 0;;
}
{ .mmi //R-Addr: 0X080
ld4 r19=[r20];; //161 cc:1
cmp4.lt.unc p14,p15=1, r19 //161 cc:2
nop.i 0
}
{ .mmb //R-Addr: 0X090
nop.m 0
nop.m 0
(p14) br.cond.dptk.few $LN14@main#;; //161 cc:2
}
// 162 : {
// 163 : printf("run TestZlib <File> [BlockSizeCompress] [BlockSizeUncompress] [compres. level]\n");
// 164 : return 0;
{ .mib //R-Addr: 0X0a0
addl r17=@gprel(__imp_printf#),gp //163 cc:0
addl r18=@ltoff($SG80336#),gp //163 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X0b0
ld8 r16=[r17] //163 cc:1
ld8 r37=[r18] //163 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X0c0
ld8 r15=[r16], 8;; //163 cc:3
ld8 gp=[r16] //163 cc:4
mov b7=r15 //163 cc:4
}
{ .mmb //R-Addr: 0X0d0
nop.m 0
nop.m 0
br.call.dptk.many b0=b7;; //163 cc:4
}
{ .mmb //R-Addr: 0X0e0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -