beautypg.com

Texas Instruments MSP50C6xx User Manual

Page 318

background image

C– – Compiler

5-22

5.5.9

String Functions

Arithmetic string functions are special functions that perform string arithmetic.
The functions currently implemented are shown in Table 5–1.

Table 5–1. String Functions

add_string(int *result,int *str1,int *str2,int lg)

adds strings str1 and str2, of length lg (+2),

and puts the result in string result

sub_string(int *result,int *str1,int *str2,int lg)

subtracts strings str2 from str1, of length lg

(+2), and puts the result in string result.

mul_string(int *result,int *str1,int mult,int lg1,int lgr)

multiplies string str1 of length

lg1 (+2) by integer multiple, and puts the result in string result, of length lgr (+2).

umul_string(int *result,int *str1,int mult,int lg1,int lgr)

same as previous one, with

UNSIGNED multiply

or_string(int *result,int *str1,int *str2,int lg)

ors strings str1 and str2, of length lg (+2), and

puts the result in string result.

and_string(int *result,int *str1,int *str2,int lg)

ands strings str1 and str2, of length lg (+2),

and puts the result in string result.

xor_string(int *result,int *str1,int *str2,int lg)

exclusive ors strings str1 and str2, of length

lg (+2), and puts the result in string result.

not_string(int *result,int *str1,int lg)

takes the 1’s complement of string str1, of length lg (+2),

and puts the result in strings result.

neg_string(int *result,int *str1,int lg)

takes the 2’s complement of string str1, of length lg (+2),

and puts the result in strings result.

test_string(int *string1,int *string2,int lg,int oper)

performs a logical test (operation) on

strings string1 and string2 of length lg (+2). The logical value is returned in A0. If string2 is NULL, the logical test is
performed between string string1 and a zero string.

operator can take the following values: (predefined constants)
EQS_N == ?
NES_N !== ?
LTS_N < ?
LES_N <= ?
GES_N >= ?
GTS_N > ?
ULTS_N < ? (unsigned)
ULES_N <= ? (unsigned)
UGES_N >= ? (unsigned)
UGTS_N > ? (unsigned)

A major feature of the MSP50C6xx is that the string length present in the string
register is the actual length of the string minus two. To avoid confusion, a
macro is supplied that automatically translates the real length of the string to