Is there still a place for assembly?
Fernando Soares Schlindwein · 1997
Real-time digital signal processing (DSP) involves multiple task synchronisation. A basic real-time system consists of, data acquisition, processing and output. Depending upon the complexity of the task the processing may involve more than one processor. The first two stages can be performed using dedicated DSP chips. An IBM-PC compatible microcomputer can display the results. Previously the implementation of real-time systems could only be achieved using assembly language routines. Now, optimised C/C++ compilers produce executable code whose execution time is sometimes only twice that of the assembler. Modern C/C++ compilers also include I/O functions and interrupt control for access to hardware. Therefore, software development using a high-level language is extremely attractive. Assembly routines are still important for performing 'bottleneck tasks' but complete implementation of a system using assembly is unnecessary. Comparisons between the implementations of 2 spectrum analysers, each using the DSP32C (12.5 MIPS) and written in both C and assembly, is provided. The overall speed ratio between the Assembly and C programs is about 3.5. For real-time AR based spectrum analysis of Doppler ultrasound signals (sampling frequency up to 40.96 kHz) using the DSP32C real-time AR spectral analysis can be achieved in C if the model order is 8 or below.