Сложно сказать. Код вполне рабочий, должен работать. (Мелкая придирка только к повторному разрешению прерываний -- eint это и есть команда bis.b #GIE, SR) На сколько я понял, это у Вас Launchpad? Джамперы на ЛЭД-ы установлены? А если Вы свою схему собирали, то может быть не обратили внимания, что на плате Launchpad кнопочка подтянута внешним резистором к питанию. А если у вас этого резистора нет, и при включении питяния на лапке будет нуль, то хоть зазамыкайся кнопкой эту лапку на землю -- единице-то неоткуда взяться. Должен быть резистор либо внешний, либо внутренний.
Я немного переписал Вашу прогу, проверил. У меня на Launchpad-е все работает. Может это Вам как-то поможет.
CODE
.include "MSP430F2001.inc"
.org CODE
Reset:
mov #STACK, SP
mov #(WDTPW + WDTHOLD), &WDTCTL
mov.b #0x41, &P1DIR ; as output
mov.b #0x00, &P1OUT ; ЛЭДы выкл
mov.b #0x08, &P1IE
mov.b #0x08, &P1IES
eint
Loop:
bis.b #LPM3, SR
jmp Loop:
ISR_Button:
bic.b #0x08, &P1IFG
xor.b #0x40, &P1OUT
reti
.org 0xFFE4
DW ISR_Button
.org 0xFFFE
DW Reset
.end
Я использую naken430asm (Линуксовый), поэтому синтаксис немного отличается. И еще незначительное отличие, у меня воткнута MSP430F2001.
Ссылку на свой блог, где я расписываю как начать работу с MSP430 я кину Вам в Личку.
Update:
Нифига не получилось -- у Вас ящик отключен.
За публикации ссылок тут наказывают, поэтому придется Вам самому погулить по словам zhevak и msp430.