Hacker News new | ask | show | jobs
by xanathar 779 days ago
I'd say quite the opposite.

Reasons: - practically every developer who is remotely interested in assembly programming knows the x86 basics and most experts have a better knowledge of x86 than other architectures with the possible exception of ARM

- x86 is very hard for the hardware implementation, for the programmer (especially with the x86-64 improvements) is not bad at all. Its bigger defects are variable instruction length, something that has no impact on coding, and tge amount of legacy stuff that exists mostly for backward compatibility (e.g. x87, enter/leave, bcd instructions, hw task switching, segments, real mode and v86 mode, etc.) and are just being ignored by programmers as stuff that is now irrelevant if they have not been removed from 64bit long mode at all.

- I don't know modern MIPS, but the MIPS architectures of the past were not programming friendly at all, with stuff like delayed slots (basically instructions that are executed even if the code branched somewhere else), heavy reliance on the compiler to provide perfect instruction order, etc

2 comments

Loongson CPUs have long abandoned MIPS, they are now using their own (MIPS-derived) ISA without the branch delay slots and then some. I'd wager that it is more like RISC-V than MIPS now, at least on the surface.
Didn't know that, then the last point doesn't really apply
Variable-length instructions cause one bit of inconvenience for assembly programmers.

There are long and short JMP instructions that your assembler can possibly choose between depending on how far away the target is. Now, changing a JMP from short to long can change the length between another JMP and the target. Assemblers have different levels of intelligence for this situation: I programmed a lot of assembly for the 80286 (not protected mode but I used all the instructions that would speed up real mode) in the late 1980s and since we were working with little space a good assembler would try assembling the program multiple times until it got a consistent solution for what kind of JMP to use where.