Cryptographic algorithms that must always take strictly the same time to execute, preventing timing attacks. It is only when the instruction completes execution that the hardware is certain which branch direction is correct.
Some compilers for relatively low-level languages, such as Pascal or Callow the programmer to embed assembly language directly in the source code. The following is an example of this comment:. This time is reported as the first of a pair of integers, in square brackets, in the comment field of the instruction.
These are typically destination and source operands, as seen below. Tools such as the Interactive Disassembler make extensive use of disassembly for such a purpose. Although few programmers today regularly work with assembly language as a tool, the underlying concepts remain important.
Although assembly language has specific niche uses where it is important see belowthere are other tools for optimization.
Some compilers translate high-level languages into assembly first before fully compiling, allowing the assembly code to be viewed for debugging and optimization purposes. Such systems must eliminate sources of unpredictable delays, which may be created by some interpreted languages, automatic garbage collectionpaging operations, or preemptive multitasking.