Is Assembly language (Intel 64 bit) worth learning in current year...

Is Assembly language (Intel 64 bit) worth learning in current year? What can an assembly wizard do that wouldn't be possible with a normal language e.g. C or C++?

You can make something akin to temple OS in cy+2 learning assembly for intel cpu's. But in cy+8 it's better to learn assembly for a RISC based cpu like ARM or what will eventually be RISC-V. Especially as not all of intel's assembly instructions are even documented anymore.

Yes.
Check out the bimillenial coding thread. The super fast C implementation used knowledge of assembly and dumping the assembly produced by the compiler to refine and optimize the C code.
You don't need to write assembly, but knowing what you wanted a compiler to write is very useful.

It's not worth learning ARM. No one gives a shit about optomization on ARM other than compiler authors and it's pretty backwards to keep power use down.

Where do you think you are?

A site where only maybe two anons could write their own compiler.

Assembly gives you a pretty good idea of how your machine works. Hell, even just programming some xmas lights gives some insight

First of all, it isn't Intel 64 bit, but AMD64, since AMD created this instruction set, and second of all, aside from certain vector instructions or if you want to write your own compiler, no it is not, because since the mid 90s, and thus since before the existence of AMD64, all modern Intel and AMD CPUs which implement the x86 and now AMD64 instruction set get JITed down to an internal RISC instruction set which is what the CPU truly runs on.
This makes optimization much more of a guessing game except for engineers familiar with the chip internals.
They even have little neural net portions on their CPUs which are used for opcode preemption, and optimizations to reduce cache misses, which are one of the primary reasons for slowdowns in processing.
How can a good working knowledge of AMD64 assembly allow you to optimize around this complexity?
IT CAN'T!

This is exactly why you should learn assembly for a RISC based CPU. It will probably be better documented and won't have all this heat death shit you have to guess your way through that produces complex outputs based on decades of reverse compatibility.

ehh it's a pretty weak claim to it since they pretty much just updated the prefix the exact same way Intel did 16 bit to 32 bit. "amd64" was a forced meme because a lot of people in tech at the time were furious at Intel for holding 64 bit and NUMA hostage and only providing them on super expensive Itanic builds (they deliberately were trying to split the market to move "pro" use cases off of budget processors).

...

...

RISC-based assembly wasn't meant for humans to write directly and the tech is permanently stuck in the '90s due to their market being all about perf per watt. It's a bad choice to learn.
Shit's not standardized on ARM outside of a small core licensed by 'ARM Partners'. It's incredibly poorly documented as a result.

Gas yourself. Dedicated instructions on the proccessor beats the stupid shit intel is doing to keep their chips from overheating. You might get less performance for now but you will also get less energy usage which means less heat, more secure from EM interferance, and better battery life/electricty costs. You can use very recent and (((kikezone))) infested ARM cpu's to run a modern desktop with good performance. You can use non (((kikezone))) ones too. It's just you aren't going to be playing emulators on them as effectively without porting nouveau to whatever mobo you are using for the ARM chip or powerpc if you go talos.

The only reason people keep using x86 is backwards compatibility. If you cut off that then x86 is useless and not progressing as a arcitecture. Which means switching to something like powerpc or RISC-V to continue improving the chips.

Oh, is this going to be one of those "and that's why it will win someday" stories? Those are great. And so timeless! I remember that story from SH3, MIPS, ARM, .. oh wait, I meant ARM 15 years ago. Not today. It's totally different today.
And, you know, performance. Two very minor things of course. I really should be using ARM For dat low EM interference, tho!

assembly is how you become a 1337 hacker and break into the credit card databases so you can score some pizza for your crew hanging out in the abandoned arcade while you plot how to defeat the evil corps from writing scripts that control the minds of everyone who uses an apple device.

I'm sure that $10,000 talos rig supports overclocking

Using a superior instruction set, like RISC V, would only remove the JIT compiling down part.
The neural net to preempt opcodes and optimizations to reduce cache misses is probably something that will appear on any sufficiently complicated/powerful CPU, regardless of instruction set.
In fact, there are probably even more insane complexities already in the pipeline that just aren't widely known yet.

Why do you think it is called Reduced Instruction Set computer? Because it is using dedicated functions to do single tasks for them. Thus reducing complications of combining simple functions to do complicated tasks. Complicated =/= powerful. CISC arcitectures like x86 suffer from heat death of streamlining the combination of general functions to do complicated tasks. That's why extensions such as SSE and MMX were introduced to do complicated functions on dedicated ACU's.

MMX/SSE/AVX are all about doing retardedly simple functions on multiple things at a time, not complicated functions. They're fairly niche today as GPUs mostly took over what they were intended for.

To the extent that a university will teach you, yes. Anything more: probably not. It is a very important skill to be able to read assembly and make some sense of it. Unless you get into compilers, JIT interpreters, or virtual machines, you probably will never have to write it.

The most anal thing I have seen with assembly is a manager blow $3K having an intern track down why a simulation was different across two architectures (and OSes). For two input values both very close to zero, atan2 gave radically different results between Windows on Intel and Linux on AMD. The intern was walking through the assembly at one point, because all of the senior developers said it wasn't worth their time. I don't think that the manager was completely satisfied, either.


But even RISC processors execute multiple instructions at once, look ahead to determine what instructions can be executed now (do to a lack of data dependencies) instead of in order, predict branches, use multi-level caching, and other magic to make the processor faster by doing more at once.

The computer architecture class in uni made me realize that there was no way to count cycles. The processor does what it wants, when it wants, and every hack you learn to make the assembly faster is invalidated each new processor generation.

I suck major cock then. Everything I just, think of the opposite. CISC = complicated functions. RISC = combining simple functions. My case still stands though on heat.

Yea I just realised what I was saying. The case for RISC is on simple instructions combined to do complex things thus reducing heat if put as a distributed load. The only way to avoid predict branches or multi-level caching like bullshit is to have the programmer/compiler anticipate and account for such things when programming their application.

Still the x86 arcitecture is trash and needs to be abandond.

This guy gets it. I forgot about branch prediction, that's another thing modern CPUs have to do.
Changing your instruction set won't get rid of that.

Five years ago I wrote some ARM assembly for computer vision (using NEON instructions) and it got great performance gains. This was in grad school but I know that people in the industry were using hand-written ARM assembly at the time too.

I would guess that handwritten ARM assembly still gets good performance gains over compiler generated code. The difference is that almost all computer vision (and many other compute-intensive tasks) now use neural networks. Other people will have already figured out how to get the most performance from ARM chips and built this into libraries like TensorFlow.

Use the backdoors exposed by sandsifter to write APT malware

it's good to know assembly even just to be able to debug your or others programs. If you want to do some low level stuff them assembly is also very useful if not mandatory, but for anything else not really needed and I say that as someone who really likes programming in assembler.

Any tips for wannabe asm programmers ? I want to understand how computers work.

Get an Apple ][ of some kind or another, it's very nice for assembly language programming.

Start programming for anything with an m68k in it.