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.
I'm thinking of learning assembly but want to learn for windows and linux in both 32 bit and 64 bit. I've looked at a few books but wanted some advice. Is there a book that covers both linux and windows and 32 bit and 64 bit or should I expect to do a lot of reading (multiple books)?
My advice is this ... download the "kernel source" packages for your favorite Linux distro, and do some poking-around in the /arch subdirectory.
In this extremely-rarified world, you will most likely find all of the actual application that you will ever actually need for "assembly language programming." And, there you will also find its (almost...) only actual remaining application: as asm{} declarations in a "C" or "C++" program.
It is very-definitely useful to understand about machine architectures, and to understand in-depth how your high-level-language expressions are translated into machine-architecture terms. But no, you should not expect to beat a language-compiler at its own game, and no, you should not have to dumpster-dive into the differences between the Linux and the Windows operating-system environments.
The code that you will find in /arch is, in fact, extremely instructive: the express intention of this code is to abstract away the architecture-specific aspects of Linux into a series of architecture-independent ideals, without sacrificing efficiency.
Originally Posted by http://en.wikipedia.org/wiki/Shellcode :
In computer security, a shellcode is a small piece of code used as the payload in the exploitation of a software vulnerability. It is called "shellcode" because it typically starts a command shell from which the attacker can control the compromised machine, but any piece of code that performs a similar task can be called shellcode. Because the function of a payload is not limited to merely spawning a shell, some have suggested that the name shellcode is insufficient. However, attempts at replacing the term have not gained wide acceptance. Shellcode is commonly written in machine code.
Uh huh. And you think we're going to help you with that ...
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.