Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In with Facebook Sign In with Google Sign In with OpenID


We have migrated to a new platform! Please note that you will need to reset your password to log in (your credentials are still in-tact though). Please contact if you have questions.
Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

An Introduction to Writing 32-bit Applications Using the x86 Assembly


I am currently working on an x86 32-bit tutorial intended for people who already know imperative high level programming languages such as C/C++ and want to learn how to program in assembly. I tried to cover several operating systems (Windows, Linux, BSD) and various assemblers (MASM, FASM, NASM, gas) - I have to admit that the Linux/BSD part is a bit short so far. It is by far not done yet and I am looking for some constructive criticism. There are also a few errors in the document which have yet to be corrected. Frequent complaints are:

1. You use too much math "nobody understands" (lies!) to explain things such as positional notation
2. Several paragraphs are by far too long and need to get split up
3. The FPU section starts out with a far too complex example

Things that definitely have to get added:

-maybe a few words on MMX (but it's outdated so I don't want anybody to use it anyways)
-SSE/SIMD instructions
-explaining the x86 pipeline model of modern x86 microprocessors
-more material on how to optimize x86 assembly

Here is the site:




  • BitByBit_ThorBitByBit_Thor Posts: 2,444Member
    : 1. You use too much math "nobody understands" (lies!) to explain
    : things such as positional notation

    After a quick glance:
    The math you are using is not generally taught where I come from. To me it's simple (as simple as can be), but maybe try the following to make it more accessable to the general (programmer) public (particularly, programmer's that are learning it on their own):
    From what I saw in the part about the numeric system, rather than a Union operator, try just writing the collection as {0, 1, 2, ..., n} or {d0, d1, ..., dn}. Furtherly, most people aren't comfortable reading the sum-sign, even if they do essentially know what it means. Here too, writing the series is more understandable to most (1 + 2 + 4 + ...) rather than a Sum(...).
    Ofcourse, you could also not remove the math parts (cause math is cool!), but simply put it under it's own header (something like: "Mathematical Formalism").

    Best Regards,

    The way I see it... Well, it's all pretty blurry
Sign In or Register to comment.