✂✁
✄
☎ ✆
✝
✄
✞✠✟✡
☛
✟☞
✝
✝
✌✎✍
☛
✏✑
✒
✏✓
✔
✄
✄
✆
✝
✕✖
✁
✗
✘ ✙
✞✚
✛✜
✑
1
✢
✔✎✣
✟
✌
✖✤
✑✦✥
✤
✑
✑
✜
✧✎★
✩✪
☞
✝
✫
UMBC
U M B C
U
N
I
V
E
R
S
I
T
Y
O
F
M
A
R
Y
L
A
N
D
B
A
L
T
I
M
O
R
E
C
O
U
N
T
Y
1
9
6
6
✬✎✭
✮✠✯
✰✱
✲
✲
✯
✳
✴
✰✎✵
StringOperations.
MOVS,LODS,STOS,INS,OUTS
Allowdatatransfersofabyte,awordoradoubleword,orifrepeated,a
blockofeachofthese.
TheDflag-bit(direction),SIandDIareimplicitlyused.
•D=0:AutoincrementDIandSI.
UseCLDinstructiontoclearthisflag.
•D=1:AutodecrementDIandSI.
UseSTDinstructiontosetit.
DI:
Accessesdataintheextrasegment.CanNOToverride.
SI:
Accessesdatainthedatasegment.Canbeoverriddenwithsegment
overrideprefix.
✂✁
✄
☎ ✆
✝
✄
✞✠✟✡
☛
✟☞
✝
✝
✌✎✍
☛
✏✑
✒
✏✓
✔
✄
✄
✆
✝
✕✖
✁
✗
✘ ✙
✞✚
✛✜
✑
2
✢
✔✎✣
✟
✌
✖✤
✑✦✥
✤
✑
✑
✜
✧✎★
✩✪
☞
✝
✫
UMBC
U M B C
U
N
I
V
E
R
S
I
T
Y
O
F
M
A
R
Y
L
A
N
D
B
A
L
T
I
M
O
R
E
C
O
U
N
T
Y
1
9
6
6
✬✎✭
✮✠✯
✰✱
✲
✲
✯
✳
✴
✰✎✵
StringOperations.
LODS:
LoadsAL,AXorEAXwithdatastoredatthedatasegment(orextra
segment)+offsetgivenbySI.
SIisincrementedordecrementedafterwards:
STOSB:
StoresAL,AXorEAXtotheextrasegment(ES)+offsetgivenbyDI.
EScannotbeoverridden.
DIisincrementedordecrementedafterwards:
LODS
✁✂
✁
✄
☎
✆
✁✝
✞
✟
✠
✡
✟
☛☞
☎
✟
☛
✞
✟
☛ ✌
✍✏✎
✑
✒ ✓
✁✂
✁
✄
✔
LODSB
☎
✁✕
✞
✟
✠
✡
✟
☛☞
☎
✟
☛
✞
✟
☛ ✌
✍✏✎
✄
LODSD
☎
✆
✁✝
✞
✟
✠
✡
✟
☛☞
☎
✟
☛
✞
✟
☛ ✌
✍✏✎
✑
doubleword.
LODS
✆✟
✠
✁✂
✁
✄
☎
✖✘✗
✙✚
✚
✒ ✛
✙
✟
✜
STOS
✁✂
✁
✄
☎
✆✟
✠
✡
☛☞
✞
✁✝
☎
✟
☛
✞
✟
☛ ✌
✍✏✎
✢
✒ ✓
✁✂
✁
✄
✔
STOSB
☎
✆✟
✠
✡
☛☞
✞
✁✕
☎
☛
✞
☛ ✌
✍✏✎
✄
STOSD
☎
✆✟
✠
✡
☛☞
✞
✆
✁✝
☎
☛
✞
☛ ✌
✍✏✎
✑
word.
✂✁
✄
☎ ✆
✝
✄
✞✠✟✡
☛
✟☞
✝
✝
✌✎✍
☛
✏✑
✒
✏✓
✔
✄
✄
✆
✝
✕✖
✁
✗
✘ ✙
✞✚
✛✜
✑
3
✢
✔✎✣
✟
✌
✖✤
✑✦✥
✤
✑
✑
✜
✧✎★
✩✪
☞
✝
✫
UMBC
U M B C
U
N
I
V
E
R
S
I
T
Y
O
F
M
A
R
Y
L
A
N
D
B
A
L
T
I
M
O
R
E
C
O
U
N
T
Y
1
9
6
6
✬✎✭
✮✠✯
✰✱
✲
✲
✯
✳
✴
✰✎✵
StringOperations:
LODSW
EAX
EBX
ECX
EDX
ESP
EBP
EDI
ESI
CS
DS
ES
SS
✁
✂
✁
✄ ☎
✆
*10H
✝
✞
✞
✞
+
✝
✞
✞
✞
11000
✟
✞
✠
✡
✟
✞
✠
✡
+/-
2
✂✁
✄
☎ ✆
✝
✄
✞✠✟✡
☛
✟☞
✝
✝
✌✎✍
☛
✏✑
✒
✏✓
✔
✄
✄
✆
✝
✕✖
✁
✗
✘ ✙
✞✚
✛✜
✑
4
✢
✔✎✣
✟
✌
✖✤
✑✦✥
✤
✑
✑
✜
✧✎★
✩✪
☞
✝
✫
UMBC
U M B C
U
N
I
V
E
R
S
I
T
Y
O
F
M
A
R
Y
L
A
N
D
B
A
L
T
I
M
O
R
E
C
O
U
N
T
Y
1
9
6
6
✬✎✭
✮✠✯
✰✱
✲
✲
✯
✳
✴
✰✎✵
StringOperations.
REPprefix:
ExecutestheinstructionCXtimes.
NOTE:REPdoesnotmakesensewiththeLODSinstruction.
CLD
✜
✖
✆
✕
✂
☛✁
✂
.STARTUP
MOV AX
✄
☎ ✆
✝
☎
☎ ✞
.EXIT
END
☎
✟
✙
✟
✙✠
✡
✒☞☛
✠
✚
✙✌
✙
☛
✡
✌
✍
✛
✙
✜
.CODE
☎
✁
✛
✛
✚
✙✎
✎
✗
✒ ✛
✙
✍
✎
✙✏
✆
✝
☎
☎
✜
MOV ES
✄
AX
MOV DI
✄
☎
☎
✖
✓
✓
✎
✙
✡
☎
✜
MOV CX
✄
✢ ✑
✒
✝
☎
☎
✕
✍
✔
✛
✠
✍✓
☛
✡
✜
MOV AX
✄
☎ ✔
✢
☎ ✞
☎
✕
✍
✔
✛
✔
✡
✡
✚
✒ ✕
✓
✡
✙
✔
☛
✛
✠
✖
✔
✚
✜
✗✘
✙
✄✚
✛
✄✜
☎
✢
✟
✙
✔
✚
✡
✖
✙
✎
✠
✚
✙
✙
☛
✜
✂✁
✄
☎ ✆
✝
✄
✞✠✟✡
☛
✟☞
✝
✝
✌✎✍
☛
✏✑
✒
✏✓
✔
✄
✄
✆
✝
✕✖
✁
✗
✘ ✙
✞✚
✛✜
✑
5
✢
✔✎✣
✟
✌
✖✤
✑✦✥
✤
✑
✑
✜
✧✎★
✩✪
☞
✝
✫
UMBC
U M B C
U
N
I
V
E
R
S
I
T
Y
O
F
M
A
R
Y
L
A
N
D
B
A
L
T
I
M
O
R
E
C
O
U
N
T
Y
1
9
6
6
✬✎✭
✮✠✯
✰✱
✲
✲
✯
✳
✴
✰✎✵
StringOperations.
MOVS:
Movesabyte,wordordoublewordfromdatasegmentandoffsetSI
toextrasegmentandoffsetDI.
Increments/decrementsbothDIandSI:
INS/OUTS(notavailableonthe8086):
Transfersabyte,wordordoublewordofdatafrom/toanI/Odevice
into/outoftheextra/datasegment+offsetDI/SI,respectively.
TheI/OaddressisstoredintheDXregister.
MOVS
✆
✄
✄
✆
✢
☎
✆
✟
✠
✡
☛☞
✞
✟
✠
✡
✟
☛☞
☎
☛
✞
☛
✌
✍✏✎
✄
☎
✟
☛
✞
✟
☛ ✌
✍✏✎
✄
MOVSB
☎
✆✟
✠
✡
☛☞
✞
✟
✠
✡
✟
☛☞
☎
☛
✞
☛ ✌
✍✏✎
✄
☎
✟
☛
✞
✟
☛ ✌
✍✏✎
✄
MOVSD
☎
✆
✟
✠
✡
☛☞
✞
✟
✠
✡
✟
☛☞
☎
☛
✞
☛
✌
✍✏✎
✑
☎
✟
☛
✞
✟
☛ ✌
✍✏✎
✑
✁
✄✜
✂
✄
✄
✂
✢
☎
✆
✟
✠
✡
☛☞
✞
✡
✝
☞
☎
☛
✞
☛ ✌
✍✏✎
✢
☎
✟
☛
✞
✟
☛ ✌
✍✏✎
✢
INSB
☎
✆✟
✠
✡
☛☞
✞
✡
✝
☞
☎
☛
✞
☛
✌
✍✏✎
✄
INSD
☎
✆
✟
✠
✡
☛☞
✞
✡
✝
☞
☎
☛
✞
☛ ✌
✍✏✎
✑
OUTSB
☎
✡
✝
☞
✞
✟
✠
✡
✟
☛☞
☎
✟
☛
✞
✟
☛ ✌
✍✏✎
✄