INTRODUCTION

execution. Bytes and words also may be rotated. Bits rotated out of an operand are not lost as in a shift but are circled back into the other end of the operand.

POWERFUL STRING PROCESSING

Five basic string instructions called primitives allow a string of bytes or words to be oper- ated on, one byte or word at a time. Strings of up to 64K bytes may be manipulated with these instructions. Instructions are available to move data from a source string to a desti- nation string, or to compare two strings, or to scan one string for a given value. In addi- tion, string instructions are provided to move string elements to and from the AX register in the 8088 (Fig. 1-19).

The specified operation is performed only once when the string primitive is encountered in the program. If the programmer desires the operation to be performed repetitively,

 

LOGICALS

NOT

"Not" byte or word

AND

"And" byteorword

OR

"Inclusive or" byte or word

XOR

"Exclusive or" byte or word

TEST

"Test" byte or word

 

SHIFTS

SHLISAL

Shift logical/arithmetic left

 

byte or word

SHR

Shift logical right byte or word

SAR

Shift arithmetic right byte or

 

word

 

ROTATES

ROL

Rotate left byte or word

ROR

Rotate right byte or word

RCL

Rotate through carry left byte

 

or word

RCR

Rotate through carry right

 

byte or word

such as in a block or string manipulation operation, the basic string primitive may be proceeded by a special one byte "prefix" that causes the instruction to be repeated by the hardware. This prefix is called REPEAT. The use of the REPEAT prefix allows long strings to be processed much faster than would be possible with a software loop. The repetitions can be terminated by a variety of conditions and a repeated operation may be interrupted and resumed. The ex register counts the number of times the string opera- tion is performed.

When the 8088 moves a 16-bit quantity, it does so 8 bits at a time automatically in the hardware. Because of the variety of string operations and the fact the 8088 can move both 8-bit and 16-bit quantities using its string instructions, the 8088 has the most powerful string processing capabilities of any 8-bit microprocessor.

The program transfer instructions are shown in Figure 1-20. These instructions redirect the flow of instruction execution to other loca- tions in memory and many of them are equivalent to instructions found in other 8-bit microprocessors. The 8088, however, offers much more flexibility in how an instruction is performed. The unconditional transfer instruc- tions may transfer control to a target

MOVS

Move byte or word string

CMPS

Compare byte or word

 

string

SCAS

Scan byte or word string

LODS

Load byte or word string

STOS

Store byte or word string

REP

Repeat

REPE/REPZ

Repeat while equal/zero

REPNE/REPNZ

Repeat while not

 

equal/not zero

Figure 1-18. Bit Manipulation Instructions

Figure 1-19. String Instructions

1-11

Page 22
Image 22
Intel 210200-002 manual Powerful String Processing