这个代码如何写???(100)

  • 主题发起人 主题发起人 wksdgy
  • 开始时间 开始时间
W

wksdgy

Unregistered / Unconfirmed
GUEST, unregistred user!
已知INTEGER变量A,B ,其中 A:=1,B:=2要求写一段代码,不增加任何变量的情况下实现A=2 ,B=1如何写??
 
网上搜一下,很经典的
 
asm mov eax, a // a(1)->eax mov edx, b mov a, edx mov b, eax pop eax pop edx end;
 
var a,b: Integer;begin a := 1; b := 2; PByte(PChar(@a)+1)^ := PByte(@b)^; PByte(@b)^ := PByte(@a)^; PByte(@a)^ := PByte(PChar(@a)+1)^; PByte(PChar(@a)+1)^ := 0; ShowMessage(IntToStr(a)); ShowMessage(IntToStr(b));
 
BS用寄存器做变量的
 
A:=A+B;B:=A-B;A:=A-B;
 
后退
顶部