flat assembler
Message board for the users of flat assembler.

Index > Main > What book would you recommend for learning Assembly.

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



Joined: 12 Dec 2008
Posts: 9
greeneyehawk13 12 Dec 2008, 23:51
what book is the best?
Post 12 Dec 2008, 23:51
View user's profile Send private message Reply with quote
asmcoder



Joined: 02 Jun 2008
Posts: 784
asmcoder 12 Dec 2008, 23:56
[content deleted]


Last edited by asmcoder on 14 Aug 2009, 14:54; edited 1 time in total
Post 12 Dec 2008, 23:56
View user's profile Send private message Reply with quote
greeneyehawk13



Joined: 12 Dec 2008
Posts: 9
greeneyehawk13 13 Dec 2008, 00:06
asmcoder wrote:
what is your level?
i recommend google and intel manuals


My level is 0, I know nothing i assembly, but I wish to learn
Post 13 Dec 2008, 00:06
View user's profile Send private message Reply with quote
f0dder



Joined: 19 Feb 2004
Posts: 3175
Location: Denmark
f0dder 13 Dec 2008, 00:46
There aren't really any decent modern books. There's a lot about 16-bit assembly, but not much has been written about 32- and 64-bit. There's a whole bunch stuff on the web, and not all is bad, but it doesn't have the same "edited quality" as what you find in books...
Post 13 Dec 2008, 00:46
View user's profile Send private message Visit poster's website Reply with quote
kas



Joined: 16 Jan 2008
Posts: 36
Location: UK
kas 13 Dec 2008, 02:26
Hi,

Has anyone read/used "32/64-Bit 80x86 Assembly Language Architecture" at all?

In particular I was wondering if it was better at explaining the sse and 64 specific stuff than the official manuals.

Kas.
Post 13 Dec 2008, 02:26
View user's profile Send private message Reply with quote
asmcoder



Joined: 02 Jun 2008
Posts: 784
asmcoder 13 Dec 2008, 11:28
[content deleted]


Last edited by asmcoder on 14 Aug 2009, 14:54; edited 1 time in total
Post 13 Dec 2008, 11:28
View user's profile Send private message Reply with quote
Mac2004



Joined: 15 Dec 2003
Posts: 314
Mac2004 13 Dec 2008, 12:45
The Art of Assembly by Randall Hyde. More details about the book should be found through Google.

Regards,
Mac2004
Post 13 Dec 2008, 12:45
View user's profile Send private message Reply with quote
El Tangas



Joined: 11 Oct 2003
Posts: 120
Location: Sunset Empire
El Tangas 13 Dec 2008, 20:23
The Art of Assembly is good, but maybe you should start by the old edition that is not focused on HLA. Use this string in google:

"The Art of Assembly" "MASM: Directives & Pseudo-Opcodes"

It was writen for ms-dos, but I think to learn basic assembly, you should use a dedicated old computer running an unprotected OS like DOS, so that you can learn the low level pc architecture, and have full access.

Then you can move to within the boundaries of a protected OS like linux or windows. At this time, you should learn how to interface assembly to HLL's.
Post 13 Dec 2008, 20:23
View user's profile Send private message Reply with quote
Mac2004



Joined: 15 Dec 2003
Posts: 314
Mac2004 13 Dec 2008, 20:39
@EL Tangas: You are correct, I was implicitly referencing to the 16bit version (DOS) of the book and not to the newer version (HLA).
Thanx for pointing that out! Smile

regards,
Mac2004
Post 13 Dec 2008, 20:39
View user's profile Send private message Reply with quote
mattst88



Joined: 12 May 2006
Posts: 260
Location: South Carolina
mattst88 14 Dec 2008, 05:36
Start by learning assembly on a platform that makes sense. x86 is a bunch of gibberish with its condition flags and bizarre instructions compared to a RISC CPU.

I know you won't listen to me, but I definitely believe this to be the best strategy.
Post 14 Dec 2008, 05:36
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20363
Location: In your JS exploiting you and your system
revolution 14 Dec 2008, 05:47
mattst88: Except that most people will only ever get the chance to program for the x86 platform. So learning another CPU is not an option in that case.
Post 14 Dec 2008, 05:47
View user's profile Send private message Visit poster's website Reply with quote
tom tobias



Joined: 09 Sep 2003
Posts: 1320
Location: usa
tom tobias 14 Dec 2008, 13:19
f0dder wrote:

There aren't really any decent modern books.
And I do not dispute that opinion, but for the record:

http://board.flatassembler.net/topic.php?t=4386

mattst88 wrote:

Start by learning assembly on a platform that makes sense. x86 is a bunch of gibberish with its condition flags and bizarre instructions compared to a RISC CPU.

Agree.

Smile
Post 14 Dec 2008, 13:19
View user's profile Send private message Reply with quote
LocoDelAssembly
Your code has a bug


Joined: 06 May 2005
Posts: 4624
Location: Argentina
LocoDelAssembly 14 Dec 2008, 13:59
What would be the recommended RISC architecture to learn Assembly?
Post 14 Dec 2008, 13:59
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20363
Location: In your JS exploiting you and your system
revolution 14 Dec 2008, 14:34
LocoDelAssembly wrote:
What would be the recommended RISC architecture to learn Assembly?
For contemporary CPUs the choices would seem to be between ARM and PIC.

I wouldn't recommend ARM due the the major difficulty in finding both documentation and hardware.

I would recommend PIC. Documentation is both abundant and free. Software emulators and assemblers are also free. Plus the hardware is easily obtainable. There are many starter kits available and they are cheap.
Post 14 Dec 2008, 14:34
View user's profile Send private message Visit poster's website Reply with quote
tom tobias



Joined: 09 Sep 2003
Posts: 1320
Location: usa
tom tobias 14 Dec 2008, 21:29
Post 14 Dec 2008, 21:29
View user's profile Send private message Reply with quote
neville



Joined: 13 Jul 2008
Posts: 507
Location: New Zealand
neville 15 Dec 2008, 00:58
LocoDelAssembly wrote:
What would be the recommended RISC architecture to learn Assembly?
It depends on whether greeneyehawk13 wants to just "learn assembly" for the sake of it, or to "learn X86 assembly, perhaps for the purpose of developing some PC software one day...".
I suspect the latter, and if so then he should restrict himself to the X86 architecture. Learning any other CPU first would be a waste of time IMHO. Perhaps start with 8088 real-mode 8/16-bit programming only, which is "relatively" RISC compared with a modern X86-64 CPU instruction set. Best of all, it can still be run on an X86-64 CPU.

It also depends on what greeneyehawk13's areas of interest are as to what aspects of programming he should concentrate on - system programming, hardware control, graphics, number crunching, gaming, real-world I/O etc etc. The field is vast and its easier to learn if it can be combined with personal interests IMO.

Comments?

_________________
FAMOS - the first memory operating system
Post 15 Dec 2008, 00:58
View user's profile Send private message Visit poster's website Reply with quote
wht36



Joined: 18 Sep 2005
Posts: 106
wht36 15 Dec 2008, 09:33
I learnt my assembly language from PCHelp. It's an old program though and doesn't have win32 stuff.
Post 15 Dec 2008, 09:33
View user's profile Send private message Reply with quote
Cthulhu



Joined: 12 May 2005
Posts: 29
Cthulhu 15 Dec 2008, 10:30
Post 15 Dec 2008, 10:30
View user's profile Send private message Reply with quote
neville



Joined: 13 Jul 2008
Posts: 507
Location: New Zealand
neville 15 Dec 2008, 21:04
I just found this www.emu8086.com/files/emulator-demo.zip which is also a fully-functioning Windows-based IDE at an introductory level with some nice features. A great learning tool IMO.

There are lots of samples included, covering number-crunching apps and hardware...


And the built-in assembler is fasm ver 1.64 Exclamation Here's the readme:
Code:
    
    EMU8086  - THE MICROPROCESSOR EMULATOR
    
    
    Introduction
    ============
    
    emu8086 is the emulator of 8086 (Intel and AMD compatible) microprocessor 
    and integrated assembler with tutorials for beginners. 
    The emulator runs programs like the real microprocessor in step-by-step mode.
    It shows registers, memory, stack, variables and flags. 
    All memory values can be investigated and edited by a double click.
    The instructions can be executed back and forward.
    
    emu8086 can create a tiny operating system and write its binary code to
    a bootable floppy disk. The software package includes  several external virtual
    devices: robot, stepper motor, led display, and traffic lights intersection. 
    Additional devices can be created. 
    
    
    REQUIREMENTS
    ============
    
    Administrative rights for Windows XP/Vista users.
    
    10 Mb of hard disk space and 1024x768 or greater screen resolution.
    
       
    COPYRIGHTS
    ==========

    Portions Copyright 1997-2008 Barry Allyn.  All rights reserved.

    Flat Assembler     version 1.64
    Copyright (c) 1999-2008, Tomasz Grysztar.
    All rights reserved.
   
    Copyright (c) 2008 by EMU8086.COM All rights reserved. 
    
    The information available in reference is copyrighted unless otherwise indicated.
    you are allowed to reproduce, upload, copy or translate information from this software,
    only under the following conditions: 
    
        1. Use of such information includes our copyright notice.
        2. Use of such information includes a hyperlink to emu8086.com website. 
    
    
    CONTACT
    =======        
       
    e-mail:    info@emu8086.com
    
    URL: http://www.emu8086.com
        

_________________
FAMOS - the first memory operating system
Post 15 Dec 2008, 21:04
View user's profile Send private message Visit poster's website Reply with quote
wht36



Joined: 18 Sep 2005
Posts: 106
wht36 16 Dec 2008, 16:09
A program that also helped me a lot in the old days was d86 ( http://eji.com/a86/ ). Ketman ( http://www.btinternet.com/~btketman/ ) is also a good program as well. Both of these allow one to enter assembly commands in the debugger/interpreter and examine the results directly.

Unfortunately none of the two (and I think also emu8086) support 32 bit assembly, so you can only play around with 16 bit registers. Nevertheless, I think they are good programs to start off with as well.
Post 16 Dec 2008, 16:09
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-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.