• Why the different encodings?

    Why are there different encodings of instructions?

    What's the idea/background/etc for their co-existence?

    Can different encodings be mixed in the code? (Not ARM encodings with Thumb encodings- without ARM/Thumb mode change,

    but, like A1 and A2 or T1…

  • Difference between thumb machine directives

    Hi Experts,

    What is the key difference between the following directives

    .thumb

    .thumb_func

    .force_thumb

    .thumb_set

    What is the exact use case where the above things can to be applied ?

    Regards,

    Techguyz

  • Is Thumb to ARM mode overhead

    Hi all,

    Consider high priority routines are executing in ARM mode and low priority in Thumb mode. There could be constant switching between ARM and THUMB mode. In this inter-working model is there any overhead due to the mode switching ?

  • Code Size – a comprehensive comparison of microMIPS32 and Thumb code size using many Megabytes of customer code

    In this blog I take a close look at the code size of ARM’s Thumb instruction set against the microMIPS32 instruction set, as used in the microAptiv processor family.  More specifically I look at recent claims that microMIPS32 has 17%-30% better code…

  • Branch and Call Sequences Explained

    What Does a Branch Do?

    A branch, quite simply, is a break in the sequential flow of instructions that the processor is executing. Some other architectures call them jumps, but they're essentially the same thing. The following is a trivial, and hopefully…

  • Useful assembler directives and macros for the GNU assembler

    Introduction

    In order to keep my assembly-related documents easy to read and understand, I've written some macros for the GNU-assembler (also known as GAS).

    These macros will also make it easier for you to program in assembly language.

    The macros…