   quick ASM question
  Ok, i've been fiddling with some ASM code, and I still really suck at it :P but, what am I doing wrong here? Why doesn't this compile?[source="cpp"]int length = 0;char names[10];cout << "Enter your name:";cin >> names;length = strlen(names);length -= 3;__asm{mov ECX,length <- error on this lineLEA EDI,names}I am using VS 2005 pro. I get this compile error:error C2400: inline assembler syntax error in 'second operand'; found 'newline'Also, again probably a dumb question, how do I grab data from a register?int blah;__asm{MOV blah,EAX ; mov from eax to blah}Is that right? Anyways, thanks for the help, asm is pretty overwhelming!   
  the problem with your code is the name of the variable length. instead change it to a name like x(or to any other that you wish) and it will work. legnth is a function name depending on the implementation of c++ you are using. microsoft compilers assume this. int x = 0;char names[10];cout > names;x = strlen(names);x -= 3; _asm{mov ECX,xLEA EDI,names};  hmmm. bizzare. would never have guess that! Cheers!   ;  OP: As to your second question, reverse the operands.  When using Intel syntax, the destination operand always comes first; even when there are three.  And keep in mind that you can specify explicitly the size of the move.  By default, it'll be the size of the register used.  Moreover, unless you have a 64-bit processor, that move to EAX will be 32-bit.   