flat assembler
Message board for the users of flat assembler.
![]() Goto page 1, 2 Next |
Author |
|
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? |
|||
![]() |
|
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 |
|||
![]() |
|
rugxulo 24 Jan 2013, 23:12
|
|||
![]() |
|
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 |
|||
![]() |
|
JohnFound 26 Jan 2013, 00:12
Randall Hyde sucks.
|
|||
![]() |
|
KevinN 26 Jan 2013, 00:28
JohnFound wrote: Randall Hyde sucks. Why? |
|||
![]() |
|
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 |
|||
![]() |
|
TmX 26 Jan 2013, 14:39
AsmGuru62 wrote: Probably because once you learn assembly language - you must learn how to use Hyde's language. 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). |
|||
![]() |
|
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. ![]() |
|||
![]() |
|
JohnFound 26 Jan 2013, 16:20
It is an old story. The archives have thousand pages of flame wars on this topic.
![]() 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; |
|||
![]() |
|
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 |
|||
![]() |
|
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 ![]() Guru: Good luck with your OO ASM. |
|||
![]() |
|
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. |
|||
![]() |
|
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? ![]() 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? ![]() --------- AsmGuru62 wrote: Yes, I think the same too. Sorry,but are you saying OO = Oriented Object? ![]() if so,I'm just curious now,can you give some example of it? ![]() _________________ 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. ![]() |
|||
![]() |
|
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 |
|||
![]() |
|
AsmGuru62 27 Jan 2013, 12:46
@ASM-Man: yes -- OO means Object Oriented.
|
|||
![]() |
|
TmX 27 Jan 2013, 14:04
JohnFound wrote:
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. ![]() |
|||
![]() |
|
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.
|
|||
![]() |
|
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:
![]() |
|||
![]() |
|
Goto page 1, 2 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.