Assembly Appreciation Thread

Let's all just appreciate the superior way of coding ultra-fast software.

Other urls found in this thread:

en.wikipedia.org/wiki/RollerCoaster_Tycoon#History
doc.rust-lang.org/1.8.0/book/inline-assembly.html
youtube.com/watch?v=0AMIE2sj2AA
twitter.com/SFWRedditImages

Assembly is too abstract for me.

More like not abstract enough. ASM is how the cpu works.

Computers generate better code than people since about 80s.

no it is still one step removed. one step too far

you're always free to write your programs in op codes i guess

how come we still use assembly to optimise stuff then? more specifically accelerate code

A modern (1990+) optimising compiler will in 9/10 cases produce better assembly than a human.

Idiots do it. The compiler will most likely optimise your normal language function to the optimal assembly code anyway, especially if it's a common function. Adding inline assembly to your code does nothing but reduce portability, in exchange for at most a couple less clock cycles.

What kind of software have you made with assembly language, OP?

Maybe FFmpeg

The last time I wrote assembly was probably in the early '90s, I cannot understand why anyone would want to write assembly today, especially ugly x86 shit.

It depends, if you need to always zero out a memory region for security reasons you don't want to count on the compiler not removing it as dead code, and using volatile or other workarounds isn't as deterministic as just writing assembly.

Also compilers tend to fail to vectorize things properly quite a bit, so dropping down to assembly can help when the compiler is too dumb to figure it out.

There are still many uses of assembly that make sense, just don't use it when you don't need it.

I keep telling myself I'll write some extremely efficient assembly to replace a slow part of my code but it never happens. Does anyone actually do that anymore?

most obvious a compiler...
I think they are still looking for ppl with asm knowledge over at llvm

Optimizations.
There will always be a bottleneck that can be optimized by good ol' assembly, nowadays there might be few instances where it matters, but when it does it can make a hell of a difference.

your mom still gives you handjobs. we know

one prime example being openssl

Kek, you'll see if you ever need to write a driver or resource intensive task.

This.
Some time ago I wrote some functions to convert between pixel formats using SSE intrinsics which is essentially assembly and it was 4 times faster

en.wikipedia.org/wiki/RollerCoaster_Tycoon#History

>RollerCoaster Tycoon was developed by Scottish designer and programmer Chris Sawyer, artist Simon Foster and composer Allister Brimble, with assistance from various leading figures from the real-world roller coaster and theme park industry. The game was written mostly in assembly language.[1] It was published by Hasbro Interactive.

How do I learn assembly?

You start with Rust.
doc.rust-lang.org/1.8.0/book/inline-assembly.html

Someone explain OPs picture to me please

someone didn't get the joke

Read a book on it. Depends what ISA you're looking for though. The most common ones are ARM, PPC, X86, and MIPS. Most all desktop computers use X86 so I'll assume that;s what you're talking about. "Assembly Language for X86 Processors" is the standard introduction but it deals with older systems so you won't be able to implement anything without a little tinkering. "Modern X86 Assembly Language Programming: 32-bit, 64-bit, SSE, and AVX" is a more modern overview but it teaches you less. SSE and AVX instructions are where most all of the speed comes from when optimizing with assembly since compilers still suck at vectorization. Afterwards I'd highly recommend reading Agner Fog's manuals on Microarchitecture and Assembly Optimization if you already have a decent understanding of Computer Architecture. Also I'd suggest if you're trying to work with assembly pick up a decent assembler like NASM or MASM, or YASM. GAS syntax is terrible and you'll just be torturing yourself. Don't write inline assembly unless you really need to, just make external function calls. There's another book called "Programming from the Ground Up" or something that might be a good start but it deals with 32 bit Linux systems.

Assembly is still useful if you deal with extremely low level tasks or your compiler is having problems optimizing a critical section of code. It's still sometimes used in embedded systems with extreme limitations on code size and performance. Even if you never plan on programming in assembly it's still a good idea to get an idea of how it works so you know what your code is actually going to turn into.

I hope he releases the source code before he dies

>Let's all just appreciate the superior way of showing off your e-peen to other vir/g/ins.
there is literally no reason to use assembly if you aren't getting paid for it.

youtube.com/watch?v=0AMIE2sj2AA

>tfw too retarded to reverse engineer RCT and convert it to C

Doesn't the fact that it's written in ASM mean that it is basically open source? Just throw IDA on it and you see exactly what he saw when he programmed it.

>Doesn't the fact that it's written in ASM mean that it is basically open source?
In the same way that all software is you goddamn retard.

Most all proprietary code has some form of reverse engineering protection for that reason. There's also a big difference between hand-written assembly and compiler assembly even after all the comments and macros are removed.

shit

nigga programmed for like 4 hours straight without ever tabbing out to shitpost or watch random crap on youtube

maybe that explains why I'm a piece of shit lol

how to learn asmx86?

/sec/ reasons

sounds like lack of passion for coding. you wouldnt be distracted if it excited you

romhacks

if you look at the time on the bottom right it jumped at least 3 times between 3 different dates.

one time you can prominently see how his facebook is showing a notification

I did :^)

ITT: Pajeets deluding themselves into believing OOP/FP is the holy grail of computing vs. actual 3-digit IQ programmers who understand how computers work.

You still need at least a good grasp of it to do low-level stuff like the early init in UEFI/BIOS code.

Still too far. I write my software in undocumented CPU microcode.

Assembly is shit. Forth is far better.

i physically alter the electric currents using a modded etchasketch to write my leet hacks

You got it backwards. The higher level the language, the more abstract it is.

>not building your own Analytical Engine
microcode programmers are THIS KEKED

that's fucking godly, how does this madman do it without even using a pseudo-code decompiler? how do you become this 1337? I'm doing an undergrad in CpE and know a bit of RE from side projects but this is almost unfathomable.