Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
59
Добавлен:
14.04.2015
Размер:
2.03 Mб
Скачать

184

Chapter 6. Macro Processing Language

 

 

String Manipulation Functions

The purpose of the MPL is to manipulate character strings. Therefore, there are several MPL functions that perform common character string manipulations.

LEN Function

The MPL processor function LEN returns the length of the character string argument in hexadecimal: The character string is limited to 256 characters.

The syntax for the MPL processor function LEN is:

%LEN (balanced-text)

Source text

%LEN (A251)

%' len = 4'

%LEN (A251,A251)

%' comma counts also'

%LEN ()

 

%LEN (ABCDEFGHIJKLMNOPQRSTUVWXYZ)

 

%DEFINE (TEXT) (QUEEN)

 

%DEFINE (LENGTH) (%LEN (%TEXT))

 

LENGTH OF '%TEXT' = %LENGTH.

 

 

 

Output text

 

 

 

 

4

 

 

9

6

 

0

 

26

 

LENGTH OF 'QUEEN' = 5.

 

 

 

 

 

Keil Software — A51/AX51/A251 Macro Assembler and Utilities

185

 

 

SUBSTR Function

The MPL processor function SUBSTR returns a substring of the given text argument. The function takes three arguments: a character string to be divided and two numeric arguments.

The syntax for the MPL processor function SUBSTR is:

%SUBSTR (balanced-text,expression1,expression2)

Where balanced-text is any text argument, possibly containing macro calls. Expression1 specifies the starting character of the substring. Expression2 specifies the number of characters to be included in the substring.

If expression1 is zero or greater than the length of the argument string, then SUBSTR returns the null string. The index of the first character of the balanced text is one.

If expression2 is zero, then SUBSTR returns the null string. If expression2 is greater than the remaining length or the string, then all characters from the start character to the end of the string are included.

Source text

%DEFINE (STRING) (abcdefgh) %SUBSTR (%string, 1, 2) %SUBSTR (%(1,2,3,4,5), 3, 20)

Output text

ab

6

2,3,4,5

186

Chapter 6. Macro Processing Language

 

 

MATCH Function

The MPL processor function MATCH searches a character string for a delimiter character, and assigns the substrings on either side of the delimiter to the identifiers.

The syntax for the MPL processor function MATCH is:

%MATCH (identifier1 delimiter identifier2) (balanced-text)

Identifier1 and identifier2 must be valid macro identifiers. Delimiter is the first character to follow identifier1. Typically, a space or comma is used, but any character that is not a macro identifier character may be used. Balanced-text is the text searched by the MATCH function. It may contain macro calls.

MATCH searches the balanced-text string for the specified delimiter. When the delimiter is found, then all characters to the left are assigned to identifier1 and all characters to the right are assigned to identifier2. If the delimiter is not found, the entire balanced-text string is assigned to identifier1 and the null string is assigned to identifier2.

Source text

 

 

%DEFINE (text) (-1,-2,-3,-4,-5)

 

 

%MATCH (next,list) (%text)

 

 

%WHILE (%LEN (%next) NE 0)

 

 

(

 

MOV

R8,#%next

 

 

 

 

MOV

@WR2,R8 %MATCH (next,list)(%list)

6

 

 

 

INC

WR2,#1

 

)

 

 

 

Output

text

 

 

 

 

 

 

 

 

MOV

R8,#-1

 

 

 

 

 

MOV

@WR2,R8

 

 

 

INC

WR2,#1

 

 

 

MOV

R8,#-2

 

 

 

MOV

@WR2,R8

 

 

 

INC

WR2,#1

 

 

 

MOV

R8,#-3

 

 

 

MOV

@WR2,R8

 

 

 

INC

WR2,#1

 

 

 

MOV

R8,#-4

 

 

 

MOV

@WR2,R8

 

 

 

INC

WR2,#1

 

 

 

MOV

R8,#-5

 

 

 

MOV

@WR2,R8

 

 

 

INC

WR2,#1

 

Соседние файлы в папке HLP