Programming Forums

Programming Forums (http://www.programmingforums.org/forumindex.php)
-   Assembly (http://www.programmingforums.org/forum20.html)
-   -   Thinking about starting Assembly (http://www.programmingforums.org/showthread.php?t=14030)

Grich Sep 23rd, 2007 6:33 PM

Thinking about starting Assembly
 
I am currently a student of programming (for too long) and have been programming for a very long time as a hobby as well. I already know C++, JAVA, VB.NET and too many scripting languages. Now I am thinking about taking up Assembly. Any suggestions, websites, books you could recommend. PLEASE.:D

grimpirate Sep 23rd, 2007 8:17 PM

If you want to learn the theory of assembly an often recommended book is called "The Art of Assembly", I can't remember the author but I'm sure a google search will bring you to his site where he makes the book available for free. However, I haven't looked into the book too much myself because it uses a somewhat higher level language than assembly, it's somewhere between C and assembly. For an easy and very versatile assembler to begin with I recommend FASM at http://www.flatassembler.net/ their forum has a wealth of knowledge. One guy even wrote a complete OS using just FASM (it's called MenuetOS). As an introductory text I recommend Introduction to Computing Systems which I used in college and it really teaches you stuff at a basic level, even some of the circuitry involved. I've got a brief tutorial I wrote for a boot disk as well somewhere on the site so search for that too. Hope that all helps.

Grich Sep 24th, 2007 2:15 AM

Thanks man, I have heard of that book "The Art of Assembly". I can get a copy.

POSIX Sep 29th, 2007 11:37 PM

I chose to learn asm (x86) before learning any high level language. I would recommend NASM - the netwide assembler to learn on, although (too) many tuts and books use MASM/TASM which has a confusing abunance of directives which I personally think are unnecessary. Those compilers are also not free. I also have the "art of assembly" book in PDF format. It's a great work, but it depends how deep you want to get into asm. Obviously it's not as widely used as in the simpler computer days such as the DOS era. But CPU's still execute asm utilmately, so it's important to understanding the code generated by compilers.

ZenMasterJG Sep 30th, 2007 11:50 PM

Quote:

Originally Posted by POSIX (Post 134452)
I chose to learn asm (x86) before learning any high level language. I would recommend NASM - the netwide assembler to learn on, although (too) many tuts and books use MASM/TASM which has a confusing abunance of directives which I personally think are unnecessary. Those compilers are also not free.

MASM is free. Its also not a compiler. If you're working on Windows, I'd go with MASM. On linux, definatly NASM, though GAS will do you just as well.

lectricpharaoh Oct 1st, 2007 3:10 AM

Quote:

Originally Posted by POSIX
But CPU's still execute asm utilmately, so it's important to understanding the code generated by compilers.

I'll grant that it's worthwhile to know how the CPU works, but it does not 'execute asm'. The CPU executes machine code, and that's all it executes; the fact that assembly mnemonics correspond directly to machine code instructions in virtually all cases is probably the cause of your confusion.

Grich Oct 6th, 2007 10:18 AM

Would you guys know were to look for info on cpu arichecture and Memory Addresses. Art of Assembly is great for it, but I want to know a bit more. Is there anything about the topics in detail.
I'm probably asking too much.

DaWei Oct 6th, 2007 11:49 AM

Memory is essentially a contiguous array of bytes running from element 0 to element (number of address lines ^2 - 1). Some implementations may not be able to address every element -- addressing may be aligned on some boundary other than a byte boundary. Not all of the address space is populated (usually). Further, some of the space may be dedicated to memory-mapped I/O.

Almost any document dealing with microprocessors will have basic material on the architecture. Certainly the specification for any particular micro will have it. I'd suggest that Google would make a fine starting point.

mrynit Oct 6th, 2007 8:27 PM

Grich

you want to learn assembly but for what architecture? x86, 6502, ARM, TI-8x, Atmel...

Grich Oct 6th, 2007 8:31 PM

Quote:

Originally Posted by mrynit (Post 134851)
Grich

you want to learn assembly but for what architecture? x86, 6502, ARM, Atmel...

Oh yes, sorry, should have mentioned :o OOPS.
x86 architecture.
I have some very good sources now on x86 assembly, but I just want to know a bit more on the hardware.


All times are GMT -5. The time now is 9:25 PM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC