Assembly

I've begun to learn Assembly just for the hell of it, but what can I actually do with it? (That can't be done in a higher-level lang)

I already know a few langs. The lowest-level I know is some C/C++.
I already have some resources to learn, just more interested in the practical applicatoins of Assembly.

Attached: asm.jpg (300x199, 24K)

Programming microcontrollers

You can, but in real life they're mostly programmed in C

Write a compiler for higher-level languages :^)

Learn z80 asm. It's comfy as fuck.

Make a video game.

It's fun to learn assembly but to do real work you should stick to C/C++. The problem with assembly is that it's processor specific and inherently non-portable.

crackmes.de i do those as a hobby, it's pretty fun.

Make a rollercoaster building game :^)

Attached: Micro_Park_High-resolution.jpg (992x1227, 478K)

Not much to do on regular computers apart from hobby projects (building an OS, etc.) AFAIK. It’ll be way more useful for embedded programming. Just find something to build.

DOSBox (or a real DOS machine) and mode13h graphics programming.

where I've seen assembly being used:
math and crypto libraries optimizations, you can just realias registers while higher level would force actual swaps
in kernel where higher level (meaning C) languages doesn't have CPU things for unprotected mode, usually have to do with interrupt-related things like drivers, syscalls,... functions have few lines of assembly and then can be used from C
also before booting to kernel itself

so quite specific things and the hottest code optimization, that 1% thing

It's needed for bootloaders and kernels, and used for super-optimized functions.

>I've begun to learn Assembly just for the hell of it, but what can I actually do with it? (That can't be done in a higher-level lang)
Learn about how the computer works. Do fun hobby shit.
Relax with a low-level language that doesn't require you to learn any wonky APIs or libraries or whatever - you got your 90 or so commands and that's all that you have to remember.
Pretty comfy to do, once in a while.

This and macros remove a certain copy pasting

Besides certain kernel uses and micro controllers the best reason to learn assembly is what I call reverse compilation.

Basically it's really useful in many cases to be able to objdump an elf file or some other executable file. You can then look at the assembly output from objdump to figure out where your C program crashed if you've gathered the address the program page faulted at. This is probably 90% of what I use my assembly knowledge for.

Assembly language is a good thing to understand for sure but for the love of god dont spend more than a week or two messing with it. Its not worth anymore than that. You'd just be wasting your time.

Also good way to learn assembly is with dosbox

Car tuning companies need assembly programmers to reverse engineer new ECUs and what not

nice thread

You can implement your own threading mechanism.

Reverse engineer programs and modify them for your own use (or cracking)

I'm currently 6502 assembly, I want to get into hobby NES development.

I don't know how "practical" it is, I'm just doing it because I want to get a better understanding about what a computer actually is.

I think it is safe bet to say that the world will continue to need people that understand what computers are.

Writing shellcode.

>but in real life they're mostly programmed in C
Stop using micros that have compilers

How many microcontrollers post 1990s do not have a C compiler?

Reverse engineering

It's meant to be good for hacking, reverse engineering and that.

>It's meant to be good for hacking
lol wat.

How is it "good for hacking"? That doesn't even make any fuckign sense.

Finding low-level exploits and hack shit, programming insanely efficient video games, reverse engineering, etc.

ring0 kits. bootkits. shellcodes.

>What is IDA

embedded systems, even though a lot of those secretly just run the linux kernel.
You can do hobby shit, like a very minimal OS, but mostly that's about it, unless you're optimizing the ever-living shit out of something, like a crypto library

Play around with MIPS or something similar for a while, but don't try to use it for anything practical. It's a good way to learn about your computer, nothing more.

jesus fuck how did he even do that
fuck me in the ass, i'll never get even close to his level

literally all of them have a C compiler. He's just retarded

>Scottish game designer Chris Sawyer hated rollercoasters before he began work on RollerCoaster Tycoon. He originally wanted to create a sequel to his highly successful Transport Tycoon. However, he later instead decided to make RollerCoaster Tycoon as an excuse to ride on, or "research", rollercoasters, which he enjoyed doing and became obsessed with.
Ebin.

making gameboy games

Make a rom hack.

the only practical reason to use asm is for specific operations which cannot be done with compiler intrinsics (i.e preserving all registers or messing with segments). a compiler might also not provide an intrinsic for a specific instruction, such as sgdt on msvc

security. private key security, for example. If you use a high level language you may end up with keys (or parts of them) left in various different places, which is bad thing. With assembly code you get much more control.