📄 disassembler.pas.bakup
字号:
last:=sibbyte+1;
end;
$9b : begin
result:='EBX+EBX*4';
last:=sibbyte+1;
end;
$9c : begin
result:='ESP+EBX*4';
last:=sibbyte+1;
end;
$9d : begin
dwordptr:=@memory[sibbyte+1];
case getmod(memory[sibbyte-1]) of
0 : begin
last:=sibbyte+1;
result:='EBX*4+$'+IntToHex(dwordptr^,8);
end;
1 : begin
last:=sibbyte+2;
result:='EBP+EBX*4';
end;
2 : begin
last:=sibbyte+1;
result:='EBP+EBX*4';
end;
3 : begin
result:='error';
end;
end;
end;
$9e : begin
result:='ESI+EBX*4';
last:=sibbyte+1;
end;
$9f : begin
result:='EDI+EBX*4';
last:=sibbyte+1;
end;
//a0-a7 see 20-27
//a8-af
$a8 : begin
result:='EAX+EBP*4';
last:=sibbyte+1;
end;
$a9 : begin
result:='ECX+EBP*4';
last:=sibbyte+1;
end;
$aa : begin
result:='EDX+EBP*4';
last:=sibbyte+1;
end;
$ab : begin
result:='EBX+EBP*4';
last:=sibbyte+1;
end;
$ac : begin
result:='ESP+EBP*4';
last:=sibbyte+1;
end;
$ad : begin
dwordptr:=@memory[sibbyte+1];
case getmod(memory[sibbyte-1]) of
0 : begin
last:=sibbyte+1;
result:='EBP*4+$'+IntToHex(dwordptr^,8);
end;
1 : begin
last:=sibbyte+2;
result:='EBP+EBP*4';
end;
2 : begin
last:=sibbyte+1;
result:='EBP+EBP*4';
end;
3 : begin
result:='error';
end;
end;
end;
$ae : begin
result:='ESI+EBP*4';
last:=sibbyte+1;
end;
$af : begin
result:='EDI+EBP*4';
last:=sibbyte+1;
end;
//b0-b7
$b0 : begin
result:='EAX+ESI*4';
last:=sibbyte+1;
end;
$b1 : begin
result:='ECX+ESI*4';
last:=sibbyte+1;
end;
$b2 : begin
result:='EDX+ESI*4';
last:=sibbyte+1;
end;
$b3 : begin
result:='EBX+ESI*4';
last:=sibbyte+1;
end;
$b4 : begin
result:='ESP+ESI*4';
last:=sibbyte+1;
end;
$b5 : begin
dwordptr:=@memory[sibbyte+1];
case getmod(memory[sibbyte-1]) of
0 : begin
last:=sibbyte+1;
result:='ESI*4+$'+IntToHex(dwordptr^,8);
end;
1 : begin
last:=sibbyte+2;
result:='EBP+ESI*4';
end;
2 : begin
last:=sibbyte+1;
result:='EBP+ESI*4';
end;
3 : begin
result:='error';
end;
end;
end;
$b6 : begin
result:='ESI+ESI*4';
last:=sibbyte+1;
end;
$b7 : begin
result:='EDI+ESI*4';
last:=sibbyte+1;
end;
//b8-bf
$b8 : begin
result:='EAX+EDI*4';
last:=sibbyte+1;
end;
$b9 : begin
result:='ECX+EDI*4';
last:=sibbyte+1;
end;
$ba : begin
result:='EDX+EDI*4';
last:=sibbyte+1;
end;
$bb : begin
result:='EBX+EDI*4';
last:=sibbyte+1;
end;
$bc : begin
result:='ESP+EDI*4';
last:=sibbyte+1;
end;
$bd : begin
dwordptr:=@memory[sibbyte+1];
case getmod(memory[sibbyte-1]) of
0 : begin
last:=sibbyte+1;
result:='EDI*4+$'+IntToHex(dwordptr^,8);
end;
1 : begin
last:=sibbyte+2;
result:='EBP+EDI*4';
end;
2 : begin
last:=sibbyte+1;
result:='EBP+EDI*4';
end;
3 : begin
result:='error';
end;
end;
end;
$be : begin
result:='ESI+EDI*4';
last:=sibbyte+1;
end;
$bf : begin
result:='EDI+EDI*4';
last:=sibbyte+1;
end;
//c0-ff same as 80-bf but with 8* instead of 4*
$c0 : begin
result:='EAX+EAX*8';
last:=sibbyte+1;
end;
$c1 : begin
result:='ECX+EAX*8';
last:=sibbyte+1;
end;
$c2 : begin
result:='EDX+EAX*8';
last:=sibbyte+1;
end;
$c3 : begin
result:='EBX+EAX*8';
last:=sibbyte+1;
end;
$c4 : begin
result:='ESP+EAX*8';
last:=sibbyte+1;
end;
$c5 : begin
dwordptr:=@memory[sibbyte+1];
case getmod(memory[sibbyte-1]) of
0 : begin
last:=sibbyte+1;
result:='EAX*8+$'+IntToHex(dwordptr^,8);
end;
1 : begin
last:=sibbyte+2;
result:='EBP+EAX*8';
end;
2 : begin
last:=sibbyte+1;
result:='EBP+EAX*8';
end;
3 : begin
result:='error';
end;
end;
end;
$c6 : begin
result:='ESI+EAX*8';
last:=sibbyte+1;
end;
$c7 : begin
result:='EDI+EAX*8';
last:=sibbyte+1;
end;
//88-8f
$c8 : begin
result:='EAX+ECX*8';
last:=sibbyte+1;
end;
$c9 : begin
result:='ECX+ECX*8';
last:=sibbyte+1;
end;
$ca : begin
result:='EDX+ECX*8';
last:=sibbyte+1;
end;
$cb : begin
result:='EBX+ECX*8';
last:=sibbyte+1;
end;
$cc : begin
result:='ESP+ECX*8';
last:=sibbyte+1;
end;
$cd : begin
dwordptr:=@memory[sibbyte+1];
case getmod(memory[sibbyte-1]) of
0 : begin
last:=sibbyte+1;
result:='ECX*8+$'+IntToHex(dwordptr^,8);
end;
1 : begin
last:=sibbyte+2;
result:='EBP+ECX*8';
end;
2 : begin
last:=sibbyte+1;
result:='EBP+ECX*8';
end;
3 : begin
result:='error';
end;
end;
end;
$ce : begin
result:='ESI+ECX*8';
last:=sibbyte+1;
end;
$cf : begin
result:='EDI+ECX*8';
last:=sibbyte+1;
end;
//90-97
$d0 : begin
result:='EAX+EDX*8';
last:=sibbyte+1;
end;
$d1 : begin
result:='ECX+EDX*8';
last:=sibbyte+1;
end;
$d2 : begin
result:='EDX+EDX*8';
last:=sibbyte+1;
end;
$d3 : begin
result:='EBX+EDX*8';
last:=sibbyte+1;
end;
$d4 : begin
result:='ESP+EDX*8';
last:=sibbyte+1;
end;
$d5 : begin
dwordptr:=@memory[sibbyte+1];
case getmod(memory[sibbyte-1]) of
0 : begin
last:=sibbyte+1;
result:='EDX*8+$'+IntToHex(dwordptr^,8);
end;
1 : begin
last:=sibbyte+2;
result:='EBP+EDX*8';
end;
2 : begin
last:=sibbyte+1;
result:='EBP+EDX*8';
end;
3 : begin
result:='error';
end;
end;
end;
$d6 : begin
result:='ESI+EDX*8';
last:=sibbyte+1;
end;
$d7 : begin
result:='EDI+EDX*8';
last:=sibbyte+1;
end;
//98-9f
$d8 : begin
result:='EAX+EBX*8';
last:=sibbyte+1;
end;
$d9 : begin
result:='ECX+EBX*8';
last:=sibbyte+1;
end;
$da : begin
result:='EDX+EBX*8';
last:=sibbyte+1;
end;
$db : begin
result:='EBX+EBX*8';
last:=sibbyte+1;
end;
$dc : begin
result:='ESP+EBX*8';
last:=sibbyte+1;
end;
$dd : begin
dwordptr:=@memory[sibbyte+1];
case getmod(memory[sibbyte-1]) of
0 : begin
last:=sibbyte+1;
result:='EBX*8+$'+IntToHex(dwordptr^,8);
end;
1 : begin
last:=sibbyte+2;
result:='EBP+EBX*8';
end;
2 : begin
last:=sibbyte+1;
result:='EBP+EBX*8';
end;
3 : begin
result:='error';
end;
end;
end;
$de : begin
result:='ESI+EBX*8';
last:=sibbyte+1;
end;
$df : begin
result:='EDI+EBX*8';
last:=sibbyte+1;
end;
//a0-a7 see 20-27
//a8-af
$e8 : begin
result:='EAX+EBP*8';
last:=sibbyte+1;
end;
$e9 : begin
result:='ECX+EBP*8';
last:=sibbyte+1;
end;
$ea : begin
result:='EDX+EBP*8';
last:=sibbyte+1;
end;
$eb : begin
result:='EBX+EBP*8';
last:=sibbyte+1;
end;
$ec : begin
result:='ESP+EBP*8';
last:=sibbyte+1;
end;
$ed : begin
dwordptr:=@memory[sibbyte+1];
case getmod(memory[sibbyte-1]) of
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -