program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils,windows;
var
i,j:integer; //i,j全局变量。
begin
i:=123;
j:=323;
if i<j then
Writeln(i)
else
writeln(j);
readln;
end.
00408316 . BB 7B000000 mov ebx,7B ; i=123
0040831B . BE 43010000 mov esi,143 ; j=234
00408320 . 3BF3 cmp esi,ebx ; 比较i j
00408322 . 7E 18 jle short Project2.0040833C ; 如果i<=j 则跳到 40833C
00408324 . A1 04934000 mov eax,dword ptr ds:[409304]
00408329 . 8BD3 mov edx,ebx
0040832B . E8 88AAFFFF call Project2.00402DB8
00408330 . E8 B3AAFFFF call Project2.00402DE8
00408335 . E8 F2A2FFFF call Project2.0040262C ; 这三行实现了writeln
0040833A . EB 16 jmp short Project2.00408352 ;执行完上面的语句就要跳过下面的一些语句。直接到下面加粗的与语句中去。
0040833C > A1 04934000 mov eax,dword ptr ds:[409304]
00408341 . 8BD6 mov edx,esi
00408343 . E8 70AAFFFF call Project2.00402DB8
00408348 . E8 9BAAFFFF call Project2.00402DE8
0040834D . E8 DAA2FFFF call Project2.0040262C
00408352 > A1 70934000 mov eax,dword ptr ds:[409370]
程序用esi 和ebx存储i和j。