| |||||
Technical Support Support Resources
Product Information | A166: GETTING ALIGNMENT WARNING A134 ON ASSEMBLYInformation in this article applies to:
SYMPTOMI'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: A134: ADDRESS ALIGNMENT NOT SUFFICIENT I can't find this error in the documentation. What does it mean? CAUSEThe 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. RESOLUTIONIf 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
MORE INFORMATION
SEE ALSOLast Reviewed: Thursday, January 18, 2007 | ||||
| |||||