如题,变量A,B进行互换,但不许使用第三个中间变量,如何实现?

  • 标 题: 答复
  • 作 者:shoooo
  • 时 间:2007-05-21 10:32

假设a b 不等
a = a^b
b = b^a
a = a^b

  • 标 题: 答复
  • 作 者:nig
  • 时 间:2007-05-21 11:03

delphi

asm
  mov eax, A
  mov edx,B
  xchg eax,edx
  mov A,Eax
  mov B,Edx
end;

  • 标 题: 答复
  • 作 者:peaceclub
  • 时 间:2007-05-21 11:23

push a
push b
pop a
pop b

  • 标 题: 答复
  • 作 者:peaceclub
  • 时 间:2007-05-21 12:01

引用:

最初由 nig发布 (帖子 312346)
delphi

asm
  mov eax, A
  mov edx,B
  xchg eax,edx
  mov A,Eax
  mov B,Edx
end;

既然这样了,为什么不如此操作?

代码:

asm
  mov eax,A
  mov edx,B
  mov A,edx
  mov B,eax
end;

如果是A,B是独立数的话,也可以:
  A=A+B
  B=A-B
  A=A-B