8 Replies - 1112 Views - Last Post: 03 July 2009 - 03:55 AM

#1 mostyfriedman  Icon User is offline

  • The Algorithmi
  • member icon

Reputation: 727
  • View blog
  • Posts: 4,473
  • Joined: 24-October 08

which assembly language to start with?

Posted 02 July 2009 - 04:14 PM

hey everyone,

i want to start learning some assembly and i was wondering if someone could tell me which one would be the best one to start out with and also if you know good sources to learn from that would be much appreciated..
Is This A Good Question/Topic? 0
  • +

Replies To: which assembly language to start with?

#2 Dantheman  Icon User is offline

  • D.I.C Regular

Reputation: 34
  • View blog
  • Posts: 445
  • Joined: 27-May 09

Re: which assembly language to start with?

Posted 02 July 2009 - 05:25 PM

Anything but x86 Assembly.

Assembly is not an ordinary programming language, in the sense that it requires a knowledge of computer's internals in order to be used. So hopefully you will find a material that provides such information.

I personally have learned MIPS and found it to be a great language. It is simple and yet teaches you the right way to think with which you'll be able to learn any Assembly after that. Here's a classic text that uses MIPS - http://www.amazon.co...o...0534&sr=1-7

This post has been edited by Dantheman: 02 July 2009 - 05:26 PM

Was This Post Helpful? 1
  • +
  • -

#3 mostyfriedman  Icon User is offline

  • The Algorithmi
  • member icon

Reputation: 727
  • View blog
  • Posts: 4,473
  • Joined: 24-October 08

Re: which assembly language to start with?

Posted 02 July 2009 - 05:49 PM

i know a little MIPS actually but still want to enhance my knowledge in it before moving to another assembly language
Was This Post Helpful? 0
  • +
  • -

#4 no2pencil  Icon User is online

  • Toubabo Koomi
  • member icon

Reputation: 5182
  • View blog
  • Posts: 26,890
  • Joined: 10-May 07

Re: which assembly language to start with?

Posted 02 July 2009 - 05:55 PM

@mostyfriedman : We have been building a conglomerate of Assembler resources available here.

View PostDantheman, on 2 Jul, 2009 - 06:25 PM, said:

Anything but x86 Assembly.

Why? That seems to be the most abundant for usage, examples, & available information.
Was This Post Helpful? 0
  • +
  • -

#5 Dantheman  Icon User is offline

  • D.I.C Regular

Reputation: 34
  • View blog
  • Posts: 445
  • Joined: 27-May 09

Re: which assembly language to start with?

Posted 02 July 2009 - 06:36 PM

View Postno2pencil, on 2 Jul, 2009 - 04:55 PM, said:

Why? That seems to be the most abundant for usage, examples, & available information.


MIPS was the vision of a small group. The pieces of this architecture fit nicely together, and the whole thing can be described succintly. Such is not the case for the x86. It is the product of several independent groups who evolved the architecture over almost 20 years, adding new features to the original instruction set as someone might add clothing to a packaged bag. In the end, you are left with the architecture that has been plagued by the "golden handcuffs" of compability, because at each step the existing software base was too important to jeopardize with significant architecture changes. IA-32 is difficult to explain and impossible to love.

Yes, if you want to be an Assembly programmer in the real-world, x86 would be the best choice for you. But that is not why most people learn Assembly, and why some universities make Assembly mandatory. The real reason is to teach people to think on a lower level of abstraction, to be able to break the program down to the register operations. And for that, x86 is a bad choice. It's extreme complexity would get in the way of learning.
Was This Post Helpful? 0
  • +
  • -

#6 no2pencil  Icon User is online

  • Toubabo Koomi
  • member icon

Reputation: 5182
  • View blog
  • Posts: 26,890
  • Joined: 10-May 07

Re: which assembly language to start with?

Posted 02 July 2009 - 06:44 PM

Interesting, I never thought about all the intricate details before.

I never got hung up on any x86 differences, just proceed with an understanding that there are specific commands available per that processor, or whichever processor base your are writing for (386/486/MMX). But I can see how one could easily get discouraged from wanting to learn.
Was This Post Helpful? 0
  • +
  • -

#7 Dantheman  Icon User is offline

  • D.I.C Regular

Reputation: 34
  • View blog
  • Posts: 445
  • Joined: 27-May 09

Re: which assembly language to start with?

Posted 02 July 2009 - 07:24 PM

I haven't realized how complex x86 was until I got introduced to the MIPS.

In the analogous way I oppose people being taught C\C++ as their first language, because I find that complexity gets in the way.
Was This Post Helpful? 0
  • +
  • -

#8 wildgoose  Icon User is offline

  • D.I.C Regular
  • member icon

Reputation: 67
  • View blog
  • Posts: 468
  • Joined: 29-June 09

Re: which assembly language to start with?

Posted 02 July 2009 - 08:21 PM

Having worked with multiple processor families I have several favorites. But it comes down to the bottom line, income.

So do you prefer to work on embedded products or Windows drivers?

Once upon a time knowing assembly language was a really big thing. Now that compilers are getting smarter, computers faster, the need for assembly language programmers is getting less and less. Most companies prefer merely to have their programming staff re-arrange the code and tighten up on bottle necks. Not optimize to the assembly language level.

General purpose assembly isn't much not in demand. Reworking code into SIMD is. Not so much in applications, but in drivers, and math libraries.
Embeded processors for mobile products tend to be MIPS or PIC based and do a degree of assembly. PowerPC is less common, but there are always exceptions.

Game Consoles. The most powerful CPU in the games world in my humble opinion is the chip in the PSP. It has a VERY powerful vector math SIMD functionality. After that its a toss up between an AltiVec (PowerPC) and the fully loaded EM64T (80x86). The SPU for parallel processing is powerful too, but for that power there's a problem where as data and code have to be DMA'd to the processor, it crunches, and the result DMA back out. Takes time to get the data in and out. But if you have little data, lots of number crunching, its a great processor.

There's a book "Vector Game Math Processors", written by James Leiterman that actually covers most these processors. The book is out of print now, but its a really cool book! It's still available on-line in used condition.

So if you're into working directly with hardware, PIC and Mips is the way to go. If you're into video games then MIPS and PowerPC. The 80x86 is pretty cool too, but unlike the others it has a variable length instruction set and has a steep learning curve to learn everything. AMD and Intel have their own subset instructions. The new 64-bit instruction set dropped older 80x86 instructions to make room for new ones!

This post has been edited by wildgoose: 03 July 2009 - 12:01 AM

Was This Post Helpful? 1
  • +
  • -

#9 mostyfriedman  Icon User is offline

  • The Algorithmi
  • member icon

Reputation: 727
  • View blog
  • Posts: 4,473
  • Joined: 24-October 08

Re: which assembly language to start with?

Posted 03 July 2009 - 03:55 AM

alright, thanks everyone for the input
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1