I am trying to understand assembly and buffer overflows on a 64bit Intel i7 machine. I am having a lot of questions. I asked on SO but I don't have any satisfactory answers. I also don't get why there are MOV instructions to EEDI, ESI and EDI instead of PUSH instructions. Perhaps I should understand assembly on modern architectures first. Can anyone answer my qustions and point me to right learning resources for modern architectures? (I am asking here because people doing REing do have knowledge about assembly and are more targeted audience as compared to the broader audience on SO)

  • They answers seemed good to me on SO. I think you just failed to understand them. Jun 29, 2014 at 1:39
  • 3
    I'm down voting at it's not really a RE question and you got answers on SO and you could have asked for clarification over there. Jun 29, 2014 at 1:41
  • Ok. Thanks. I'll try to understand it. But I asked a lot of questions and I was told only about what's CFI and CFA. :-/
    – Pervy Sage
    Jun 29, 2014 at 4:29
  • 3
    The general point is to ask a question at a time not seventeen. This way people can answer and know the question is done. Jun 29, 2014 at 5:20
  • 1
    in x64 the first four arguments are passed via registers so the argument 1,2,3 are moved to the registers do a function that is function (a,b,c,d,e,f,g) and you might see e being pushed into stack or moved into stack
    – blabb
    Jun 29, 2014 at 8:24

2 Answers 2


I think PC Assembly Language from Paul Carter is a good starting point: http://www.drpaulcarter.com/pcasm/

Kind regards


Not the answer you're looking for? Browse other questions tagged or ask your own question.