delphi中if 与else

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。

原文地址:https://www.cnblogs.com/ayhsoft/p/3151773.html