September 19th, 2004, 09:06 PM
How does x86-64 assembly differ from x86?
Other than a bit of syntax changes, how is it better than x86 assembly? I've being curious about it...
Also, http://www.x86-64.org/documentation/assembly for those of you who would like to compare it.
Tell me if you think I\'m spamming or doing something stupid, please.
September 19th, 2004, 10:39 PM
I have not written assembly for well over 18 years. The only obvious differences are that it started of as 8 bit, then moved on so that the latest versions support 64 bit processing.
Most current machines are running at 32 bit, so if I was hiring a guy to write for me I would probably want 64 to "future proof" it a little?..............to put it (VERY) crudely, it is a bit like motor cars............most do much the same in first gear............so what do you want to do with your assembly? these days I associate the language with tools and utilities, rather than applications, but that is probably just me.
There are some very cool people on this site who have probably forgotten more about coding than I ever knew. I am sure they could give you a much better answer but it would give them a clue if you suggested an environment or purpose?
Sorry, cannot help you much more than that
October 3rd, 2004, 04:55 PM
its not the coding that is better or worse, it just takes better advantage of new machines.
i have forgotten much, but not because i actually KNEW much, more because i tend to forget a lot. i still give it a try.
the basic difference between the different bit rates is the size of the machine code chunks the processor can operate at a given cycle. 64 bits is double the size as 32 bits, there you go. using the "same" instructions, more data can be moved, and more instructions can be run by the processor in the same time.
32 bits are 4 bytes of data, commonly referred to as a word. a 64 bit machine can / (could) process double the amount of data at any cycle, if the assembly code fits the machine. for example, a s390 move command takes 6 bytes or one and a half word. so on a 32bit machine it will take 2 cycles to execute, on a 64bit machine its only one cycle.
i heard users of itanium machines complain that 32 bit software runs slower on the new machines, than on old ones. i guess the reason is the software has to be assembled for and designed specifically for a 64bit machine. assembly is fast but there are thousands of possibilities to screw this advantage
to see with precision which specific instructions are (dis)advantageous for processors, take a look at a good instruction reference, as in assembly like nowhere else you can see a lot from the machine code a instruction generates.
October 3rd, 2004, 10:40 PM
Actually that would be a dword. I guess you forgot basic math aswell.
October 3rd, 2004, 10:52 PM
i dont know what i dont know! how should i know! i'm like the blue fish in disneys nemo film.
yet one thing dimly shines through the ages:
in s390 architecture, a 4 byte quartet is called a word by definition, i'm quite sure about this, since also the ebcdic character set is larger. there a double word is 8 bytes / 64 bits long. i did not know its different in x86, sorry about it