Mixing Modules Written in Assembly and Those Written in High-Level Languages

We have come a long way and have covered almost every aspect of Assembly programming basics. In fact, we should be able to implement any algorithm in Assembly language by this time; however, there are a few important things left we have not touched yet, but they are nonetheless important to know.

Despite the fact that writing relatively large parts of a product (not to say writing a complete product) in Assembly language may not be the best idea when it comes to timelines, it may still be a very interesting and challenging task (educational as well). Sometimes it is more convenient to implement certain parts of an algorithm in Assembly, rather than using a high-level language. Remember the tiny virtual machine we used for XOR encryption of data? For the sake of an example, we will implement a simple encryption/decryption module in Assembly and see how it may be used with high-level languages.

In this chapter, we will cover the following topics:

  • Implementing the core of a primitive cryptographic module
  • Building object files for further linking with code written in high-level languages:
    • OBJ: Object files for Windows (32 and 64 bit);
    • O: Linkable ELF for Linux (32 and 64 bit);
  • Building DLL (dynamic link libraries) and SO (shared objects) for Windows and Linux (32 and 64 bit) to be used with the .NET platform
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset