Fog Creek Software
Discussion Board




Assembly language

Can you think of any good reason for a web programmer to spend time with assembly language? I found some books on sale at the library (40 cents each). It was the first language I taught myself, in the 1980s and I thought it was fun. Since I bought the books I thought well now I can really learn assembly language, since I now have a good programming background (along with the 50+ other things I'm trying to learn at the moment).
But I really can't afford to spend any time on this unless I can think of some practical use for it, other than games (which I am not interested in).
I think assembly language is great for understanding computers better. However, most of what I do is for Unix and these books are for Windows. Also, I don't know where to find MASM.
Should I just forget it, or if not where can I find a new MASM and is it free? Are there some little interesting things I could do with it that would not take up all my time for the next year?

PC
Tuesday, January 21, 2003

I am also in the process of learning assembly language
for microcontrollers (PIC,8051,etc).
I just want to be able to make electronic boards.

How by the way what are the GOOD books on assembly language ?

Nicholas Franks
Tuesday, January 21, 2003

PC,

I taught myself assembly language for the 8088 back in the day, while in school. It was fun and intresting to program
DOS TSR stuff, and it gave a very good understanding of how stuff works under the covers.

Its now been some eight years since I started working professionally as a programmer. I have not used assembly language once in that time. So the short answer to your question is No, there is no need for assembly as long as you are not working with embedded systems or writing BIOSes and the like.

I dont regret learning assembly though, and I have been doing some stuff in my spare time in assembly,  but since you say you have to prioritize your learning efforts I would not learn assembly language if I was in your shoes.

Patrik
Tuesday, January 21, 2003

I mostly do "web programming" and learned assembly for the same reason Nicholas Franks mentions: I want to build boards, and stuff. Maybe not so useful for getting a job, but building devices is a fun side hobby.

assembler
Tuesday, January 21, 2003

the lower you've programmed, the more your higher code will be machine-friendly

wisdom
Tuesday, January 21, 2003

"Can you think of any good reason for a web programmer to spend time with assembly language?"

Well, I've used my ability to read assembly language to diagnose a couple problems in our production system.

I can't imagine needing to write assembler - given the space and performance penalties you are paying once you decide that you are using a web deployment, it's hard to imagine a circumstance where etching on the metal would pay off.

Books:
http://www.amazon.com/exec/obidos/tg/detail/-/0735608865/qid=1043190654/sr=8-1/ref=sr_8_1/103-3852970-3916643?v=glance&s=books&n=507846

John Robbins, Debugging Applications

http://www.amazon.com/exec/obidos/tg/detail/-/1576101746/qid=1043190728/sr=1-1/ref=sr_1_1/103-3852970-3916643?v=glance&s=books

Michael Abrash, Graphics Programming Black Book

Danil
Tuesday, January 21, 2003

Assembly is still sometimes useful for debugging.
Can't see why anyone would want to use it for
a normal app though.

geeauteeaemm
Tuesday, January 21, 2003

This guy writes *all* his Windows software in assembly.  Here is a link to a page where he tries to explain why he does this.

http://grc.com/smgassembly.htm

Also, he has a free assembly development kit available...

Tim Lara
Tuesday, January 21, 2003

So far it sounds like I shouldn't bother. Too bad because these books look so interesting (one and intro and the other advanced).
My work is all high level (Java, Perl, etc.) but I really prefer knowing how things work. Unfortunately I can't get paid for understanding. I'm glad that I did spend a couple of years on assembly language when I first started learning about computers. I don't see how people can use or program them without wondering what actually goes on inside.

PC
Tuesday, January 21, 2003

1. Assembler is fun.
2. Knowing assembler makes you a better programmer as far as I'm concerned. Knowing assembler gives you an excellent foundation to build upon if/when you learn new languages.

Lennart Fridén
Wednesday, January 22, 2003

>>>>>>>>Can you think of any good reason for a web programmer to spend time with assembly language?<<<<<<<<<<

As the whole point of the web is that it's platform independent you could substitute "web programmer" with "chartered accountant", "classical guitarist",  "burger filipper" , "serial killer" or whatever and the answer would be exactly the same.

Stephen Jones
Wednesday, January 22, 2003

>>>>>>>>Can you think of any good reason for a web programmer to spend time with assembly language?<<<<<<<<<<

Assembly trows out the bits onto the Cat 6 wire at higher initial velocity, thereby reducing latency times across the network. This should be especially noticable in SOAP responses, as they have a lower friction coefficient.


Sorry, couldn't resist :-)

Just me (Sir to you)
Wednesday, January 22, 2003

I strongly recommend that you read the book "Code" by Charles Petzold.

Matt Kennedy
Wednesday, January 22, 2003

Why?

PC
Wednesday, January 22, 2003

One good reason for reading books on assembly languge:  Because it looks interesting.

There's nothing wrong with learning a skill that doesn't appear to have immediate practical benefits.

Brent P. Newhall
Wednesday, January 22, 2003

Yes I agree. But since I already have a vague general understanding of assembly language (which I think has been extremely valuable) I wondered if I should invest time going into more depth and detail. As much as I would like to, it's hard enough to find the time for keeping up with the constant changes in web programming. There are a lot of things I want to learn that have no immediate practical value, and it's hard to decide which ones would be most worthwhile. I thought that if assembly language had some practical applications in web programming, it might be more worth the time.

PC
Wednesday, January 22, 2003

PC,

Learning assembly language will certainly have more practical benefits than posting extensively on this board as you have been. Don't get the wrong idea, I've enjoyed your posts, but if you really are wondering if you can afford to invest the time to learn, just cut forum posting out of your schedule and that will free up all the time you need to learn whatever new skill you fancy.

PC fan
Wednesday, January 22, 2003

PC Posted 22 times in January, 59 times in december. 100 posts total, according to usabilitymustdie.com . Thanks for the reminder "PC fan." I'll have to remind myself what I could be doing instead of reading various forums.

choppy
Wednesday, January 22, 2003

PC, you're better off learning about any of the following: DHTML, XML, XSLT, Python, SOAP, .NET, RSS, and on and on.

Much better to have experience in many tools then in only one. This way, you can learn the cool tricks people have done with each one - someday one might come in handy.

Either way, better to learn then to watch TV.

AEB
Thursday, January 23, 2003

Writing assembly code by itself is marginal. Whats usefull is getting used to thinking how systems work at the lowest level. You are not going to get this with a standalone toy program, you need to do something that forces you to step through many layers.

At one time writing a TSR or a VxD in MASM was a good way to do this. If you want something more current, substitute the opcodes in the Java VM, or its equivalent in .NET for assembly language.

Eric Moore
Thursday, January 23, 2003

One thing to consider is that you may get tired of doing web apps someday. It would be nice to have some lower-level skills in your arsenal. (Not that you'll necessarily ever use assembly language, per se, but writing a few assembly programs is a great way to ramp up to learning C/C++, since C was originally created to be a portable binding to assembly language).

Plus, web development is on lots of people's resumes. Any chump can learn web development in his spare time with $50 in programming books. Having assembly language skills on your resume will show people that, even beyond having a good understanding of low-level machine function, that you are really interested in computer science and have devoted a considerable amount of your time toward seeking more knowledge. If I was going to hire a programmer (in any language), having assembly skills on a resume would impress me.

Benji Smith
Friday, January 24, 2003

gcc -S -o code.s code.c

output your code to assembly and see it. this might make learning (or better yet understatnding) assembly  easier.

R. Dawson
Sunday, January 26, 2003

hi all , thats really fun to plying with some hardware as PC or even ROBOT , sometimes i ask myself does our minds working with 1's and 0's ? as what the CPU and its Registers does ?...sure the answer is up to you...anyway
could anyone please tell me how to shutdown a PC by assembly language ?

Night M
Tuesday, June 08, 2004

*  Recent Topics

*  Fog Creek Home