Sign in



Don't have an account?

Signing up is free and easy
Home -> Our Services -> Programming Tools BU -> Assembler / Linker -> Upgrading an existing assembler with new features

Upgrading an existing assembler with new features

Requirements

We have to upgrade an existing assembler with new features and also the existing assembler has to be re-factored. Some of the upgraded and added features are

  • Optimization of ISA16 instruction op-codes
  • Support for UTF-8 character encodings
  • Speed improvement
  • Memory clean ups
  • Error handling in debug/release mode of assembler
  • Automated Unit testing

Challenges

  • Understanding existing implementation
  • Understanding about optimization techniques
  • Defect prevention / not introducing defects
  • Understanding about advanced data structures
  • Speed improvement using advanced data structures

Solution

  • Environment
    Language/Platform Windows
    Development model Incremental development model
    Quality validation tools
    • Numega Dev Partner Studio to check for memory errors and memory leaks
    • QAC for static analysis of code
  • Description

    The existing assembler modules were studied based on the customer requirements. Analysis has been done for the existing features and new features to be added. Corrections in the specification have been reported to the customer and get clarified.

    Once the specification is being finalized we prepare tests for the new features and then proceed with coding. This process was useful and helped in forming a defect free product. We have created new unit tests for each function in the existing assembler and they are automated. This automated unit test suite will create a test report where we can view the status of the tested functions.

    Memory utilization in the existing assembler is checked using bound checker tool and a major amount of memory leaks has been cleared. While considering the execution speed of the existing assembler is considerably slow and we found out the cause using true time. The functions which causes more time has been analyzed and broke to smaller functions. One of the major causes of the time consuming is the linked list maintaining debug symbol information. This has been reconstructed as an array of address of symbol and accessed using array indexes. The speed has been considerably increased from 2 minutes to 4 seconds (One of the bench mark C test case)