📄 trees.asm
字号:
data1 04H
data1 05H
data1 06H
data1 07H
data1 08H
data1 08H
data1 09H
data1 09H
data1 0aH
data1 0aH
data1 0bH
data1 0bH
data1 0cH
data1 0cH
data1 0cH
data1 0cH
data1 0dH
data1 0dH
data1 0dH
data1 0dH
data1 0eH
data1 0eH
data1 0eH
data1 0eH
data1 0fH
data1 0fH
data1 0fH
data1 0fH
data1 010H
data1 010H
data1 010H
data1 010H
data1 010H
data1 010H
data1 010H
data1 010H
data1 011H
data1 011H
data1 011H
data1 011H
data1 011H
data1 011H
data1 011H
data1 011H
data1 012H
data1 012H
data1 012H
data1 012H
data1 012H
data1 012H
data1 012H
data1 012H
data1 013H
data1 013H
data1 013H
data1 013H
data1 013H
data1 013H
data1 013H
data1 013H
data1 014H
data1 014H
data1 014H
data1 014H
data1 014H
data1 014H
data1 014H
data1 014H
data1 014H
data1 014H
data1 014H
data1 014H
data1 014H
data1 014H
data1 014H
data1 014H
data1 015H
data1 015H
data1 015H
data1 015H
data1 015H
data1 015H
data1 015H
data1 015H
data1 015H
data1 015H
data1 015H
data1 015H
data1 015H
data1 015H
data1 015H
data1 015H
data1 016H
data1 016H
data1 016H
data1 016H
data1 016H
data1 016H
data1 016H
data1 016H
data1 016H
data1 016H
data1 016H
data1 016H
data1 016H
data1 016H
data1 016H
data1 016H
data1 017H
data1 017H
data1 017H
data1 017H
data1 017H
data1 017H
data1 017H
data1 017H
data1 017H
data1 017H
data1 017H
data1 017H
data1 017H
data1 017H
data1 017H
data1 017H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 018H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 019H
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01aH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01bH
data1 01cH
base_length:
data4 00H
data4 01H
data4 02H
data4 03H
data4 04H
data4 05H
data4 06H
data4 07H
data4 08H
data4 0aH
data4 0cH
data4 0eH
data4 010H
data4 014H
data4 018H
data4 01cH
data4 020H
data4 028H
data4 030H
data4 038H
data4 040H
data4 050H
data4 060H
data4 070H
data4 080H
data4 0a0H
data4 0c0H
data4 0e0H
data4 00H
.skip 12
base_dist:
data4 00H
data4 01H
data4 02H
data4 03H
data4 04H
data4 06H
data4 08H
data4 0cH
data4 010H
data4 018H
data4 020H
data4 030H
data4 040H
data4 060H
data4 080H
data4 0c0H
data4 0100H
data4 0180H
data4 0200H
data4 0300H
data4 0400H
data4 0600H
data4 0800H
data4 0c00H
data4 01000H
data4 01800H
data4 02000H
data4 03000H
data4 04000H
data4 06000H
.type _tr_init# ,@function
.global _tr_init#
.section .pdata
$T79578: data4 @imagerel($LN3@tr_init#)
data4 @imagerel($LN3@tr_init#+496)
data4 @imagerel($T79576#)
.section .xdata
$T79576: data2 03H
data2 00H
data4 03H
string "\x07" //R1:prologue size 7
string "\xe6\x00" //P7:pfs_when time 0
string "\xb1\x22" //P3:pfs_gr 34
string "\xe4\x01" //P7:rp_when time 1
string "\xb0\xa1" //P3:rp_gr 33
string "\xe0\x02\x01" //P7:mem_stack_f time 2 size 1
string "\x61\x56" //R3:body size 86
string "\x81" //B1:label_state 1
string "\xc0\x05" //B2:ecount 0 time 5
string "\x00\x00\x00\x00\x00\x00\x00" //padding
// Function compile flags: /Odtp
// File f:\study\wincezip\dll\trees.c
.section .text
// Begin code for function: _tr_init:
.proc _tr_init#
.align 32
s$ = 16
_tr_init:
// s$ = r32
// Output regs: r35-r35
$LN3@tr_init:
// 384 : {
// 385 : tr_static_init();
// 386 :
// 387 : s->l_desc.dyn_tree = s->dyn_ltree;
// 388 : s->l_desc.stat_desc = &static_l_desc;
// 389 :
// 390 : s->d_desc.dyn_tree = s->dyn_dtree;
// 391 : s->d_desc.stat_desc = &static_d_desc;
// 392 :
// 393 : s->bl_desc.dyn_tree = s->bl_tree;
// 394 : s->bl_desc.stat_desc = &static_bl_desc;
// 395 :
// 396 : s->bi_buf = 0;
// 397 : s->bi_valid = 0;
// 398 : s->last_eob_len = 8; /* enough lookahead for inflate */
// 399 : #ifdef DEBUG
// 400 : s->compressed_len = 0L;
// 401 : s->bits_sent = 0L;
// 402 : #endif
// 403 :
// 404 : /* Initialize the first block of the first file: */
// 405 : init_block(s);
// 406 : }
{ .mii //R-Addr: 0X00
alloc r34=1, 2, 1, 0 //384 cc:0
mov r33=b0 //384 cc:0
adds sp=-16, sp;; //384 cc:0
}
{ .mib //R-Addr: 0X010
ld8.nta r2=[sp] //384 cc:1
adds r31=s$, sp
nop.b 0;;
}
{ .mmb //R-Addr: 0X020
st8 [r31]=r32
nop.m 0
br.call.sptk.few b0=tr_static_init#;; //385 cc:0
}
{ .mib //R-Addr: 0X030
adds r30=s$, sp //387 cc:0
adds r27=s$, sp //387 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X040
ld8 r29=[r30] //387 cc:1
ld8 r26=[r27] //387 cc:1
nop.b 0;;
}
{ .mib //R-Addr: 0X050
adds r28=188, r29 //387 cc:2, 000000bcH
adds r25=2880, r26 //387 cc:2, 00000b40H
nop.b 0;;
}
{ .mmi //R-Addr: 0X060
st8 [r25]=r28;; //387 cc:3
adds r22=s$, sp //388 cc:0
addl r19=@ltoff(static_l_desc#),gp;; //388 cc:0
}
{ .mmb //R-Addr: 0X070
ld8 r21=[r22] //388 cc:1
ld8 r18=[r19] //388 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X080
adds r20=2896, r21;; //388 cc:2, 00000b50H
st8 [r20]=r18 //388 cc:3
nop.i 0;;
}
{ .mib //R-Addr: 0X090
adds r17=s$, sp //390 cc:0
adds r11=s$, sp //390 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X0a0
ld8 r16=[r17] //390 cc:1
ld8 r10=[r11] //390 cc:1
nop.b 0;;
}
{ .mib //R-Addr: 0X0b0
adds r15=2480, r16 //390 cc:2, 000009b0H
adds r9=2904, r10 //390 cc:2, 00000b58H
nop.b 0;;
}
{ .mmi //R-Addr: 0X0c0
st8 [r9]=r15;; //390 cc:3
adds r8=s$, sp //391 cc:0
addl r29=@ltoff(static_d_desc#),gp;; //391 cc:0
}
{ .mmb //R-Addr: 0X0d0
ld8 r31=[r8] //391 cc:1
ld8 r28=[r29] //391 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X0e0
adds r30=2920, r31;; //391 cc:2, 00000b68H
st8 [r30]=r28 //391 cc:3
nop.i 0;;
}
{ .mib //R-Addr: 0X0f0
adds r27=s$, sp //393 cc:0
adds r22=s$, sp //393 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X0100
ld8 r26=[r27] //393 cc:1
ld8 r21=[r22] //393 cc:1
nop.b 0;;
}
{ .mib //R-Addr: 0X0110
adds r25=2724, r26 //393 cc:2, 00000aa4H
adds r20=2928, r21 //393 cc:2, 00000b70H
nop.b 0;;
}
{ .mmi //R-Addr: 0X0120
st8 [r20]=r25;; //393 cc:3
adds r19=s$, sp //394 cc:0
addl r16=@ltoff(static_bl_desc#),gp;; //394 cc:0
}
{ .mmb //R-Addr: 0X0130
ld8 r18=[r19] //394 cc:1
ld8 r15=[r16] //394 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X0140
adds r17=2944, r18;; //394 cc:2, 00000b80H
st8 [r17]=r15 //394 cc:3
nop.i 0;;
}
{ .mmi //R-Addr: 0X0150
adds r11=s$, sp;; //396 cc:0
ld8 r10=[r11] //396 cc:1
nop.i 0;;
}
{ .mmi //R-Addr: 0X0160
adds r9=5904, r10;; //396 cc:2, 00001710H
st2 [r9]=r0 //396 cc:3
nop.i 0;;
}
{ .mmi //R-Addr: 0X0170
adds r8=s$, sp;; //397 cc:0
ld8 r31=[r8] //397 cc:1
nop.i 0;;
}
{ .mmi //R-Addr: 0X0180
adds r30=5908, r31;; //397 cc:2, 00001714H
st4 [r30]=r0 //397 cc:3
nop.i 0;;
}
{ .mib //R-Addr: 0X0190
adds r29=s$, sp //398 cc:0
mov r26=8 //398 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X01a0
ld8 r28=[r29];; //398 cc:1
adds r27=5900, r28 //398 cc:2, 0000170cH
nop.i 0;;
}
{ .mmi //R-Addr: 0X01b0
st4 [r27]=r26;; //398 cc:3
adds r25=s$, sp //405 cc:0
nop.i 0;;
}
{ .mmb //R-Addr: 0X01c0
ld8 r35=[r25] //405 cc:1
nop.m 0
br.call.sptk.few b0=init_block#;; //405 cc:1
}
{ .mii //R-Addr: 0X01d0
adds sp=16, sp //406 cc:0
mov.ret b0=r33;; //406 cc:0
mov.i ar.pfs=r34 //406 cc:1
}
{ .mmb //R-Addr: 0X01e0
nop.m 0
nop.m 0
br.ret.sptk.many b0;; //406 cc:1
}
// End code for function:
.endp _tr_init#
// Function compile flags: /Odtp
// Begin code for function: tr_static_init:
.proc tr_static_init#
.align 32
tr_static_init:
// Output regs: None
// 316 : }
{ .mmb //R-Addr: 0X00
nop.m 0
nop.m 0
br.ret.sptk.many b0;; //316 cc:0
}
// End code for function:
.endp tr_static_init#
.section .pdata
$T79582: data4 @imagerel(init_block#)
data4 @imagerel(init_block#+784)
data4 @imagerel($T79581#)
.section .xdata
.skip 8
$T79581: data2 03H
data2 00H
data4 02H
string "\x04" //R1:prologue size 4
string "\xe0\x00\x01" //P7:mem_stack_f time 0 size 1
string "\x61\x8f\x01" //R3:body size 143
string "\x81" //B1:label_state 1
string "\xc0\x02" //B2:ecount 0 time 2
string "\x00\x00\x00\x00\x00\x00" //padding
// Function compile flags: /Odtp
.section .text
// Begin code for function: init_block:
.proc init_block#
.align 32
n$ = 0
s$ = 16
init_block:
// s$ = r32
// Output regs: None
// 413 : {
// 414 : int n; /* iterates over tree elements */
// 415 :
// 416 : /* Initialize the trees. */
// 417 : for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0;
{ .mmi //R-Addr: 0X00
adds sp=-16, sp;; //413 cc:0
adds r31=s$, sp
nop.i 0;;
}
{ .mmi //R-Addr: 0X010
st8 [r31]=r32;;
adds r30=n$, sp //417 cc:0
nop.i 0;;
}
{ .mmb //R-Addr: 0X020
st4 [r30]=r0 //417 cc:1
nop.m 0
br.cond.sptk.few $LN9@init_block#;; //417 cc:1
}
$LN8@init_block:
// 417 : for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0;
{ .mib //R-Addr: 0X030
adds r29=n$, sp //417 cc:0
adds r26=n$, sp //417 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X040
ld4 r28=[r29];; //417 cc:1
adds r27=1, r28 //417 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X050
st4 [r26]=r27 //417 cc:3
nop.m 0
nop.b 0;;
}
$LN9@init_block:
// 417 : for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0;
{ .mib //R-Addr: 0X060
adds r25=n$, sp //417 cc:0
mov r21=286 //417 cc:0, 0000011eH
nop.b 0;;
}
{ .mmi //R-Addr: 0X070
ld4 r22=[r25];; //417 cc:1
cmp4.le.unc p14,p15=r21, r22 //417 cc:2
nop.i 0
}
{ .mmb //R-Addr: 0X080
nop.m 0
nop.m 0
(p14) br.cond.dptk.few $LN7@init_block#;; //417 cc:2
}
// 417 : for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0;
{ .mib //R-Addr: 0X090
adds r17=n$, sp //417 cc:3
adds r20=s$, sp //417 cc:3
nop.b 0;;
}
{ .mmb //R-Addr: 0X0a0
ld4 r16=[r17] //417 cc:4
ld8 r19=[r20] //417 cc:4
nop.b 0;;
}
{ .mii //R-Addr: 0X0b0
adds r18=188, r19 //417 cc:5, 000000bcH
sxt4 r15=r16;; //417 cc:5
shl r11=r15, 2;; //417 cc:6
}
{ .mmi //R-Addr: 0X0c0
add r10=r18, r11;; //417 cc:7
st2 [r10]=r0 //417 cc:8
nop.i 0
}
{ .mmb //R-Addr: 0X0d0
nop.m 0
nop.m 0
br.cond.sptk.few $LN8@init_block#;; //417 cc:8
}
$LN7@init_block:
// 418 : for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0;
{ .mmi //R-Addr: 0X0e0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -