News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

Did I take too hard a job?

Started by sydetys, October 03, 2008, 04:55:07 PM

Previous topic - Next topic

sydetys

I started to read

PC Assembly Language
Paul A. Carter
July 23, 2006

PDF version from http://www.drpaulcarter.com/pcasm.

Carter uses NASM in tutorials. But I wanna usa MASM32.

I noticed many differences and I have to fix them. I am Noob. Is this gonna be hard and should start using NASM or will this be easy, at the same time learning more about differnt assembler languages?

BlackVortex

Learning 2 different syntaxes sucks. Decide which one you want and stick with it.

I'd say masm of courseĀ  :cheekygreen:

BogdanOntanu

When learning and being  a beginner using two ASM syntaxes will confuse you too much. You have no way of knowing if the error is conceptual or a syntax error.

However the low level concepts (registers, memory, flags, instructions) are pretty much the same or similar in all ASM syntax.

Knowing a few ASM dialects is useful. It is a little like knowing a few foreign languages. However you do learn another language only AFTER you know at least one language as well as possible... otherwise you have no solid reference base for making a comparison or for understanding.

IMHO MASM is the most advanced ASM syntax available today and the best start-up for a beginner.

After a while you can explore others like: GoASM, NASM, FASM, or my own SOL_ASM. However I suggest that you establish a firm ground of knowledge and understanding of MASM first.

ASM is no to be learned from books and tutorials. Of course they are usefully but to a much lesser extent than in other programming languages. For ASM you do need a mind capable to think simple and learn by itself, hands on experiment and understanding of how things are from experience and not because you are told that it is so.

And when you have a problem that you can not solve and understand and after you did your best at it... THEN  you have this forum for help and guidance.

Just do not make the mistake to start with old 16 bits int 21 stuff, neither with a huge project like the next OS or compiler or virtual machine... also do not start with complex reverse stuff or "gray area" things.

Start with simple normal windows applications: console first,  GUI later and grow up steep by step.

Ambition is a lame excuse for the ones not brave enough to be lazy.
http://www.oby.ro

hutch--

I agree with Bogdan here, narrow the range of variants here so that you can learn the basics then you will be in the position to choose other specialised tools. The vast majority of assembler programmers started with MASM as it has the capacity and support and have then gone on to use some of the other tools available, FASM, GoAsm and more recently POASM and Japheth's rebuild of WASM into JWASM.

Don't bother with 16 bit code, its a waste of space learning junk like segment offset addressing, interrupt driven OS calls and the like, modern assembler code is written in FLAT memory model within a protected mode operating system and is a far more elegant and powerful system than the old stuff. Start with console apps in masm32, they are simple to write and very clear in what you can do with them. As you learn more, GUI apps are the standard in Windows but it means you will have to start learning the Windows API functions.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

eaOn

I totally agree with you hutch. You hit me when it hurts most hehe  :P. I'm use to program in 16-bit at school [blame it to my teacher  :bdg] and it was a pure headache. Although, it helped me understand basic ASM language yet I decided to study masm32 because 16-bit DOS asm is sooooo primitive now. Just learn the basic, Jump, shift, rotate, logical operation, whatever. I may not have all the list now but you need to have atleast a background on it! :green

Quote from: BogdanOntanu on October 03, 2008, 08:01:41 PM
Just do not make the mistake to start with old 16 bits int 21 stuff, neither with a huge project like the next OS or compiler or virtual machine... also do not start with complex reverse stuff or "gray area" things.

LMAO! yeah writing int 21h is a waste of time if you ask me.   :lol