flat assembler
Message board for the users of flat assembler.

Index > Tutorials and Examples > Tutorials, Books, Sites

Goto page 1, 2  Next
Author
Thread Post new topic Reply to topic
uart777



Joined: 17 Jan 2012
Posts: 369
uart777 24 Jan 2013, 21:39
Please post your favorite ASM references.

* Art of Assembler book (Randall Hyde): http://cs.smith.edu/~thiebaut/ArtOfAssembly/artofasm.html
* Iczelion's Win32 ASM tutorials: http://win32assembly.programminghorizon.com/tutorials.html
* comrade's FASM graphics examples: http://comrade.ownz.com/sources.html
* vid's FASM macro tutorials: http://bos.asmhackers.net/docs/FASM%20tutorial/preproc.html
* Optimization (Agner Fog): http://www.agner.org/optimize/
* Sandpile (X86 Machine Code): http://www.sandpile.org/
* Intel Software Developer Manuals: http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

PS: Sticky?
Post 24 Jan 2013, 21:39
View user's profile Send private message Reply with quote
HaHaAnonymous



Joined: 02 Dec 2012
Posts: 1178
Location: Unknown
HaHaAnonymous 24 Jan 2013, 23:05
[ Post removed by author. ]


Last edited by HaHaAnonymous on 28 Feb 2015, 21:54; edited 1 time in total
Post 24 Jan 2013, 23:05
View user's profile Send private message Reply with quote
rugxulo



Joined: 09 Aug 2005
Posts: 2341
Location: Usono (aka, USA)
rugxulo 24 Jan 2013, 23:12
Post 24 Jan 2013, 23:12
View user's profile Send private message Visit poster's website Reply with quote
KevinN



Joined: 09 Oct 2012
Posts: 160
KevinN 25 Jan 2013, 23:37
http://bos.asmhackers.net/docs/FASM%20tutorial/

One of those ( ^ ) had already been posted. I see this as an easy and sensible approach to introduction. Here's the rest of the tutorials off of bos.asmhackers.net
Post 25 Jan 2013, 23:37
View user's profile Send private message Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 26 Jan 2013, 00:12
Randall Hyde sucks.
Post 26 Jan 2013, 00:12
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
KevinN



Joined: 09 Oct 2012
Posts: 160
KevinN 26 Jan 2013, 00:28
JohnFound wrote:
Randall Hyde sucks.


Why?
Post 26 Jan 2013, 00:28
View user's profile Send private message Reply with quote
AsmGuru62



Joined: 28 Jan 2004
Posts: 1708
Location: Toronto, Canada
AsmGuru62 26 Jan 2013, 13:22
Probably because once you learn assembly language - you must learn how to use Hyde's language.
The learning curve is too steep.
I wanted to design my OO Assembler this way once, but then
I tried Hyde and thought that my "invention" no one will use.
Post 26 Jan 2013, 13:22
View user's profile Send private message Send e-mail Reply with quote
HaHaAnonymous



Joined: 02 Dec 2012
Posts: 1178
Location: Unknown
HaHaAnonymous 26 Jan 2013, 13:32
[ Post removed by author. ]


Last edited by HaHaAnonymous on 28 Feb 2015, 21:54; edited 1 time in total
Post 26 Jan 2013, 13:32
View user's profile Send private message Reply with quote
TmX



Joined: 02 Mar 2006
Posts: 843
Location: Jakarta, Indonesia
TmX 26 Jan 2013, 14:39
AsmGuru62 wrote:
Probably because once you learn assembly language - you must learn how to use Hyde's language.
The learning curve is too steep.


Do you mean HLA?

I think Mr Hyde's intention of writing HLA is to ease folks who know high level languages like Pascal, C/C++, or Java in learning assembly. Once they grasp the basic, they can write real assembly code (without the high level constructs).
Post 26 Jan 2013, 14:39
View user's profile Send private message Reply with quote
AsmGuru62



Joined: 28 Jan 2004
Posts: 1708
Location: Toronto, Canada
AsmGuru62 26 Jan 2013, 14:54
Yes, I think the same too.
From Pascal to Assembly - HLA is very good at this, the source
even looks like Pascal.
I am trying to "move" people from Assembly to OO Assembly.
My IDE however is still in progress.
Smile
Post 26 Jan 2013, 14:54
View user's profile Send private message Send e-mail Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 26 Jan 2013, 16:20
It is an old story. The archives have thousand pages of flame wars on this topic. Wink

IMO, Randal Hyde's intention was to bind the people to it's own "assembler", especially the students he is teaching. This way, he caused more harm to the assembly language programming than any HLL. With aggressive advertisement even now his book is pretty popular on the search engines.

The main argument of Hyde is that the assembly syntax is unreadable and then for the beginners have to be invented more "readable" syntax that to resemble HLLs.

He never realized, that the assembly syntax in its classic, line based form is more readable than any "character stream" syntax - like C or Pascal.

For example, can you consider following code assembly???
Code:
procedure WndProc( lParam:dword; wParam:dword; uMsg:uns32; hWnd:dword );
    nodisplay;
    
begin WndProc;
    // If the WM_DESTROY message comes along, then we've
    // got to post a message telling the event loop that
    // it's time to quit the program.  The return value in
    // EAX must be false (zero).  The GetMessage function
    // will return this value to the event loop which is
    // the indication that it's time to quit.
    
    if( uMsg = win.WM_DESTROY ) then
    
        win.PostQuitMessage( 0 );
        
    
    elseif( uMsg = win.WM_COMMAND ) then
        
        mov( wParam, eax );
        if( ax = IDM_TEST ) then
        
            win.MessageBox( NULL, TestStr, AppName, win.MB_OK );
            
        elseif( ax = IDM_HELLO ) then
         
            win.MessageBox( NULL, Hello_str, AppName, win.MB_OK );
            
        elseif( ax = IDM_GOODBYE ) then 
         
            win.MessageBox( NULL, Goodbye_str, AppName, win.MB_OK );
            
        else
        
            win.DestroyWindow( hWnd );
        
        endif;
         
    else
    
        // If a WM_DESTROY message doesn't come along,
        // let the default window handler process the
        // message.  Whatever (non-zero) value this function
        // returns is the return result passed on to the
        // event loop.
        
        win.DefWindowProc( hWnd, uMsg, wParam, lParam );
        exit WndProc;
        
    endif;
    sub( eax, eax );
    
end WndProc;    
Post 26 Jan 2013, 16:20
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
HaHaAnonymous



Joined: 02 Dec 2012
Posts: 1178
Location: Unknown
HaHaAnonymous 26 Jan 2013, 16:33
[ Post removed by author. ]


Last edited by HaHaAnonymous on 28 Feb 2015, 21:54; edited 1 time in total
Post 26 Jan 2013, 16:33
View user's profile Send private message Reply with quote
uart777



Joined: 17 Jan 2012
Posts: 369
uart777 27 Jan 2013, 01:33
I learned from Randall Hyde a long time ago (in the 90s, Hutch+Iczelion era) when he used to write pure ASM. I don't like HLA, either - mov(eax,ecx); is counter-productive and not good to teach beginners - but Hyde's book has much useful information and is one of the biggest ASM references online.

Sorry, John, but it seems you're in denial Smile You use HL features, too - proc, stdcall, invoke, begin, etc - and C++ and OS-specific controls (highest level). At least Randall Hyde is honest and admits that he uses HL features.

Guru: Good luck with your OO ASM.
Post 27 Jan 2013, 01:33
View user's profile Send private message Reply with quote
AsmGuru62



Joined: 28 Jan 2004
Posts: 1708
Location: Toronto, Canada
AsmGuru62 27 Jan 2013, 01:41
I wonder if the 3 calls to MessageBox in that code optimized or not?
Like the only different parameter there is a string passed in.
So, does it generate a call 3 times or a one time, but for different text.
Post 27 Jan 2013, 01:41
View user's profile Send private message Send e-mail Reply with quote
ASM-Man



Joined: 11 Jan 2013
Posts: 64
ASM-Man 27 Jan 2013, 04:29
JohnFound wrote:
Randall Hyde sucks.


I think too. HLA is not(for me) an assembly language. Shouldn't be considered one. It's just another high-level language; an variant to pascal language. Why consider it asembly? I think that if it can be considered an assembly language really,pascal,ada,C++ can too. Right? Razz

sometime ago I was looking for assembly's books. I found the "The Art of Assembly Language" a well-commented book about assembly language. So I run to try to get it,but forget it(or just put at end-of-list) when I seen its syntax,I forgot that(maybe I can touch it a day,just out curiosity) but now I need real assembly.

BTW,why he haven't used pascal or something like this in its class? Embarassed

---------

AsmGuru62 wrote:
Yes, I think the same too.
From Pascal to Assembly - HLA is very good at this, the source
even looks like Pascal.
I am trying to "move" people from Assembly to OO Assembly.
My IDE however is still in progress.
Smile


Sorry,but are you saying OO = Oriented Object? Shocked
if so,I'm just curious now,can you give some example of it? Cool

_________________
I'm not a native speaker of the english language. So, if you find any mistake what I have written, you are free to fix for me or tell me on. Smile
Post 27 Jan 2013, 04:29
View user's profile Send private message Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 27 Jan 2013, 07:35
uart777, I am using macros, because it is normal for "macro assembler". But I always try to keep the pure assembly syntax of my macros in the form: "label instruction [operants]". For this reason you will never see me using HLL style "if then else" macros or "for", "while", etc. Because their syntax is HLL. Another non assembly feature is to call subroutines by their names - it is clearly feature of the HLLs and I never will implement such a feature in my macro libraries.

ASM-Man, I don't know how AsmGuru62 wants to implement OOP, but here is small example how FreshLib implements it:
Code:
        stdcall Create, CButton
        execute [frmMain], TWindow.AddChild, ebx
        stdcall Set, ebx, TButton.width, 100
        stdcall Set, ebx, TButton.heihgt, 100
        stdcall Set, ebx, TButton.Caption, 'My button'
        stdcall Set, ebx, TButton.OnClick, ButtonClick
        stdcall Set, ebx, TButton.Visible, TRUE    
Post 27 Jan 2013, 07:35
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
AsmGuru62



Joined: 28 Jan 2004
Posts: 1708
Location: Toronto, Canada
AsmGuru62 27 Jan 2013, 12:46
@ASM-Man: yes -- OO means Object Oriented.
Post 27 Jan 2013, 12:46
View user's profile Send private message Send e-mail Reply with quote
TmX



Joined: 02 Mar 2006
Posts: 843
Location: Jakarta, Indonesia
TmX 27 Jan 2013, 14:04
JohnFound wrote:

The main argument of Hyde is that the assembly syntax is unreadable and then for the beginners have to be invented more "readable" syntax that to resemble HLLs.


The first two programming languages I learnt was Basic and Pascal.
That's why when I was learning HLA, I felt at home.

Other peoples may dislike HLA. To each their own, I guess. Smile
Post 27 Jan 2013, 14:04
View user's profile Send private message Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 27 Jan 2013, 14:22
The first language I learned was BASIC on Apple II. Pascal is the language I used for decade or even more (and I prefer it to C/C++) but assembly language has different syntax and different rules. You will never realize what makes it better than HLLs, if you try to keep HLL syntax intact.
Post 27 Jan 2013, 14:22
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
TmX



Joined: 02 Mar 2006
Posts: 843
Location: Jakarta, Indonesia
TmX 27 Jan 2013, 14:39
JohnFound wrote:
You will never realize what makes it better than HLLs, if you try to keep HLL syntax intact.


Yes, you are absolutely right. And actually it's also stated in the book itself:
Quote:

Once you reach a certain level of comfort with HLA's high-level control structure and decide you need more power than they have to offer, it's time to move on and learn the real 80x86 instructions behind these statements.


Smile
Post 27 Jan 2013, 14:39
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page 1, 2  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.