A166: Getting Alignment Warning A134 on Assembly
Information in this article applies to:
I'm trying to assemble a file for a C167x device using A166 assembler and on the following statement:
I get the warning:
A134: ADDRESS ALIGNMENT NOT SUFFICIENT
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
Last Reviewed: Wednesday, September 21, 2016
of your data.
We are pleased to inform you that on 5 September 2016, SoftBank Group Corp. acquired ARM Holdings Plc. ARM will continue to operate as an independent business within the SoftBank group.
Any current agreements between ARM Ltd (or other ARM group companies, as applicable) you / your company remain in effect as between the parties, and the parties will continue to be bound by and perform the obligations in such agreements. If you have any queries please direct these to ARMSoftbank-Notifications@arm.com.