Note that there are some explanatory texts on larger screens.

plurals
  1. POHow can I become good at assembly?
    text
    copied!<p>The answer to this question is, of course, "write some assembly code!"</p> <p>But I can do that: I know basic x86 syntax, the types of registers and how to use them, subroutines, etc etc.</p> <p>When I took an assembly class, each assignment had a maximum number of instructions that we were allowed to use. If we went over, then we would lose points - so this taught us to do things <em>efficiently</em>. You know, efficiently in the way that, if you saw a C program doing such things, you might harp on that individual for creating difficult-to-follow code.</p> <p>For C, one can suggest "write a multi-threaded program" or "write a socket server/client". For PHP, suggestions might be "write a personal blog software". To learn the syntax of a language, "project euler" is often suggested.</p> <p>So my question(s) are:</p> <ol> <li><p>What kinds of things can I write in assembly that will let me hone my assembly and efficiency skills? For example, I could do a project euler problem in x86, but that doesn't help me with assembly-specific skills. What are project ideas I could do that can only really be coded in assembler?</p></li> <li><p>How would I go about profiling whether or not I'm writing "good" code? For example, with C and sockets, there are a billion tutorials on the web, and there are a billion people on my buddy list who can look at my code, and there are a billion SO questions about them: so it is easier to measure one's progress.</p></li> <li><p>Are there existing assembly heavy projects which I can look at to learn from? Or even parts of programs where they break into assembly for [specific task] for the sake of efficiency?</p></li> <li><p>What kinds of books should I be reading? Blogs of people who routinely look at low-level things?</p></li> </ol> <p>(preferably things I could do on x86 on linux. I figure the concepts will carry over to other architectures.)</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload