⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testzlib.asm

📁 zlib dll in wince 5.0 parfrom
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	ld8	r30=[r31];;				    //89 	cc:1
	adds	r29=4, r30				    //89 	cc:2
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0150 
	st4	[r29]=r0;;				    //89 	cc:3
	nop.m	 0
	nop.i	 0;;
 }
$LN3@BeginCount:

// 90   :     }
// 91   : }

 {   .mii  //R-Addr: 0X0160 
	adds	sp=32, sp				    //91 	cc:0
	mov.ret	b0=r34;;				    //91 	cc:0
	mov.i	ar.pfs=r35				    //91 	cc:1
 }
 {   .mmb  //R-Addr: 0X0170 
	nop.m	 0
	nop.m	 0
	br.ret.sptk.many b0;;				    //91 	cc:1
 }
// End code for function:
	.endp	BeginCountPerfCounter#
	.type	GetMsecSincePerfCounter#	,@function 
        .global GetMsecSincePerfCounter#
	.type	__imp_QueryPerformanceFrequency#	,@function 
        .global __imp_QueryPerformanceFrequency#
	.section	.pdata
$T80458: data4	@imagerel($LN6@GetMsecSin#)
	data4	@imagerel($LN6@GetMsecSin#+896)
	data4	@imagerel($T80456#)
	.section	.xdata
	.skip 8
$T80456: 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\x05"	//P7:mem_stack_f time 1 size 5
	string	"\xe4\x02"	//P7:rp_when time 2
	string	"\xb0\xa2"	//P3:rp_gr 34
	string	"\x61\x9e\x01"	//R3:body size 158
	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: GetMsecSincePerfCounter:
	.proc	GetMsecSincePerfCounter#
	.align 32
dwRet$	= 16
dwLog$	= 20
ticks$	= 24
tickSecShifted$	= 32
endTime64$	= 40
ticksPerSecond$	= 48
ticksShifted$	= 56
$T80454	= 64
$T80455	= 68
beginTime64$	= 80
fComputeTimeQueryPerf$	= 88
GetMsecSincePerfCounter: 
// beginTime64$ = r32
// fComputeTimeQueryPerf$ = r33
// Output regs: r37-r39
$LN6@GetMsecSin:

// 94   : {
// 95   :     LARGE_INTEGER endTime64,ticksPerSecond,ticks;
// 96   :     DWORDLONG ticksShifted,tickSecShifted;
// 97   :     DWORD dwLog=16+0;
// 98   :     DWORD dwRet;
// 99   :     if ((!fComputeTimeQueryPerf) || (!QueryPerformanceCounter(&endTime64)))

 {   .mmi  //R-Addr: 0X00 
	alloc	r35=2, 3, 3, 0				    //94 	cc:0
	adds	sp=-80, sp				    //94 	cc:0, ffffffb0H
	mov	r34=b0					    //94 	cc:0
 }
 {   .mmi  //R-Addr: 0X010 
	mov	r36=gp;;				    //94 	cc:0
	ld8.nta	r2=[sp]					    //94 	cc:1
	adds	r31=beginTime64$, sp
 }
 {   .mmi  //R-Addr: 0X020 
	adds	r30=fComputeTimeQueryPerf$, sp;;
	st8	[r31]=r32
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X030 
	st4	[r30]=r33;;
	mov	r29=16					    //97 	cc:0
	adds	r28=dwLog$, sp;;			    //97 	cc:0
 }
 {   .mmi  //R-Addr: 0X040 
	st4	[r28]=r29;;				    //97 	cc:1
	adds	r27=fComputeTimeQueryPerf$, sp		    //99 	cc:0
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X050 
	ld4	r26=[r27];;				    //99 	cc:1
	cmp4.eq.unc p14,p15=r0, r26			    //99 	cc:2
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X060 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.few $LN2@GetMsecSin#;;		    //99 	cc:2
 }

// 99   :     if ((!fComputeTimeQueryPerf) || (!QueryPerformanceCounter(&endTime64)))

 {   .mib  //R-Addr: 0X070 
	addl	r25=@gprel(__imp_QueryPerformanceCounter#),gp //99 	cc:3
	adds	r37=endTime64$, sp			    //99 	cc:3
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X080 
	ld8	r22=[r25];;				    //99 	cc:4
	ld8	r21=[r22], 8				    //99 	cc:6
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X090 
	ld8	gp=[r22]				    //99 	cc:7
	mov	b6=r21					    //99 	cc:7
	br.call.dptk.many b0=b6;;			    //99 	cc:7
 }
 {   .mmi  //R-Addr: 0X0a0 
	adds	r20=$T80454, sp				    //99 	cc:18
	adds	r19=$T80454, sp				    //99 	cc:18
	mov	gp=r36;;				    //99 	cc:18
 }
 {   .mmb  //R-Addr: 0X0b0 
	st4	[r20]=r8				    //99 	cc:19
	ld4	r18=[r19]				    //99 	cc:19
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0c0 
	cmp4.ne.unc p14,p15=r0, r18			    //99 	cc:20
	nop.m	 0
  (p14)	br.cond.dptk.few $LN3@GetMsecSin#;;		    //99 	cc:20
 }
$LN2@GetMsecSin:

// 100  :         dwRet = (GetTickCount() - beginTime64.LowPart)*1;
// 101  :     else

 {   .mmi  //R-Addr: 0X0d0 
	addl	r17=@gprel(__imp_GetTickCount#),gp;;	    //100 	cc:0
	ld8	r16=[r17]				    //100 	cc:1
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0e0 
	ld8	r15=[r16], 8;;				    //100 	cc:3
	ld8	gp=[r16]				    //100 	cc:4
	mov	b7=r15					    //100 	cc:4
 }
 {   .mmb  //R-Addr: 0X0f0 
	nop.m	 0
	nop.m	 0
	br.call.dptk.many b0=b7;;			    //100 	cc:4
 }
 {   .mmi  //R-Addr: 0X0100 
	adds	r11=$T80455, sp				    //100 	cc:15
	adds	r10=$T80455, sp				    //100 	cc:15
	adds	r29=dwRet$, sp				    //100 	cc:15
 }
 {   .mmi  //R-Addr: 0X0110 
	mov	gp=r36;;				    //100 	cc:15
	st4	[r11]=r8				    //100 	cc:16
	adds	r8=beginTime64$, sp			    //100 	cc:16
 }
 {   .mmi  //R-Addr: 0X0120 
	ld4	r9=[r10];;				    //100 	cc:16
	ld4	r31=[r8]				    //100 	cc:17
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0130 
	sub	r30=r9, r31;;				    //100 	cc:18
	st4	[r29]=r30				    //100 	cc:19
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0140 
	nop.m	 0
	nop.m	 0
	br.cond.sptk.few $LN1@GetMsecSin#;;		    //101 	cc:0
 }
$LN3@GetMsecSin:

// 102  :     {
// 103  :         MyDoMinus64(&ticks,endTime64,beginTime64);
// 104  :         QueryPerformanceFrequency(&ticksPerSecond);
// 105  : 
// 106  :     
// 107  :         {
// 108  :             ticksShifted = Int64ShrlMod32(*(DWORDLONG*)&ticks,dwLog);
// 109  :             tickSecShifted = Int64ShrlMod32(*(DWORDLONG*)&ticksPerSecond,dwLog);
// 110  :         
// 111  :         } 
// 112  : 
// 113  :         dwRet = (DWORD)((((DWORD)ticksShifted)*1000)/(DWORD)(tickSecShifted));
// 114  :         dwRet *=1;

 {   .mmi  //R-Addr: 0X0150 
	adds	r28=beginTime64$, sp			    //103 	cc:0
	adds	r27=endTime64$, sp			    //103 	cc:0
	adds	r37=ticks$, sp;;			    //103 	cc:0
 }
 {   .mmb  //R-Addr: 0X0160 
	ld8	r39=[r28]				    //103 	cc:1
	ld8	r38=[r27]				    //103 	cc:1
	br.call.sptk.few b0=MyDoMinus64#;;		    //103 	cc:1
 }
 {   .mib  //R-Addr: 0X0170 
	addl	r26=@gprel(__imp_QueryPerformanceFrequency#),gp //104 	cc:0
	adds	r37=ticksPerSecond$, sp			    //104 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0180 
	ld8	r25=[r26];;				    //104 	cc:1
	ld8	r22=[r25], 8				    //104 	cc:3
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0190 
	ld8	gp=[r25]				    //104 	cc:4
	mov	b6=r22					    //104 	cc:4
	br.call.dptk.many b0=b6;;			    //104 	cc:4
 }
 {   .mmi  //R-Addr: 0X01a0 
	mov	gp=r36;;				    //104 	cc:15
	adds	r21=ticks$, sp				    //108 	cc:0
	adds	r19=dwLog$, sp				    //108 	cc:0
 }
 {   .mmi  //R-Addr: 0X01b0 
	adds	r16=ticksShifted$, sp;;			    //108 	cc:0
	ld8	r20=[r21]				    //108 	cc:1
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X01c0 
	ld4	r18=[r19];;				    //108 	cc:1
	nop.m	 0
	shr.u	r17=r20, r18;;				    //108 	cc:3
 }
 {   .mmi  //R-Addr: 0X01d0 
	st8	[r16]=r17;;				    //108 	cc:6
	adds	r15=ticksPerSecond$, sp			    //109 	cc:0
	adds	r10=dwLog$, sp				    //109 	cc:0
 }
 {   .mmi  //R-Addr: 0X01e0 
	adds	r31=tickSecShifted$, sp;;		    //109 	cc:0
	ld8	r11=[r15]				    //109 	cc:1
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X01f0 
	ld4	r9=[r10];;				    //109 	cc:1
	nop.m	 0
	shr.u	r8=r11, r9;;				    //109 	cc:3
 }
 {   .mmi  //R-Addr: 0X0200 
	st8	[r31]=r8;;				    //109 	cc:6
	adds	r30=ticksShifted$, sp			    //113 	cc:0
	mov	r28=1000				    //113 	cc:0, 000003e8H
 }
 {   .mmi  //R-Addr: 0X0210 
	adds	r26=tickSecShifted$, sp			    //113 	cc:0
	mov	r20=65501				    //113 	cc:0, 0000ffddH
	adds	r18=dwRet$, sp;;			    //113 	cc:0
 }
 {   .mmb  //R-Addr: 0X0220 
	ld8	r29=[r30]				    //113 	cc:1
	ld8	r25=[r26]				    //113 	cc:1
	nop.b	 0
 }
 {   .mmb  //R-Addr: 0X0230 
	setf.sig f7=r28					    //113 	cc:1
	setf.exp f13=r20				    //113 	cc:1
	nop.b	 0;;
 }
 {   .mii  //R-Addr: 0X0240 
	setf.sig f6=r29					    //113 	cc:2
	zxt4	r21=r25;;				    //113 	cc:2
	cmp.eq.unc p15,p0=0, r21			    //113 	cc:3
 }
 {   .mmi  //R-Addr: 0X0250 
	setf.sig f10=r21;;				    //113 	cc:3
  (p15)	break.m	 1					    //113 	cc:4
	nop.i	 0;;
 }
 {   .mfb  //R-Addr: 0X0260 
	nop.m	 0
	xma.lu	f8=f6, f7, f0				    //113 	cc:8
	nop.b	 0;;
 }
 {   .mfb  //R-Addr: 0X0270 
	nop.m	 0
	fcvt.xuf.s1 f12=f10				    //113 	cc:9
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0280 
	getf.sig r27=f8;;				    //113 	cc:12
	nop.m	 0
	zxt4	r22=r27;;				    //113 	cc:17
 }
 {   .mmb  //R-Addr: 0X0290 
	setf.sig f9=r22					    //113 	cc:18
	nop.m	 0
	nop.b	 0;;
 }
 {   .mfb  //R-Addr: 0X02a0 
	nop.m	 0
	fcvt.xuf.s1 f11=f9				    //113 	cc:24
	nop.b	 0;;
 }
 {   .mfb  //R-Addr: 0X02b0 
	nop.m	 0
	frcpa.s1 f14,p6=f11, f12			    //113 	cc:28
	nop.b	 0;;
 }
 {   .mfb  //R-Addr: 0X02c0 
	nop.m	 0
  (p6)	fma.s1	f11=f11, f14, f0			    //113 	cc:32
	nop.b	 0
 }
 {   .mfb  //R-Addr: 0X02d0 
	nop.m	 0
  (p6)	fnma.s1	f12=f12, f14, f1			    //113 	cc:32
	nop.b	 0;;
 }
 {   .mfb  //R-Addr: 0X02e0 
	nop.m	 0
  (p6)	fma.s1	f11=f12, f11, f11			    //113 	cc:36
	nop.b	 0
 }
 {   .mfb  //R-Addr: 0X02f0 
	nop.m	 0
  (p6)	fma.s1	f12=f12, f12, f13			    //113 	cc:36
	nop.b	 0;;
 }
 {   .mfb  //R-Addr: 0X0300 
	nop.m	 0
  (p6)	fma.s1	f14=f12, f11, f11, f14			    //113 	cc:40
	nop.b	 0;;
 }
 {   .mfb  //R-Addr: 0X0310 
	nop.m	 0
	fcvt.fxu.trunc.s1 f11=f14, f11			    //113 	cc:44
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0320 
	getf.sig r19=f11;;				    //113 	cc:48
	st4	[r18]=r19				    //113 	cc:53
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0330 
	adds	r17=dwRet$, sp				    //114 	cc:0
	adds	r15=dwRet$, sp				    //114 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0340 
	ld4	r16=[r17];;				    //114 	cc:1
	st4	[r15]=r16				    //114 	cc:2
	nop.i	 0;;
 }
$LN1@GetMsecSin:

// 115  :     }
// 116  :     return dwRet;
// 117  : }

 {   .mmi  //R-Addr: 0X0350 
	adds	r11=dwRet$, sp;;			    //116 	cc:0
	ld4	r8=[r11]				    //116 	cc:1
	nop.i	 0;;
 }
 {   .mii  //R-Addr: 0X0360 
	adds	sp=80, sp				    //117 	cc:0, 00000050H
	mov.ret	b0=r34;;				    //117 	cc:0
	mov.i	ar.pfs=r35				    //117 	cc:1
 }
 {   .mmb  //R-Addr: 0X0370 
	nop.m	 0
	nop.m	 0
	br.ret.sptk.many b0;;				    //117 	cc:1
 }
// End code for function:
	.endp	GetMsecSincePerfCounter#
	.type	ReadFileMemory#	,@function 
        .global ReadFileMemory#
	.type	__imp_fclose#	,@function 
        .global __imp_fclose#
	.type	__imp_fread#	,@function 
        .global __imp_fread#
	.type	__imp_malloc#	,@function 
        .global __imp_malloc#
	.type	__imp_ftell#	,@function 
        .global __imp_ftell#
	.type	__imp_fseek#	,@function 
        .global __imp_fseek#
	.type	__imp_fopen#	,@function 
        .global __imp_fopen#
	.section	.pdata
$T80468: data4	@imagerel($LN7@ReadFileMe#)
	data4	@imagerel($LN7@ReadFileMe#+1056)
	data4	@imagerel($T80466#)
	.section	.xdata
	.skip 8
$T80466: data2	03H
	data2	00H
	data4	03H
	string	"\x0d"		//R1:prologue size 13
	string	"\xe6\x00"	//P7:pfs_when time 0
	string	"\xb1\x24"	//P3:pfs_gr 36
	string	"\xe0\x01\x06"	//P7:mem_stack_f time 1 size 6
	string	"\xe4\x02"	//P7:rp_when time 2
	string	"\xb0\xa3"	//P3:rp_gr 35
	string	"\x61\xb9\x01"	//R3:body size 185
	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: ReadFileMemory:
	.proc	ReadFileMemory#
	.align 32
retVal$	= 16
stream$	= 24
ptr$	= 32
$T80462	= 40
$T80463	= 48
$T80464	= 56
$T80465	= 64
filename$	= 80
plFileSize$	= 88
pFilePtr$	= 96
ReadFileMemory:	
// filename$ = r32
// plFileSize$ = r33
// pFilePtr$ = r34
// Output regs: r38-r41
$LN7@ReadFileMe:

// 120  : {
// 121  :     FILE* stream;
// 122  :     void* ptr;
// 123  :     int retVal=1;
// 124  :     stream=fopen(filename, "rb");
// 125  :     if (stream==NULL)

 {   .mmi  //R-Addr: 0X00 
	alloc	r36=3, 3, 4, 0				    //120 	cc:0
	adds	sp=-96, sp				    //120 	cc:0, ffffffa0H
	mov	r35=b0					    //120 	cc:0
 }
 {   .mmi  //R-Addr: 0X010 
	mov	r37=gp;;				    //120 	cc:0
	ld8.nta	r2=[sp]					    //120 	cc:1
	adds	r31=filename$, sp
 }
 {   .mib  //R-Addr: 0X020 
	adds	r30=plFileSize$, sp
	adds	r29=pFilePtr$, sp
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X030 
	st8	[r31]=r32
	st8	[r30]=r33
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X040 
	st8	[r29]=r34;;
	mov	r28=1					    //123 	cc:0
	adds	r27=retVal$, sp;;			    //123 	cc:0
 }
 {   .mmi  //R-Addr: 0X050 
	st4	[r27]=r28;;				    //123 	cc:1
	addl	r25=@gprel(__imp_fopen#),gp		    //124 	cc:0
	addl	r39=@gprel($SG80305#),gp		    //124 	cc:0
 }
 {   .mmi  //R-Addr: 0X060 
	adds	r26=filename$, sp;;			    //124 	cc:0
	ld8	r22=[r25]				    //124 	cc:1
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X070 
	ld8	r38=[r26];;				    //124 	cc:1
	ld8	r21=[r22], 8				    //124 	cc:3
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X080 
	ld8	gp=[r22]				    //124 	cc:4
	mov	b6=r21					    //124 	cc:4
	br.call.dptk.many b0=b6;;			    //124 	cc:4
 }
 {   .mmi  //R-Addr: 0X090 
	adds	r20=$T80462, sp				    //124 	cc:15
	adds	r19=$T80462, sp				    //124 	cc:15
	adds	r17=stream$, sp				    //124 	cc:15
 }
 {   .mmi  //R-Addr: 0X0a0 
	mov	gp=r37;;				    //124 	cc:15
	st8	[r20]=r8				    //124 	cc:16
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X0b0 
	ld8	r18=[r19];;				    //124 	cc:16
	st8	[r17]=r18				    //124 	cc:17

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -