News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

I want to learn assembly but am not sure where to start

Started by zdwlees, June 10, 2021, 09:02:42 PM

Previous topic - Next topic

zdwlees

Ok I want to preface this by saying I am in no way experienced with programming at all. I have been doing python for 5 years since I was 11 and dipped into JS C# HTML yada yada. I adore doing it but I hate not really understanding it. I want to know how it all works and I realised that assembly would be a good starting point. I'm not crazy and realise I can't just learn assembly with no real knowledge of processors and all that. But I am committed to learning and will do whatever it takes, I saw on a stack overflow someone commented that this community was really helpful and accepting of newcomers so I came to ask here. I know it is vague but anything helps, where to I start? Do I need to understand microprocessors? Architecture? Should I get an old 32 bit processor and learn the ins and outs of that? Which areas of computer science do I need to know to be able to properly understand the root of all modern day computers. If all where to start? Don't feel you have to have an answer this is more of an anything works I just want advice from people who seem much more likely to know a lot. Also tell me if I'm in the wrong place. Thank you so much. (Sorry for the long post)

jj2007

Welcome to the Forum :thup:

Take a look at Hello World in seven steps. It is easy to get started with assembly, and it's not a difficult language at all, because there are not so many instructions to learn. Compare it to lego bricks: they are small and simple, but you can construct bridges and skyscrapers if you have enough of them.

And we are here to help you :thup:

Biterider

Hi, welcome!
One of the most frequently used intros are the iczelion tutorials.
They cover a wide range of 32-bit Win32 techniques that are used to program asm with masm.

Biterider

mineiro

Welcome sir zdwlees;

but I hate not really understanding it.
Don't hate, love. You don't have future if you start this way.
A learning curve research show that when persons hate what they are doing or not doing the sucess don't exist.
Before I learn assembly language, I need say stop to myself and know how to read english. My learning curve was much more harder than yours. Don't exist in my time online translators, so, RAM memory was translated as cow parent memory.
So, removing from your memory hate, hard, impossible to if mineiro can do that I can too.

I want to know how it all works and I realised that assembly would be a good starting point.
Bingo.
 
I'm not crazy and realise I can't just learn assembly with no real knowledge of processors and all that.
Sure you're not crazy. The rest is false. A lot of assembly programmers don't know about instrisecs, they just program, like in any other language. Do you know binary base, hexadecimal base, basic arithmetic, logic, syntax, semantics, ... ? You're in.

, where to I start?
Hands on, you start programming. At right time you evolute to unknow things.

Do I need to understand microprocessors?
You need undestand how to talk with microprocessors (calculators), but assemblers do that to us, so you need understand how to program in a way that assemblers can understand your source code. You need undestand syntax language and what processors offers. In others languages you need know syntax language and functions. In Assembly too, you need undersand commands (instructions).
Processors offer us a lot of "actions", being arithmetic, logical, flow, ... . I ask other thing:
Do you have an original idea? If not, don't lost your time in assembly or any other programming language.

Architecture?
This is nice to optimize your program, talk with other chips. A future question.

Should I get an old 32 bit processor and learn the ins and outs of that?
Your "new" 64 bits processor offers "old" 32 bits. That's a processor mode. Exist compatibility between old and new.
If not, I should buy a new processor each time they release a new one. Business. Again, if not, I need create a new release of my program to each of these processors, rewrite from zero to each of them. Hmm, I'm being a bit sarcastic.

If all where to start?
Read everything that you can. Others don't read to you. Like in school.
Sedgewick have a good book in algorithms, reproduce that while reading others books in assembly language to motivate you.
I'd rather be this ambulant metamorphosis than to have that old opinion about everything

daydreamer

Welcome zdwlees  :thumbsup:
about "getting a old 32bit and learns its ins and outs"
what do you want todo with your computer?what is your goal?
make PC 32bit software,console and windows programs?
there is also those who want to do more lowlevel things like having arduino board,with ports to control with electronics or old DOS control things with printer port,with in and out to different hardware ports

my none asm creations
https://masm32.com/board/index.php?topic=6937.msg74303#msg74303
I am an Invoker
"An Invoker is a mage who specializes in the manipulation of raw and elemental energies."
Like SIMD coding

abbyrjones72

Do what I am doing and start with the Iczelion tutorials. They are very explanatory and clear.