Keil Logo

A166: Getting Alignment Warning A134 on Assembly

Information in this article applies to:

  • A166 Version 5.01


I'm trying to assemble a file for a C167x device using A166 assembler and on the following statement:

      MOV    0EF27H,ONES

I get the warning:


I can't find this error in the documentation. What does it mean?


The A134 message you see is a warning that you are trying to move a 16-bit word to an odd-byte address, specifically 0xEF27. If you attempt to run this code on a C167x device the chip will execute a hardware trap. The A166 assembler knows this will happen and generates the warning for you.


If your intent is to move only 1 byte, use MOVB instead of MOV. For example,

    MOVB    0EF27H,ONES  ; Moves the low byte of ONES to odd-byte address 0EF27H

If you really want to move a word to an address that starts on an odd-byte boundary there are a number of ways to do this. Here's one:

      PUSH    R1              ; Save reg
      MOV     R1,ONES         ; Read the source word
      MOVB    ERDAT0,RL1      ; Store the odd byte
      MOVB    ERDAT0+1,RH1    ; Store the even byte
      POP     R1              ; Restore reg


  • Refer to Error A48 in the A166 User's Guide.


Last Reviewed: Wednesday, September 21, 2016

Did this article provide the answer you needed?
Not Sure
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.