Hi,
If I assemble the attached .S file with
msp430-gcc -g -O2 -mmcu=msp430x449 -D_GNU_ASSEMBLER_ -nostartfiles
-nostandartlibs xxx.S
and dump the resulting file with:
msp430-objdump -DS a.out
I get:
a.out: file format elf32-msp430
Disassembly of section .text:
00001100 <__ctors_end>:
1100: 33 40 .word 0x4033; ????
1102: 00 0a .word 0x0a00; ????
00001104 <StopWDT>:
1104: b2 40 80 5a mov #23168, &0x0120 ;#0x5a80
1108: 20 01
0000110a <SetupP1>:
110a: e2 d3 32 00 bis.b #2, &0x0032 ;r3 As==10
0000110e <Mainloop>:
110e: e2 e3 31 00 xor.b #2, &0x0031 ;r3 As==10
00001112 <Wait>:
1112: 3f 40 50 c3 mov #-15536,r15 ;#0xc350
00001116 <L1>:
1116: 1f 83 dec r15 ;
1118: fe 23 jnz $-2 ;abs 0x1116
111a: f9 3f jmp $-12 ;abs 0x110e
Disassembly of section .data:
Why isn't the first instruction disassembled properly?
Regards,
Steve
#include <io.h>
;******************************************************************************
; MSP-FET430P440 Demo - Software Toggle P5.1
;
; Description; Toggle P5.1 by xor'ing P5.1 inside of a software loop.
; ACLK = n/a, MCLK = SMCLK = default DCO
;
; MSP430F449
; -----------------
; /|\| XIN|-
; | | |
; --|RST XOUT|-
; | |
; | P5.1|-->LED
;
; M.Buccini
; Texas Instruments, Inc
; January 2002
;******************************************************************************
.section .text
RESET: mov.w #0xA00,R3 ; Initialize 'F449 stackpointer
StopWDT: mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop WDT
SetupP1: bis.b #0x02,&P5DIR ; P5.1 output
;
Mainloop: xor.b #0x02,&P5OUT ; Toggle P5.1
Wait: mov.w #50000,R15 ; Delay to R15
L1: dec.w R15 ; Decrement R15
jnz L1 ; Delay over?
jmp Mainloop ; Again
;
;------------------------------------------------------------------------------
; Interrupt Vectors Used MSP430x44x
;------------------------------------------------------------------------------
.section .vectors
.org 0x1E,0xFF ; MSP430 RESET Vector
.word RESET ;