The MASM Forum Archive 2004 to 2012

Project Support Forums => HLA Forum => Topic started by: chiwing on June 14, 2009, 09:22:09 AM

Title: what is the correct step of learning assembly?
Post by: chiwing on June 14, 2009, 09:22:09 AM
do learning assembly means i can understand all kind of high level language's decompile code ? --> that means they didn't have much style ~ ~

and what is the correct step of learning assembly?

i am learning c++ and find that difficult~ ~
especially , the style of api (
dwFileOffsetLow,   // low-order word of lock region offset
    DWORD dwFileOffsetHigh,   // high-order word of lock region offset 
    DWORD nNumberOfBytesToLockLow,   // low-order word of length to lock
    DWORD nNumberOfBytesToLockHigh    // high-order word of length to lock
)

a pipe of terms that i don't understand,
api  like low level program..

i think some expert of asm can guess and write api themselves by infer the parameter name in the api~ ~ do my infer correct?

do HLA is more low level than  c++, what's the different?

thanks
Title: Re: what is the correct step of learning assembly?
Post by: mitchi on June 14, 2009, 09:30:15 AM
Learning every one of these will require a huge amount of work :

- 32 bit Assembly
- C
- C++
- DLL, linking and other stuff
-  "some" of the Windows API

API = Application programming interface. It's a bunch of functions definitions and equates generally.
Title: Re: what is the correct step of learning assembly?
Post by: d0d0 on June 14, 2009, 09:58:37 AM
hi chiwing,

if you're struggling with c++, then may i suggest learning python if you're not familiar with any other high level languge. C++ is a huge+complicated language to master, it will take time.
Like mitch said trying to learn all will take a huge amount of work - baby steps :bg

if you want a genle intro to assembly language programming then you might want to try HLA. Once you're comfortable then you can switch to the other asemblers like MASM.

Once you grasp the fundamentals of programming languages, learning another is just about syntax and semantics.

IMHO, the first step to learning assembly is to learn machine architecture/organisation.

Title: Re: what is the correct step of learning assembly?
Post by: ramguru on June 14, 2009, 10:06:06 AM
Quote from: chiwing on June 14, 2009, 09:22:09 AM
do learning assembly means i can understand all kind of high level language's decompile code ? --> that means they didn't have much style ~ ~
..
I wouldn't say that way. But it would help to understand.
It's really hard to grasp what's going on in every program.
Branchless code & data which is treated as executable code
does make things obscure & require a lot of tracing / debugging.
F.e.:

//-- C code
if (i >= 8)
   i = 0;
else
   A[i] = A[i+1];

;---ASM code
mov    ecx, i
mov    edi, OFFSET A
and    ecx, 7
mov    eax, [edi+ecx*4+4]
mov    DWORD PTR [edi+ecx*4], eax

Both C & Asm code does the same thing .. could you guess  :bg
Title: Re: what is the correct step of learning assembly?
Post by: dedndave on June 14, 2009, 11:34:58 AM
the API functions still exist in assembler
they are only slightly prettier to look at
pretty much the same in that regard - some assembler programmers use the C libraries, as well

welcome to the forum, though
UtillMasm may be able to help you if you have problems understanding English
Title: Re: what is the correct step of learning assembly?
Post by: chiwing on June 14, 2009, 12:32:56 PM
i am happy to see all of your reply quickly~ ~
i ahve learn a lot
i want to have a sequence of learning assembly~
pascal-->C -->c++, it's my sequence now, which in the state of C++ now , and i want to know how in change to assembly
c++  -->api-->HLA-->asm

besides, i find this forum loading speed is quite slow~ ~
lack of money to find a quicker server??
or bad ISP ???
Title: Re: what is the correct step of learning assembly?
Post by: dedndave on June 14, 2009, 12:42:16 PM
it isn't super fast - lol
i use firefox for the forum
that seems to help a little
Title: Re: what is the correct step of learning assembly?
Post by: mitchi on June 14, 2009, 03:36:34 PM
It's always fast enough here.
I just want to add something : there are no shortcuts. x86 assembly is however the most important language that you will learn, because it's a language that trains good programmers.