News:

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

what is the correct step of learning assembly?

Started by chiwing, June 14, 2009, 09:22:09 AM

Previous topic - Next topic

chiwing

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

mitchi

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.

d0d0

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.


ramguru

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

dedndave

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

chiwing

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 ???

dedndave

it isn't super fast - lol
i use firefox for the forum
that seems to help a little

mitchi

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.