ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Hi,
I have to do one college project on Assembly Programming but I don't anything about it.What ever I know about it,it looked really difficult mostly the systax ...
Can anyone give me any good link of Assembly Programming,which teaches ASM in detail(on Linux Platform) ..May be some online Forum/site dedicated to ASM would really help.
First you have to know which syntax of assembly you have to cover in your study project. Intel or AT&T (GAS). I was working with AT&T, which is used by Linux dissasemblers gdb and kdbg. I found an excellent book on the net with the title: Programming the ground up, google it up and download it!! The book covers GAS sytax. If you have to do a project covering the Intel syntax, then you'll have an easy task to find the documentation via google. Read the man page for gcc and documentation for gdb. And have fun!
And about the forums, i didn't find any usefull, i had to learn everything the hard way, until i discovered the book i've mentioned, there's everything covered!!
I find this "The Art of Assembly Language Programming" very interesting as well!
When i was young, in a local library, I once found a book teaching people to write OO assembly to build Window application (Win3.1). Can't remember the name now but it is one of the books that left a strong strong impression.
Since then, assembly is on my 'must pay attention to' list. (i.e. not just a term in a glossary of my uni first year textbook :-) )
my first strong impression about asm is from Micheal Abrash's book
back then when i play around with DOS video , never really learn
anything in-depth about asm ...
have you really code with HLA before , kind of funny and great for me ......
maybe i will play with HLA and try to speed up some of my stuff if possible ......
indian x86 is the platform you're working on, assembly syntax is something quite different!! You can use either GAS or Intel syntax on x86 platform, it depends on the disassembler and compiler you're using. In Linux as said GAS is commonly used.
The Art of Assembly is good book, unfortunately it's quite huge, and the first couple hundred pages covers system organization. If you've already had a class in this, or if you've read a book on it, there is no need to read this. However, since you say you have no idea about assembly, I'm guessing you would benefit from reading it.
For an assembler, I would suggest you use NASM. It's free, it has a powerful C style preprocessor, and it's "literalness" is very good for beginners. It also uses Intel style syntax. If your using Windows, NASM also has support for obj (OMF), win32 (slightly different version of COFF that MS's LINK uses), and COFF object file formats (Borland, MASM / MSVS, and DJGPP (and others) respectively). If your using linux I suggest you use gcc to do the linking for you. It makes it easier to use the C library, or other libraries.
If your looking for some really good resources (these I use everytime I program in assembly). Check out the NASM documentation (they have descriptions for almost all of the x86 instructions, including mmx, sse, and sse2) and /usr/include/asm/unistd.h (it lists the system call numbers for each system call).
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.