Who the hell writes x86 assembler professionally these days though?
Video codec writers, perhaps. Everyone else, if they're forced into
writing assembly, its almost always because the target processor is
*not* a general purpose.
lots of people write x86 assembler...
at this point, it is probably because there are still things one may
want to do in a program, which are not readily possible (or practical)
purely within C or similar, so someone needs ASM to make it work correctly.
performance is sometimes a motivation, probably more often it is to
either use HW specific features, or to work around some natural limits
in how C works and is implemented on processors.
a simple example would be writing a general purpose "apply" function,
where one calls a function pointer with an arbitrary (only known at
runtime) argument list.
in C, this essentially requires a (potentially massive) switch
statement, which requires converting the argument list into a number,
.... and generally ends up kind of slow, and adding a fair amount of size
to the final binary.
in ASM, the task is much more straightforward.
hence, ASM ends up being preferable here.
likewise, going the reverse, and for things like constructing lambdas
(which look/behave like ordinary function pointers), ...
maybe:
try to write a pure C implementation of something like setjmp/longjmp;
....
Clue: The x86 and its descendants are not the most widely produced
microprocessors in the world - and it isn't even close - even for
things that are, loosely, general purpose computers. And, given that
smartphones and tablets and the like appear to be future, that gap is
going to widen, and not close.
people say that "smartphones/tablets/... as future", however this seems
unlikely. far more likely, they will be used alongside desktops and
laptops and like, and after a few years people will wonder why their
sales drop so much: "oh yeah... market saturation...".
for most small embedded devices, the number of units is misleading, as
most are non-programmable, so maybe a few people produce the original
software for a given device, but they run off millions of units. doesn't
mean that this constitutes a larger amount of total work (by
programmers), only that a large number of units have been produced.
So, if you're going to talk chip-specific assembler, and you're not
using an ARM instruction set, you're talking about a niche market.
x86 is likely still most commonly used, even for assembler.
ARM probably comes in second, and most of this is likely people writing
software for Android or similar, and doing something which needs ASM.