Where would one need to use x86_64 assembly in real life?

Where would one need to use x86_64 assembly in real life?
what jobs would require it

Other urls found in this thread:

youtu.be/430o2HMODj4
twitter.com/NSFWRedditGif

Research

Research?
wouldn't that be a job from intel/amd engineers?

Let's say you work on compilation or optimization at binary-file level

infosec faggotry
jit/aot compiler engineering

/qed

what job positions would require that?

developing compilers
optimizing binaries (hardly ever done anymore though)
reverse engineering
...

Anything malware related.
Anything with low-level programming is going to require at least an understanding of what the assembly would like.

why is it hardly ever done anymore?

how much experience would one need to get a job where one would use assembly?
how *easy* is to get those?

drivers
optimizations
compilers
bit twiddling magic

A few reasons. Computers, even embedded ones, are so powerful these days it's not as expedient. when you can get a fully functioning Linux computer for $5 that's the size of OP's dick, assembly hacks to decode something aren't worth it anymore.

Compilers are also very advanced, and if you understand how they work you can write C in a manner that the compiler will optimize better than you can.

compilers got better and microcontroller faster and got more ram and rom, so there's no need anymore to spend days trying to shave off a few bytes of the memory footprint or the binary

Probably not a lot. It's not very saturated; very few people even know what assembly actually looks like. However, it's not like their are assembly dev jobs, it's more assembly familiarity is a requirement for certain jobs that work close to the metal.

what about embedded devices?
is there any that would use x86_64 architecture chips?

You can crack any .exe without having to buy it.

Senior FUCKING Compiler Engineer

are there junior FUCKING Compiler Engineers?

Maybe.

oh, missed the x86_64 part.
the only jobs where you'd use amd64 assembly would be compiler development or malware analyst

you don't even write amd64 assembly when developing drivers, because there are already macros for everything

meant for
fugg

and there is no way that one could get a job on developing a compilers because there are already teams of people doing on those
so basically you would only need asm in order to become master l33t haxxor...

>and there is no way that one could get a job on developing a compilers because there are already teams of people doing on those
there even were 3 or 4 different GCC projects on last years GSoC (not sure how many slots they got in the end)
and there are many compiler projects looking for help

why would people need million compilers

"Compilers got better" is a meme.
You will get better performance, if you write asm yourself and you know what you are doing.
Simply because have more time to do it.
Compilers, on the other hand, have to spit out shit as fast as possible.
They don't have time to benchmark stuff and have to guess what will work faster.

Look up infosec on Twitter, you'll find the everyday usage of it. Search for Travis Ortomandi, he works with reverse engineering on google and post a lot of stuff about it. Move from books/classes to real life usage and you'll understand how important is it.

dunno, intel develops ICC to cheat on benchmarks for example.
m$ MSVC because of an internal running gag to never support any existing standard that somehow made it into their company guidelines

Yea, and you completely understand all compilers to be giving this response. Give me a break

have you ever looked into the fricking huge amount of analysis and optimizations that GCC does ?

Its Tavis Ormandy: @taviso

>I'm retarded, so other people must be retarded too
Do you think computer works on magic or something?
Compilers are not that hard to understand, if you are not a complete cretin.
>have you ever looked
I did. Did you?
>fricking huge amount of analysis and optimizations
Don't try to talk out of your ass if you don't know shit please.
They have to almost hardcode optimizations based on patterns.
Simple stuff. It's not fucking magic.

nice thanks

Any job that requires you make something go fast.
If you don't understand assembly you will have trouble understanding what's going poorly and what's going well in your code.
But you usually don't need to write assembly. Most of the optimization is either ensuring that compiler optimizations happen or writing with intrinsics. Auto-vectorization isn't quite there yet and if you leave it up to the compiler you're gonna have issues with measuring because maybe some code change got the compiler confused and it didn't vectorize a piece of code you had it vectorize previously. It turns out to be a rather massive overhead to development. And to top that off your compiler doesn't know the data loads its expected to take usually. So it might make things slower in places.
I think people need it more than they realize.
What? Asm seems an entirely practical thing to me. Research shouldn't be done in machine specific language. That's silly.

>I did. Did you?
yes

>They have to almost hardcode optimizations based on patterns.
a lot of them are static and actually hardcoded, but thats not the point

>Simple stuff. It's not fucking magic.
and yet others haven't managed to catch up with GCC

>most of the optimization is either..
That I do. To be clear.

And your point is?

Link your github page, I must be talking to the guy who made GCC. Sorry to pop your bubble, but projects with that big of a scope do a lot more - and a lot better than you would do. Sure, if you make a 1:1 translation to asm it will be faster, but if you manage to do that in C and get a better performance than Clang/GCC, make a PR and you'll be done career wise for the rest of your life. Classes/books are way different than real world.

Not that guy but you're delusional (or stupid) if you think you can't learn the important parts of GCC/Clang relatively quickly.

Would you trust a carpenter that doesn't know what material his tools are made of? I don't trust a programmer who doesn't know his head from his ass. Or his compiler from another. Or what optimizations it normally does for him.

If you can't write up the top two optimizations the compiler does for your general case just fuck off from a discussion like this.

I'm waiting for your github page

That's odd. You haven't even asked me.

...

Are you fucking retarded?
Noone is writing programs completely in asm.
You just write performance crucial parts (loops etc) in it.
Looks like monkeys like you are really gone soft in the head from all this levels of abstraction. Go back to javascript.

>You just write performance crucial parts (loops etc) in it.
really ? and i thought it was interrupt handler, context switches, etc...oh boy was i wrong.

You are trying to look smart, but you actually look very stupid.
Can you stop? It's embarrassing to watch.

Building god's temple

>You are trying to look smart
how is that trying to look smart ? those are the 2 most performance critical parts

you are the only one here embarrassing yourself

Comeback when you understand what you are talking about.
No point in talking with you, when all you have is copy-pasted "knowledge" from stackoverflow or something.

>copy-pasted "knowledge" from stackoverflow or something
if you would have made it past the 2nd or 3rd semester CS at any decent university you would know that that's standard lecture material, alongside with implementing that shit.

When you are writing a native compiler

It's obvious that you have 0 experience with reallife high performance applications. I'm done talking.

>It's obvious that you have 0 experience with reallife high performance applications
i think it's way more obvious that you have no idea how:
compiler work
operating systems work
and probably not even what a context switch is

I don't think anyone write x86 assembly by hand anymore.
That said, knowledge of assembly is important when you are developing stuff that needs to be really fast and optimized, like video games or DSP applications.
But even then, it's more a matter of knowing how your C/C++ code will be translated in ASM by your compiler.
I know people in the audio DSP field often use SIMD instructions to tighten their processing loops, but they use intrinsic functions rather than inline assembly, and spend their time writing C++ more than anything else.

You have to start somewhere don't you?

Might be of interest.
youtu.be/430o2HMODj4
43:20

interesting but i do not use Clang

He presents how he got hired to be a compiler developer at Google.
At that timestamp. It's relevant to the conversation you were having.

Is it worth learning any assembly at all? I get extremely autistic about performance so I imagine I'd like it.

>how he got hired to be a compiler developer at Google
is it something else but years of hard work and learning?

implementing cryptography, compiler development, reverse engineering, using GDB

I'm not going to write you a synopsis. But yes.

working on compilers
working with JIT
reverse-engineering malware
debuggers
security

yes
the "language" itself is really easy
being able to fluently read asm code is hard / takes a lot of effort though

>the "language" itself is really easy
some things are, some can become quite tricky and annoying

>the "language" itself is really easy
really ? i find amd64 kinda confusing, the instruction set is just huge with like 16 different specialized versions of every instruction. even looking up the instructions in the reference manual takes is annoying because it's just so many.

compared to amd64 assembly avr assembly is just comfy as fuck

mips is even easier