Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Where to begin assembly?

  1. Jul 29, 2012 #1
    I've been programming c/c++ for a month or two, I have experience with Expression 2 (an in game programming language in Garrys Mod which is similar to VBasic), and 7 years experience with web development.

    What I'm wanting to do now is begin learning Assembly language and how to compile it. What assemblers are best? Any advice on diving into assembly?

    Another question which is irrelevant. What are some good beginner programs to make in c/c++? I have Code::Blocks, Qt and Visual Express 2010 (my favorite). Thank-You!
  2. jcsd
  3. Jul 29, 2012 #2


    User Avatar
    Homework Helper

    Visual C/C++ express includes an assembler, but doesn't provide a default build step for running the assembler. After adding an assembler source file to a project, right click on the name of the source file in the project and add a custom build step to do the assembly. For debug build it looks like this:

    ml /Zi /c /Fo$(outdir)\example.obj example.asm

    For release build it looks like this:

    ml /c /Fo$(outdir)\example.obj example.asm

    In both cases, "outputs" of the custom build step looks like this:

    Last edited: Jul 29, 2012
  4. Jul 29, 2012 #3


    Staff: Mentor

    Try a board game like tic tac toe or othello. It lets you explore using buttons, graphics and some simple logic.

    Othello may be more demanding in that you need a strategy to select moves for your computer opponent. One thought is make a list of valid moves then randomly. The other is to score the valid moves based on square position and pick the highest square. The very best squares to move to are the outermost corner squares as they can't be flipped? Next if you look at the 8x8 board as nested squares you'll notice the innermost square block 2x2 then surrounded by good squares to move to then those are surrounded by a block of squares that aren't some good to move to then the outermost layer of good squares with the best being the outermost corner squares.

    For more demanding projects you could move into an animated board game or aerial view of an animated game with armies battling each other.
  5. Jul 29, 2012 #4


    Staff: Mentor

    Another graphics program would be a fishtank app.
  6. Jul 30, 2012 #5


    User Avatar
    Science Advisor

    Hey smize.

    Since you have experience programming, I would recommend that you download the manuals directly from Intels and AMD's website: they give you the instructions, the syntax, and all the side issues associated with what's affected on the whole CPU with respect to flags, conditions, and so on.

    Maybe you should use a tutorial for a bit, but afterwards it's a lot better to just get the manuals, look at the instructions and then use that to code what you need to code.

    It'll be easier also if you migrate to other platforms like embedded systems and small microcontroller devices where you are given the manuals and a compiler/linker suite to do your work (without a lot of examples or other extensive documentation).
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook