1. MSP430
2. :
3. .
MSP430 (SFR), , Flash- . . . . 64 , .
Flash- . Flash- 0FFFFh. Flash- , . Flash-, . 16 Flash-, Flash- (0FFFEh).
0200h. . , .
. 0100 01FFh 16- . -. , , 0. 010h 0FFh 8- . . - . , , .
SFRs. 16- . SFRs . SFRs .
. . . . . , xxx4h, xxx4h, xxx5h.
|
|
. 1 As () Ad ().
1 /
As/Ad | |||
00 / 0 | Rn | ||
01 / 1 | X(Rn) | (Rn+X) . X | |
01 / 1 | ADDR | (PC+X) . X . X(PC) | |
01 / 1 | () | &ADDR | , , . X . X(SR) |
10 / - | @Rn | Rn | |
11 / - | @Rn+ | Rn . Rn 1 2 -. | |
11 / - | () | #N | , , N. @PC+ |
. , .
: EDE TONI MSP430 EDE TONI. , . |
MOV R10,R11 | MOV R10, R11 |
: | |||||||||||||||||||||||
: | R10 R11. R10 . | ||||||||||||||||||||||
: | . | ||||||||||||||||||||||
: | MOV R10,R11
|
: -. , <0>. . |
MOV 2(R5),6(R6) | MOV X(R5),Y(R6) X=2 Y=6 |
: | |
: | ( R5 + 2) ( R6 + 6). (R5 R6) . , . |
: | |
: | MOV 2(R5),6(R6): |
MOV EDE,TONI | MOV X(PC),Y(PC) X=EDE-PC Y=TONI-PC |
|
|
: | |
: | EDE ( PC + X) TONI ( PC + Y). PC . X Y. , . |
: | |
: | MOV EDE,TONI; EDE=0F016h; TONI=01114h |
MOV &EDE,&TONI | MOV X(0),Y(0) X=EDE Y=TONI |
: | |
: | EDE TONI. . , . |
: | |
: | MOV &EDE,&TONI; EDE=0F016h; TONI=01114h |
, , . , (, -, ).
MOV @R10,0(R11) | MOV @R10,0(R11) |
: | |
: | ( R10) ( R11). . |
: | . 0(Rd) |
: | MOV.B @R10,0(R11) |
MOV @R10+,0(R11) | MOV @R10+,0(R11) |
: | |
: | ( R10) ( R11). R10 1 2 -, . . |
: | . 0(Rd) INCD Rd. |
: | MOV.B @R10+,0(R11) |
.
MOV #45h,TONI | MOV @PC+,X(PC) 45 X=TONI-PC |
: | . , CG1 CG2. |
: | 45h, , , TONI. , , , . |
: | |
: | MOV #45h,TONI |
MSP430 27 24 . , , . , , , . .
: , , .
|
|
, , , .B .W. . - . , -.
:
src | As S-reg |
dst | Ad D-reg |
As | , , (src) |
S-reg | , (src) |
Ad | , , (dst) |
D-reg | , (dst) |
B/W | : 0: 1: |
: . , , , , . , , , . |
: EDE TONI MSP430 EDE TONI. , . |
( I)
. .
2 .
2
S-Reg, D-Reg | ||||||
V | N | Z | C | |||
MOV(.B) | src,dst | src --> dst | - | - | - | - |
ADD(.B) | src,dst | src + dst --> dst | * | * | * | * |
ADDC(.B) | src,dst | src + dst + C --> dst | * | * | * | * |
SUB(.B) | src,dst | dst +.not.src + 1 --> dst | * | * | * | * |
SUBC(.B) | src,dst | dst +.not.src + C --> dst | * | * | * | * |
CMP(.B) | src,dst | dst src | * | * | * | * |
DADD(.B) | src,dst | src + dst + C --> dst () | * | * | * | * |
BIT(.B) | src,dst | src.and. dst | * | * | * | |
BIC(.B) | src,dst | .not.src.and. dst --> dst | - | - | - | - |
BIS(.B) | src,dst | src.or. dst --> dst | - | - | - | - |
XOR(.B) | src,dst | src.xor. dst --> dst | * | * | * | * |
AND(.B) | src,dst | src.and. dst --> dst | * | * | * |
* -
- -
0 -
1 -
: CMP SUB CMP SUB , . BIT AND. |
( II)
. .
3 .
3
S-Reg, D-Reg | ||||||
V | N | Z | C | |||
RRC(.B) | dst | C --> MSB --> LSB --> C | * | * | * | * |
RRA(.A) | dst | MSB --> MSB --> LSB --> C | * | * | * | |
PUSH(.B) | src | SP-2 --> SP, src --> @SP | - | - | - | - |
SWPB | dst | - | - | - | - | |
CALL | dst | SP-2? SP, PC+2 --> @SP dst --> PC | - | - | - | - |
RETI | TOS --> SR, SP+2 --> SP TOS --> PC, SP+2 --> SP | * | * | * | * | |
SXT | dst | 7 --> 8 15 | * | * | * |
* -
- -
0 -
1 -
|
|
CALL . (), (#N), (&EDE) x(RN), CALL .
. .
4 .
4
S-Reg, D-Reg | ||
JEQ/JZ | , (Z) | |
JNE/JNZ | , (Z) | |
JC | , (C) | |
JNC | , (C) | |
JN | , (N) | |
JGE | , (N.XOR.V)=0 | |
JL | , (N.XOR.V)=1 | |
JMP |
PC . -511 +512 PC. 10- 10- : :
PCnew=PCold + 2 + PCoffset x 2 | |
: | PCnew ; PCold ; PCoffset 10- . |
5 MSP430
V | N | Z | C | ||||
ADC(.B)* | dst | dst + C -> dst | * | * | * | * | |
ADD(.B) | src,dst | src + dst -> dst | * | * | * | * | |
ADDC(.B) | src,dst | src + dst + C -> dst | * | * | * | * | |
AND(.B) | src,dst | Ȼ | src.and. dst -> dst | * | * | * | |
BIC(.B) | src,dst | .not.src.and. dst -> dst | - | - | - | - | |
BIS(.B) | src,dst | src.or. dst -> dst | - | - | - | - | |
BIT(.B) | src,dst | src.and. dst | * | * | * | ||
BR* | dst | dst -> PC | - | - | - | - | |
CALL | dst | PC + 2 -> stack, dst -> PC | - | - | - | - | |
CLR(.B)* | dst | 0 -> dst | - | - | - | - | |
CLRC* | 0 -> C | - | - | - | |||
CLRN* | N | 0 -> N | - | - | - | ||
CLRZ* | Z | 0 -> Z | - | - | - | ||
CMP(.B) | src,dst | dst src | * | * | * | * | |
DADC(.B)* | dst | dst + c -> dst () | * | * | * | * | |
DADD(.B) | src,dst | src + dst + C -> dst () | * | * | * | * | |
DEC(.B)* | dst | dst - 1 -> dst | * | * | * | * | |
DECD(.B)* | dst | dst - 2 -> dst | * | * | * | * | |
DINT* | 0 -> GIE | - | - | - | - | ||
EINT* | 1 -> GIE | - | - | - | - | ||
INC(.B)* | dst | dst + 1 -> dst | * | * | * | * | |
INCD(.B)* | dst | dst + 2 -> dst | * | * | * | * | |
INV(.B)* | dst | .not.dst -> dst | * | * | * | * | |
JC/JHS | label | , / | - | - | - | - | |
JEQ/JZ | label | , / Z | - | - | - | - | |
JGE | label | , | - | - | - | - | |
JL | label | , | - | - | - | - | |
JMP | label | PC + 2 * -> PC | - | - | - | - | |
JN | label | , N | - | - | - | - | |
JNC/JLO | label | , / | - | - | - | - | |
JNE/JNZ | label | , , Z | - | - | - | - | |
MOV(.B) | src,dst | src -> dst | - | - | - | - | |
NOP* | - | - | - | - | |||
POP(.B)* | dst | @SP -> dst, SP + 2 -> SP | - | - | - | - | |
PUSH(.B) | src | SP - 2 -> SP, src -> @SP | - | - | - | - | |
RET* | @SP -> PC, SP + 2 -> SP | - | - | - | - | ||
RETI | * | * | * | * | |||
RLA(.B)* | dst | * | * | * | * | ||
RLC(.B)* | dst | * | * | * | * | ||
RRA(.B) | dst | * | * | * | |||
RRC(.B) | dst | * | * | * | * | ||
SBC(.B)* | dst | not(C) | dst + 0FFFFh + C -> dst | * | * | * | * |
SETC* | 1 -> C | - | - | - | |||
SETN* | N | 1 -> N | - | - | - | ||
SETZ* | Z | 1 -> Z | - | - | - | ||
SUB(.B) | src,dst | dst +.not.src + 1 -> dst | * | * | * | * | |
SUBC(.B) | src,dst | not(C) | dst +.not.src + C -> dst | * | * | * | * |
SWPB | dst | - | - | - | - | ||
SXT | dst | * | * | * | |||
TST(.B)* | dst | dst + 0FFFFh + 1 | * | * | |||
XOR(.B) | src,dst | Ȼ | src.xor. dst -> dst | * | * | * | * |
*
|
|
- IAR Kick Start Embedded Workbench IDE
- F2013, FET Debugger, USB
- Debugger
- .
- .
1.
2.
3.
4. .
5. .
6.
7.
8.
9.
()
1. 16 .
2. 10 .
3. 8 .
4. 15 .
5. 20 .
6. 10 .
7. 15 .
8. 8 .
9. 16 .
10. : Ci=2Ai+128, i=0..9.
11. : Ci=2Ai+Bi/2, i=0..15.
12. : Ci=Ai/4+16, i=0..19.
13. 8 .
14. 10 .
15. 16 .
16. 16 .
17. 10 .
18. 20 .
:
- ;
- MSP430;
- ;
- ;
- ;
- ;
- ;
- 16- SD16_A;
- -;
- USI;
- WDT+;
- ;
- , IAR Embedded Workbench.
1. MSP430x2xx. , , / . . .. .: -XXI, 2010. 544 . ISBN 978-5-94120-221-9
2. Analog, Embedded Processing, Semiconductor Company, Texas Instruments. URL: http://www.ti.com ( : 21.03.2013)
3. MSP430x2xx Family Users Guide (SLAU144F) .., 2010. URL: http://ti.com ( : 21.03.2013)
4. MSP430x20x1, MSP430x20x2, MSP430x20x3 MIXED SIGNAL MICROCONTROLLER (SLAS491F) . ., . 2011. URL: http://focus.ti.com/lit/ds/slas491f/slas491f.pdf ( : 21.03.2013)