why?

I assume you mean 64-bit processors. The answer is yes because they are still in the x86 family of processors. Intel didn't completly replace the 32 and 16-bit processors, they added to them. 64 and 32 bit processors still use the 16 and 8 bit processor instruction set.

sure?because some book said that x32 and x64 are totally different when it comes to assembly programming

Which book, and in what context? Are you certain it wasn't discussing Itanium processors (IA-64, Intel's first attempt at a 64-bit successor to the IA-32 line - better known as x86), rather than x86-64 processors? The former are indeed very different from the x86 series CPUs, but they never gained a real foothold for precisely that reason (among other things). The x86-64 design, which was developed by AMD and only adopted by Intel much later when it looked like they would be knocked out of their own market, is a derivative of the x86 line, and while there are significant differences, they are still based on the x86 architecture.

Assembly Language Step-by-Step Programming with DOS and Linux by Jeff duntamen.It is an old book.Like around 2000 !

because I wanted to understand how do computers actually work,I started learning assembly.Like how memory,processor work etc.. .It is good to know those before learning a High level language...

Assembly Language Step-by-Step Programming with DOS and Linux by Jeff duntamen.It is an old book.Like around 2000 !

Ah, that explains it. It's an excellent textbook, but that edition came out before the x86-64 line was introduced; it was talking about Itanium, which was brand-new at the time.

because I wanted to understand how do computers actually work,I started learning assembly.Like how memory,processor work etc.. .It is good to know those before learning a High level language...

Yes and no... every programmer is different, and what some people find helpful others might not. If it works for you, though, I would stick with it. Keep in mind that much of what he talks about in that version of the book is specific to real mode, which isn't very relevant to most modern programming even in assembly.

as long as I would be able to create programs using his books for modern computers ,It doesn't matter. Will I be able to do that with his book?then learn 64bit from another book(thinking there is no BIG difference between modern x64 and x32))?

Someone will still need to program buttons on calculators where each button will be at least as powerful as the 8086 processor.

LOL

Yes there IS a really BIG difference writing 64bit Assembly code verses 32bit code. Especially when it comes to Windows Programming (I am sure Linux is the same). You have a different calling convention, "shadow space", more memory addresses, more registers, stack should be/has to be aligned.

Learn 32bit first to get a firm understanding of how memory, cpu, program flow works. Then lean 64bit, skip 16bit it is dead.

skip 16bit it is dead

I wouldn't be so definite. 16-bit is very well around (and, ugh, 8-bit too). Their niches are very specific indeed, but really, 8-bit is the only area where assembly programming skills still have value.

Yes, and also when writing an OS/boot loader. Unless a newbie is going to write an OS, they are better off at the beginning to skip 16bit unless they really need it, it is a PITA to learn verses 32bit.

Ok thanks everyone! :)

>>skip 16bit it is dead

Skip 16-bit programs yes, but you still have to know about 8 and 16 bit assembly instructions because they are still relevant in 32 and 64-bit programs, especially the string instructions.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.