Why Assembly Language?


 
Thread Tools Search this Thread
Top Forums Programming Why Assembly Language?
# 1  
Old 12-07-2011
Why Assembly Language?

Hi guys,
Assembly language is a low level language designed in 1950's, both system and application programs were written in assembly at that time. There is no question of assembly being very effecient compared to the other high level languages. But it is very cumbersome to write programs in assembly. My question is that where does Assembly language stand today against the high level languages, I mean what can assembly do, that the other langues can't????

I hope you will explain your good points.
Thanks alot!
# 2  
Old 12-07-2011
This User Gave Thanks to frappa For This Post:
# 3  
Old 12-07-2011
Quote:
Originally Posted by gabam
My question is that where does Assembly language stand today against the high level languages, I mean what can assembly do, that the other langues can't????

I hope you will explain your good points.
Thanks alot!
The most vital thing about assembly is that it's freestanding. It makes extremely few assumptions about the environment you're writing code for, and can create code which needs no operating system at all. That's what makes it almost impossible to get rid of.

When you're programming in assembly, all it amounts to in the end is "put these exact bytes in this exact location in memory" except you can give it instructions as well as bytes, and it does the conversion for you. That's precisely the kind of thing you need when writing a BIOS for example, when the computer does in fact start up blindly looking for its very first instruction at a very specific place.

You also need it to write a bootloader, which gets loaded from a hardcoded location on disk then blindly executed from, again, a specific spot inside that location.

You also need at least some of it to write an operating system. That gets loaded by the bootloader and, again, blindly executed starting from a very specific spot.

You don't get a nice, programmer-friendly environment where you can load whatever language you like to do whatever you please until after all these things have already happened. Even after that, assembly language is still useful.

The other thing about being freestanding is that, since machine code is executed by the host processor, there's no interpretation step. That's why you can write a better C compiler in C. C code isn't a program, it's a design which a C compiler uses to build a program out of raw assembly. You certainly couldn't write a better Perl inside Perl.

You can also write other languages in C. Name any language -- Perl, PHP, Java, C#, awk, Python, sh -- and chances are, it was written in C.

Last edited by Corona688; 12-07-2011 at 05:24 PM..
This User Gave Thanks to Corona688 For This Post:
# 4  
Old 12-08-2011
Quote:
Originally Posted by Corona688
You can also write other languages in C. Name any language -- Perl, PHP, Java, C#, awk, Python, sh -- and chances are, it was written in C.
Am I making a correct assertion that the runtime components of these languages (java, c#, python, etc) contain allot of assembler? What allows for allot of the interpretation in interpreted languages is the fact that there is already allot of code that has been compiled into assembler and is all ready to call on when needed.

LMHmedchem
This User Gave Thanks to LMHmedchem For This Post:
# 5  
Old 12-08-2011
Gabam ,that is a very good question you have come up with.Many people think assembly language is no more used today.But their is lot more to it.It is used primarily for direct hardware manipulation, It iworks wonders for speed optimization because it is more close to processor.
This User Gave Thanks to Emily Henderson For This Post:
# 6  
Old 12-08-2011
Thanks for your complement. One more thing, I have to prove that assembly is faster than c and java. For c, I compiled the hello world program, which has an exetuable of size 50 kb. The same hello world program in assembly that I have assembled has a size of only 15kb, it shows that assembly is faster than c. How can I do the same in case of java, java doesn't give you binary exeutables????

Thanks!

---------- Post updated at 12:58 AM ---------- Previous update was at 12:57 AM ----------

One more thing, I have to prove that assembly is faster than c and java. For c, I compiled the hello world program, which has an exetuable of size 50 kb. The same hello world program in assembly that I have assembled has a size of only 15kb, it shows that assembly is faster than c. How can I do the same in case of java, java doesn't give you binary exeutables????
# 7  
Old 12-08-2011
Quote:
Originally Posted by gabam
.... I have to prove that assembly is faster than c and java....
Because this is homework/classroom work, right?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Understanding Assembly Code

As the title suggests, I want to better understand the following assembly code: section .text global main ; must be declared for linker (gcc) main: ; tell linker entry point mov edx, len ; message length mov ecx, msg ; message to write... (2 Replies)
Discussion started by: Azrael
2 Replies

2. Homework & Coursework Questions

Sparc Assembly

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: I am having a hard time with this assignement i cant get the pfib value to print out the fib sequence. ... (1 Reply)
Discussion started by: kenjiro310
1 Replies

3. What is on Your Mind?

Can assembly language be dispensed with ?

Hi. I learned C in high school and am proficient in it:D. At the college while learning microcontrollers there was a short course on assembly language which I skipped:p but had no trouble as most of the application programming had to be done in C. Should I go back n learn assembly language as I... (9 Replies)
Discussion started by: priyadarshianu
9 Replies

4. Programming

Assembly 8085

Hi eneryone, Im trying to learn about assemply 8085 in order to make a project i have. First of all which emulator to use? I work in linux and I currently istalled GNUSim8085. Also, maybe somewhere I can find some simple examples? The project is about making an array saved in specific... (8 Replies)
Discussion started by: giampoul
8 Replies

5. Programming

Ok i have a small assembly question

I have this small program that runs with the flat assembler. My problem is that at the receive line function it receives the line and if there isn't a $ typed at the end of the user input the program displays a lot of strange stuff, sometimes beeps and then it seems to terminate without causing any... (13 Replies)
Discussion started by: Errigour
13 Replies

6. Programming

Fibonacci (assembly)

When i run this with gcc filename.s -o filename. It is giving fatal error: Unknown opcode at define registers. Anyhelp will be appreciated .section ".data" prompt: .asciz "\nThis program prints the Fibonacci sequence" prompt2: .asciz "\nEnter a limit on the largest number to be displayed:"... (2 Replies)
Discussion started by: Learnerabc
2 Replies

7. Programming

Help with assembly code

I want make simple assembly code for some thing like this a^6+6a^2+2a and range of a is between -3 to 3. I tried but it is not working properly. As this is my first assembly program that I am going to try, I want some help with it. I found this example online but i dont want this kind of... (2 Replies)
Discussion started by: Learnerabc
2 Replies

8. Programming

Assembly Language ( compile )

Can someone explain how to compile assembly language code. I made my first assembly language code, but don't know how to run it. I know i can debug with gdb, but is there any way to just compile it and get the answer like in C and java compilers. (3 Replies)
Discussion started by: Learnerabc
3 Replies

9. Shell Programming and Scripting

Unix assembly help

Hey guys, well I'm extremely knew to Unix so any help advice is very appreciated. What I am trying to do is assemble a source code (Programming from the Ground Up: Chapter 3: Your First Programs) The source code named "FINDING A MAXIMUM VALUE" is the code I am trying to link and run, but I... (1 Reply)
Discussion started by: ac09
1 Replies

10. UNIX for Dummies Questions & Answers

Assembly vs C programming

I am currently looking into an os on developed on an x86 platformwhich contains certain assembly code written in .s files(NASM- compatible ) instead of using C I was wondering why C could not be used to do low level stuff instead? Do anyone have any idea or could enligthen me?Appreciate any help... (0 Replies)
Discussion started by: duoshock
0 Replies
Login or Register to Ask a Question