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