Firstly I would not recomed starting with anything as complicated as a x86 chip, and certainly not a 64bit one.
I learned assembly on the 8bit Z80 (which was used to power the sinclair spectrum!). - actually we went right down to wire
programming, and my Alevel electronics included a whole section on this.
and went on to learn on the 8bit motorolla 68HC11 whilst I was at uni...
Programming in assembaly is a lengthy task, you haav to think in flow charts, from instance to add two numbers together, firstly you have to read the numbers at the chit port. load the number into an accumulator, look at the port again for the second number, store that number in a different accumulator, add the numbers together.
Read the number from the accumulator, move the number to the output port.
How I learned, and what I consider the easiest way to learn, is to have a rough tutorial on the principals and architecture of the specific chip you are programming for. Go to the manufacturues website, manuals are usually available for download which will tell you everything about the chip from it's dimensions and opperating tolerances right down to the amount of excecutions per second, and the block archtecture of the device, and memory locations.
On the manufactures site you should also find a manual of op-codes, with an explenations descritption, and example of what how why and when each instruction does what it does.
I feel a better place to start with learning machine code, and specifically programming directly to the chips you should use Motorolla based, rather than intel chips as they are 'memory mapped' rather than port mapped, this allows you to treat input and output ports as direct memory locations rather than having to read through buffers.
(it's easier to programme in C and then use a compiler, - the compiler I currently have installed is PIC-C www.ccsinfo.com/picc.shtml
but yuo have to pay for this, however I can also recomend cosmic http://www.cosmic-software.com/
What is the project? can you post details here so we can all throw in suggestions and or have a stab at submitting code?