mov %eax,(%esp)

Каква е разликата между следните твърдения?

mov %eax,%esp
mov %eax,(%esp)

Работя върху разпространението на двоична бомба и имам проблеми с някои от командите mov и leal в началото на асемблирането.


person arc    schedule 19.10.2012    source източник
comment
Човек копира регистъра. Другото се зарежда от паметта, към която сочи.   -  person Mysticial    schedule 19.10.2012
comment
@Mysticial: Това е синтаксисът на AT&T, така че всичко е обратно -- %esp и (%esp) са дестинациите, а не източниците.   -  person Jerry Coffin    schedule 19.10.2012
comment
@JerryCoffin AHHHH!!! Винаги попадам на този капан...   -  person Mysticial    schedule 19.10.2012


Отговори (1)


Това копира стойността в %eax в %esp.

mov %eax,%esp

Това копира стойността от %eax в мястото в паметта, към което сочи %esp.

mov %eax,(%esp)
person Dirk Holsopple    schedule 19.10.2012
comment
Последният по същество е pop eax без декремента на esp - person Goaler444; 11.07.2016