()
5
:
(Assembler)
:
107311 ..
.
..
: ..
2012
: .
. .
, , , .
, , :
8 ;
16 ;
32 .
. , . , .
- .
, , , .
, , , .
- , , :
:
movs _,_
movsb
movsw
movsd
:
cmps _,_
cmpsb
cmpsw
cmpsd
:
scas _
scasb
scasw
scasd
:
lods _
lodsb
lodsw
lodsd
:
stos _
stosb
stosw
stosd
-:
ins _,_
insb
insw
insd
-:
outs _,_
outsb
outsw
outsd
. . . .
:
rep
|
|
repe repz
repne repnz
.
. .
, : ecx/cx zf:
- rep (REPeat). , - , movs stos. rep , ecx/cx 0. , , ecx/cx . , , ;
- repe repz (REPeat while Equal or Zero). . , ecx/cx zf 1. , . zf, cmps scas ;
- repne repnz (REPeat while Not Equal or Zero). . repe/repz. repne/repnz , ecx/cx zf .
.
cmps scas, .
, , _ _.
- -, _, , ds.
- -, _, , es.
- , ( ) ds, es .
- .
- - esi/si (Source Index register ).
- - edi/di (Destination Index register - ).
, :
_ ds:esi/si;
_ es:edi/di.
, , . :
- , ;
- , .
, , , . , , . df (Direction Flag) eflags/flags:
|
|
- df = 0, esi/si edi/di ( ) , ;
- df = 1, esi/si edi/di ( ) , .
df , :
- cld (Clear Direction Flag) . df 0.
- std (Set Direction Flag) . df 1.