SLAU132V October   2004  – February 2020

 

  1.   1
    1.     2
    2.     3
    3.     4
    4.     5
    5.     6
  2.   7
    1.     8
    2.     9
    3.     10
    4.     11
    5.     12
  3.   13
    1.     14
    2.     15
    3.     16
      1.      17
      2.      18
      3.      19
      4.      20
      5.      21
      6.      22
      7.      23
      8.      24
      9.      25
      10.      26
      11.      27
      12.      28
    4.     29
      1.      30
      2.      31
    5.     32
      1.      33
      2.      34
        1.       35
      3.      36
      4.      37
      5.      38
      6.      39
      7.      40
      8.      41
      9.      42
      10.      43
    6.     44
    7.     45
      1.      46
      2.      47
    8.     48
    9.     49
    10.     50
    11.     51
      1.      52
      2.      53
    12.     54
      1.      55
    13.     56
    14.     57
  4.   58
    1.     59
    2.     60
    3.     61
      1.      62
    4.     63
      1.      64
      2.      65
    5.     66
    6.     67
      1.      68
      2.      69
    7.     70
      1.      71
        1.       72
        2.       73
        3.       74
        4.       75
        5.       76
        6.       77
        7.       78
        8.       79
      2.      80
      3.      81
      4.      82
    8.     83
      1.      84
        1.       85
        2.       86
      2.      87
        1.       88
        2.       89
        3.       90
    9.     91
    10.     92
    11.     93
      1.      94
      2.      95
    12.     96
    13.     97
      1.      98
      2.      99
      3.      100
      4.      101
      5.      102
      6.      103
      7.      104
      8.      105
      9.      106
      10.      107
      11.      108
      12.      109
      13.      110
  5.   111
    1.     112
      1.      113
      2.      114
      3.      115
    2.     116
      1.      117
      2.      118
    3.     119
      1.      120
        1.       121
          1.        122
        2.       123
        3.       124
      2.      125
      3.      126
      4.      127
      5.      128
      6.      129
      7.      130
      8.      131
      9.      132
        1.       133
  6.   134
    1.     135
      1.      136
    2.     137
    3.     138
    4.     139
    5.     140
    6.     141
      1.      142
    7.     143
    8.     144
      1.      145
      2.      146
      3.      147
        1.       148
        2.       149
      4.      150
        1.       151
    9.     152
    10.     153
    11.     154
    12.     155
      1.      156
      2.      157
      3.      158
      4.      159
      5.      160
      6.      161
        1.       162
        2.       163
        3.       164
        4.       165
      7.      166
      8.      167
        1.       168
        2.       169
        3.       170
      9.      171
      10.      172
      11.      173
      12.      174
      13.      175
      14.      176
      15.      177
      16.      178
      17.      179
      18.      180
      19.      181
      20.      182
      21.      183
      22.      184
      23.      185
      24.      186
      25.      187
      26.      188
      27.      189
      28.      190
      29.      191
      30.      192
        1.       193
        2.       194
        3.       195
      31.      196
      32.      197
    13.     198
    14.     199
    15.     200
    16.     201
      1.      202
      2.      203
      3.      204
    17.     205
      1.      206
      2.      207
      3.      208
      4.      209
      5.      210
    18.     211
  7.   212
    1.     213
      1.      214
      2.      215
      3.      216
      4.      217
      5.      218
      6.      219
    2.     220
      1.      221
        1.       222
        2.       223
        3.       224
        4.       225
      2.      226
    3.     227
    4.     228
      1.      229
      2.      230
      3.      231
    5.     232
    6.     233
      1.      234
      2.      235
        1.       236
        2.       237
      3.      238
        1.       239
          1.        240
          2.        241
        2.       242
          1.        243
          2.        244
      4.      245
      5.      246
    7.     247
      1.      248
      2.      249
      3.      250
      4.      251
      5.      252
    8.     253
      1.      254
      2.      255
      3.      256
      4.      257
        1.       258
          1.        259
        2.       260
          1.        261
    9.     262
      1.      263
      2.      264
      3.      265
        1.       266
        2.       267
        3.       268
        4.       269
          1.        270
          2.        271
          3.        272
          4.        273
        5.       274
        6.       275
      4.      276
        1.       277
        2.       278
    10.     279
  8.   280
    1.     281
      1.      282
      2.      283
      3.      284
      4.      285
      5.      286
      6.      287
      7.      288
      8.      289
    2.     290
      1.      291
        1.       292
      2.      293
      3.      294
      4.      295
        1.       296
      5.      297
        1.       298
    3.     299
    4.     300
      1.      301
      2.      302
        1.       303
        2.       304
          1.        305
          2.        306
          3.        307
          4.        308
      3.      309
        1.       310
        2.       311
  9.   312
    1.     313
    2.     314
      1.      315
      2.      316
      3.      317
  10.   318
    1.     319
  11.   320
    1.     321

MSP430 Intrinsics

Table 6-5 lists all of the intrinsic operators in the MSP430 C/C++ compiler. A function-like prototype is presented for each intrinsic that shows the expected type for each parameter. If the argument type does not match the parameter, type conversions are performed on the argument. The intrinsics.h file in the compiler's "include" directory contains function-like prototypes for all supported intrinsics.

For more information on the resulting assembly language mnemonics, see the MSP430x1xx Family User’s Guide, the MSP430x3xx Family User’s Guide, and the MSP430x4xx Family User’s Guide.

Table 6-5 MSP430 Intrinsics

Intrinsic Generated Assembly
unsigned short __bcd_add_short(unsigned short op1, unsigned short op2); MOV op1, dst
CLRC
DADD op2, dst
unsigned long __bcd_add_long(unsigned long op1, unsigned long op2); MOV op1_low, dst_low
MOV op1_hi, dst_hi
CLRC
DADD op2_low, dst_low
DADD op2_hi, dst_hi
unsigned short __bic_SR_register(unsigned short mask); BIC mask, SR
unsigned short __bic_SR_register_on_exit(unsigned short mask); BIC mask, saved_SR
unsigned short __bis_SR_register(unsigned short mask); BIS mask, SR
unsigned short __bis_SR_register_on_exit(unsigned short mask); BIS mask, saved_SR
unsigned long __data16_read_addr(unsigned short addr); MOV.W addr, Rx
MOVA 0(Rx), dst
void __data16_write_addr (unsigned short addr, unsigned long src); MOV.W addr, Rx
MOVA src, 0(Rx)
unsigned char __data20_read_char(unsigned long addr);(1) MOVA addr, Rx
MOVX.B 0(Rx), dst
unsigned long __data20_read_long(unsigned long addr);(1) MOVA addr, Rx
MOVX.W 0(Rx), dst.lo
MOVX.W 2(Rx), dst.hi
unsigned short __data20_read_short(unsigned long addr);(1) MOVA addr, Rx
MOVX.W 0(Rx), dst
void __data20_write_char(unsigned long addr, unsigned char src);(1) MOVA addr, Rx
MOVX.B src, 0(Rx)
void __data20_write_long(unsigned long addr, unsigned long src);(1) MOVA addr, Rx
MOVX.W src.lo, 0(Rx)
MOVX.W src.hi, 2(Rx)
void __data20_write_short(unsigned long addr, unsigned short src);(1) MOVA addr, Rx
MOVX.W src, 0(Rx)
void __delay_cycles(unsigned long); See Section 6.8.3.
void __disable_interrupt(void);
    OR
__disable_interrupts(void);
DINT
void __enable_interrupt(void);
    OR
__enable_interrupts(void);
EINT
unsigned int __even_in_range(unsigned int, unsigned int); See Section 5.12.31.
unsigned short __get_interrupt_state(void); MOV SR, dst
unsigned short __get_R4_register(void); /* deprecated */ MOV.W R4, dst
unsigned short __get_R5_register(void); /* deprecated */ MOV.W R5, dst
unsigned short __get_SP_register(void); MOV SP, dst
unsigned short __get_SR_register(void); MOV SR, dst
unsigned short __get_SR_register_on_exit(void); MOV saved_SR, dst
void __low_power_mode_0(void); BIS.W #0x18, SR
void __low_power_mode_1(void); BIS.W #0x58, SR
void __low_power_mode_2(void); BIS.W #0x98, SR
void __low_power_mode_3(void); BIS.W #0xD8, SR
void __low_power_mode_4(void); BIS.W #0xF8, SR
void __low_power_mode_off_on_exit(void); BIC.W #0xF0, saved_SR
void __never_executed(void); See Section 6.8.4.
void __no_operation(void); NOP
void __op_code(unsigned short); Encodes whatever instruction corresponds to the argument.
short __saturated_add_signed_short( short src1, short src2 ); Instructions to perform saturated addition on short values. Values outside the range of a signed short are capped at the maximum or minimum value as appropriate.
long __saturated_add_signed_long( long src1, long src2 ); Instructions to perform saturated addition on long values. Values outside the range of a signed long are capped at the maximum or minimum value as appropriate.
short __saturated_sub_signed_short( short src1, short src2 ); Instructions to perform saturated subtraction on short values. Values outside the range of a signed short are capped at the maximum or minimum value as appropriate.
long __saturated_sub_signed_long( long src1, long src2 ); Instructions to perform saturated subtraction on long values. Values outside the range of a signed long are capped at the maximum or minimum value as appropriate.
void __set_interrupt_state(unsigned short src); MOV src, SR
void __set_R4_register(unsigned short src); /* deprecated */ MOV.W src, R4
void __set_R5_register(unsigned short src); /* deprecated */ MOV.W src, R5
void __set_SP_register(unsigned short src); MOV src, SP
unsigned short __swap_bytes(unsigned short src); MOV src, dst
SWPB dst
Intrinsic encodes multiple instructions depending on the code. The most common instructions produced are presented here.