Assembly

Anyone on Jow Forums know assembly?
Where's a good place to learn it

Attached: assembly-mini-logo.png (640x291, 144K)

Other urls found in this thread:

cs.virginia.edu/~evans/cs216/guides/x86.html
xyproblem.info/
twitter.com/SFWRedditImages

I'd recommend starting with microcontrollers. Less complexity and you can learn some electronics and make shit light up or go "boing" while you're at it. I got started with both asm and C by building my own avr programmer. These days there are all sorts of fancy stuff like arduino and the like. Most of the communities around this focus on C, but you can find lots of asm help as well.

cs.virginia.edu/~evans/cs216/guides/x86.html

do you mean x86 assembly? get the software programmer's manuals from amd or intel.

Why do you want to learn assembly?

Higher level languages(or at least higher level concepts) will make you better at lower level languages.

This isn't always true. It depends on which high-level language a person chooses.

back to stackoverflow with your unhelpful counter questions

I would think anyone worth their salt on Jow Forums would know, yes. Just pick a flavor and go for it. Easiest for you to try out is x86 but IMO it's not a simple ISA, so you'd be better off playing around on an embedded device like a RISC-V, ARM, or Arduino. Microcontrollers are great too, Motorola had some development boards you may still be able to find.

If you have a decent knowledge of how computers work in general before starting this book will help you a ton. I can link the PDF if you have trouble finding it,

Attached: 51MPP7tSICL._SX381_BO1,204,203,200_.jpg (383x499, 33K)

How much assembly does one need to know for reverse engineering? I learned the basics from YouTube videos, but I don't know if that is enough.

practice. don't ask.

Part of the learning process is asking yourself why you're trying to learn what it is you're learning you brainlet. For all we know OP could be wasting his time and better off learning something else

I learned assembly by programming NES (6502) and Gameboy (Z80) games. Rodney Zaks wrote some good books that you can find online.

If you wanna learn the general basics of how it works, start with something simple from the 70s like the 6502 or 6800 and then work your way up.

Only a handful of people in industry, mostly chip designers and OSdev folk, actually need to have a total mastery of x86, and there's not really many tutorials or guides for it out there aside from getting the actual docs, which are gonna contain a lot of jargon that you'll have no understanding of unless you work your way up.

This book. Also, unironically the shellcoders handbook.

Attached: 5386FCAD-BBDF-4C99-96EE-3C96BD03D65C.jpg (333x499, 53K)

you got it backwards.

There's a great game on steam called Shenzhen I/O where you program microcontrollers to solve puzzle games. You play as a disillusioned programmer from Silicon Valley who moves to China because that's where the "real programming" is.

It's set up so that it looks like you're running a shit chink OS when you're playing it. You get emails from your bosses to program this and that. You click on the emails and solve the included puzzles using assembly code. It's really fun. If you like puzzle games and programming it's right up your alley.

Once you're finished with that, look into MIPS and see if you can do something in that. Or x86.

real question - how much of this story of "the assembly programming jobs are in China" is true?

at the moment you can still find some assembly work in embedded development positions but only for really critical code, C is pretty standard now

I have no idea. Your in-game character basically says that Silicon Valley code is just layers upon layers of abstraction. At a deep enough level, the software that you write is really running on a shit x64 chip programmed in Shenzhen or Singapore.

Get your feet wet with MIPS before tackling any other flavor. If you have previous knowledge of programming, it shouldn’t be hard to learn. Learn your bne beq jumps and you can move on to x86 which changes things up by adding more registers to store shit in.

Let's have it - thanks

I work in assembly all day

It really depends on what you're learning it for. If its just purely academic then just google x86 assembly tutorial and maybe write a simple program for it.

If its because you need to do optimizations then just compile small units with listings on and observe those as you tweak the code and learn about optimization switches, I learned a lot about the essence of assembly this way.

If you're working in electronics then its usually a good idea to be somewhat familiar with the assembly instruction set for your given architecture, you can do that quite easily ny just taking the users guide or programmers guide for your specific cpu and just read that they usually have very good working examples

For absolute, it's enough to read the datasheets.For relocatable, you should study the "gnu assembler" thing.
It would be best to start with absolute assembly and 8 bit microcontrollers.

I started with x86. Learning on simpler architectures would have been easier but I'm not sure I can recommend it- the immediate ability to try out my work in my normal environment, rather than some emulator, was highly motivational.

Learn to use a debugger from the command line first, if you aren't familiar with that yet.

just the basic stuff from core credit course, we used a framework for vs called irvine

the 1960's

Is it a bad idea for a newb to learn assembly?

You should learn C first.

Why?Sorry if I ask you a lot of questions I just really want to learn how computers work.

ha

this

First, because jumping straight from a high level language like Python to assembly would be too big a gap, introducing too many new concepts at once. And second, because you will struggle to find learning resources that don't assume some level of C knowledge.

xyproblem.info/

ARM, MIPS, AVR, RISC-V, x86, PowerPC, what exactly?

Ok.Gonna take your advice thanks a lot user.

kek

X86 asm is way easier than MIPS

Lol this is absolute bullshit and it's the exact way around
Even having C knowledge doesn't help that much with Assembly but knowing Assembly helps you a lot with C, which in turn helps you with all other higher level languages

Thanks for posting this, user. People don't understand how to ask questions.

Honestly if your goal is reverse engineering the best way is to just start writing simple programs in c and decompiling them, start with a hello world and add more complex concepts as you continue.

>python, js and java suck
>they dont program like they used to
fucking le wrong generation kids i swear to god

While this is a problem, often counterquestions are used to suggest things that would be overly difficult for the user or require changing their priorities.