
Instruction Set
4-238
STOS
STOS
Operation It Performs
Flag Settings After Instruction
Examples
This example fills a string in memory with a character. Because the Direction Flag (DF) is
cleared to 0 using CLD, the bytes are filled, one by one, from first to last.
if (size(
destination) == 8)
/* store bytes */
{
ES:[DI] = AL;
if (DF == 0)
/* forward */
increment = 1;
else
/* backward */
increment = -1;
}
if (size(
destination) == 16)
/* store words */
{
ES:[DI] = AX;
if (DF == 0)
/* forward */
increment = 2;
else
/* backward */
increment = -2;
}
/* point to location for next string component */
DI = DI + increment;
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Processor Status
Flags Register
reserved
OF DF
IF TF SF ZF
AF
PF
CF
? = undefined; – = unchanged
–
–
–
–
–
– res – res – res –
STRING
DB
128 DUP (?)
ASTERISK
DB
’*’
; 2Ah
; fill string with character
; set up registers and flags
MOV
AL,ASTERISK
; copy character to AL
LEA
DI,STRING
; load offset (segment = DS)
MOV
CX,LENGTH STRING
; set up counter
CLD
; process string low to high
; fill string
REP
STOSB
Summary of Contents for Am186 Series
Page 1: ...Am186 and Am188 Family Instruction Set Manual February 1997...
Page 10: ...Table of Contents x...
Page 18: ...Programming 1 8...
Page 40: ...Instruction Set Listing 3 14...