Professional Documents
Culture Documents
8086
8086
ΔΠϣήΒϠϟ ϲΑήόϟ ϖϳήϔϟ ϊϗϮϣ ΓέΩ· Ϧϣ ϳήλ ϥΫΈΑ ϻ· αϭέΪϟ ϩάϫ Ϧϣ ϒϟΆϤϟ Ϣγ ϭ ϊϗϮϤϟ ϥϮϨϋ δϣ ΎΗΎΑ ΎόϨϣ ϊϨϤϳ
:ΔψΣϼϣ
ΐϠΣ ΔόϣΎΠΑ ΕΎΒγΎΤϟ ΔγΪϨϫ Ϣδϗ ΔϴϧΎΜϟ ΔϨδϟ ΝΎϬϨϣ Ϧϣ ΔδΒΘϘϣ αΎγϷΎΑ ϲϫ αϭέΪϟ ϩάϫ
ϲϧΎΜϟ ˯ΰΠϟ
8086 ΞϟΎόϤϟ ΕΎϤϴϠόΗ
21- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
22- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
24- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
100 00
LEA SI,[100] => SI = 1000
10
300 30
40
00
30
ˮ ADC AX,BX ΔѧϤϴϠόΘϟ άѧϴϔϨΗ ΔѧΠϴΘϧ ϲѧϫ ΎѧϤϓ CF = 1 ϭ BX = FD81h ϭ AX = 4F3Dh νήѧϔΑ :ϝΎѧΜϣ
. ϩάϫ ϊϤΠϟ ΔϴϠϤϋ άϴϔϨΗ ΪόΑ ΔϟΎΤϟ ϡϼϋ ΔϟΎΣ Ύ˱ϨϴΒϣ
ϡϼϋϷ ΔϟΎΣ ϴοϮΗ ϞΟ Ϧϣ ΕϻϮΤΘϤϠϟ ΔϴΎϨΜϟ Γήϔϴθϟ ΐΘϜϨγ :ϞΤϟ
1111 111 1
AX = 0100 1111 0011 1101 b
BX = 1111 1101 1000 0001 b
CF = 0001 b +
1 0100 1100 1011 1111 b
CF
:ϲϫ ΔϟΎΤϟ ϡϼϋ ϥϵ ϭ
ϊϤΠϟ ΞΗΎϧ Ϧϣ ϝϭϷ ΖϳΎΒϟ ϲϓ ϱΩήϓ ΕΪΣϮϟ ΩΪϋ ϥϷ PF = 0
ϢϴϗήѧΗ ϢΘѧϳ ΚѧϴΣ ) ϊѧϤΠϟ ΞΗΎѧϧ Ϧѧϣ ϝϭϷ ΖѧϳΎΒϟ ϲѧϓ 4 ΔѧϧΎΨϟ ϰѧϟ· 3 ΔѧϧΎΨϟ Ϧѧϣ ΡΎϳΰϧ ΪΟϮϳ ϻ ϪϧϷ AF = 0
( ήϔμϟ Ϧϣ ˱˯ΪΑ ΕΎϧΎΨϟ
( ΐΟϮϣ ΞΗΎϨϟ ) ϊϤΠϟ ΔΠϴΘϧ Ϧϣ ΔϧΎΧ ήΧ ϲϫ ϭ SF = 0
ϲΟέΎΧ ΡΎϳΰϧ ΩϮΟϭ ΐΒδΑ CF = 1
ϲΟέΎΧ ΡΎϳΰϧ· ϭ ϲϠΧΩ ΡΎϳΰϧ· ΪΟϮϳ ϪϧϷ OF = 0
MSB ϰϤψόϟ ΔϴϤϫϷ ΕΫ ΔϧΎΨϟ ϰϟ· ϞΧΪϟ Ϯϫ ϲϠΧΪϟ ΡΎϳΰϧϻ :ΔψΣϼϣ
ςϘϓ ϲΟέΎΧ ΡΎϳΰϧ ΪΟϭ ϭ ςϘϓ ϲϠΧΩ ΡΎϳΰϧ ΪΟϭ Ϋ· OF = 1 :ΔψΣϼϣ
DAA ϴΤμΘϟ ΔϤϴϠόΗ
ΞΗΎѧѧϧ ϥϮѧѧϜϳ ϥ ΐѧѧΠϳ ϭ άѧϫ ) BCD ΓήϔϴѧѧθΑ ϦϳΩΪѧѧϋ ϊѧϤΟ ΞΗΎѧѧϨϟ ϴΤѧѧμΗ ΔѧѧϴϠϤϋ ίΎѧΠϧϹ ΔѧѧϤϴϠόΘϟ ϩάѧѧϫ ϡΪΨΘѧδΗ
ϊѧϤΠϟ ΔѧϨϜϤϤϟ ΕϻΎѧΤϟ ϦϴѧΒϳ ϲϟΎѧΘϟ ϝϭΪѧΠϟ ϭ ( AX ϢϛήѧϤϟ Ϧѧϣ ϲϠϔδϟ ϒμϨϟ ϲϓ ϱ AL ϲϓ Ύ˱ϤΘΣ ϊϤΠϟ
: BCD ΓήϔϴθΑ ϦϳΩΪϋ
+ 0 1 2 3 4 5 6 7 8 9
0 9
1 9 10
2 9 10
3 9 10
4 9 10
5 9 10
6 9 10 15
7 9 10 15 16
8 9 10 15 16
9 9 10 15 16 18
Ζѧδϴϟ ϭ ΡΎѧϳΰϧ ϰѧϠϋ ϱϮѧΘΤΗ ϻ ϭ ΔΤϴΤѧλ ϊѧϤΠϟ ΔѧΠϴΘϧ ϥϮѧϜΗ ΎѧϬϴϓ ϭ 9 ϰѧϟ· 0 Ϧѧϣ ΎѧϬϣΎϗέ ϰѧϟϭϷ ΔϘτϨϤϟ
.ϰϟϭϷ ΔϘτϨϤϟ ϕΎτϧ ϦϤο Δόϗϭ ϡΎϗέ ϲϫ ϭ 7+2=9 ϼ ˱ Μϣ ϴΤμΗ ϰϟ· ΔΟΎΤΑ
ΔϓΎѧοΈΑ ϴΤѧμΗ ϰѧϟ· ΔѧΟΎΤΑ ϭ ΔΤϴΤλ ήϴϏ ϊϤΠϟ ΔΠϴΘϧ ϥϮϜΗ ΎϬϴϓ ϭ 15 ϰϟ· 10 Ϧϣ ΎϬϣΎϗέ ΔϴϧΎΜϟ ΔϘτϨϤϟ
ΞΗΎѧѧϨϟ ϥϮѧѧϜϳ E ΩΪѧѧόϟ ϰѧѧϟ· 6 ΔϓΎѧѧοΈΒϓ 9+5=E ϼ
˱ ΜѧѧϤϓ ϲϧΎѧѧΜϟ ΩΪѧѧόϟ ϰѧѧϟ· ϞѧѧϤΣ ϭ Ϣѧѧϗέ ϰѧѧϠϋ ϞѧѧμΤϨϓ 6 ΩΪѧѧόϟ
.ΔΤϴΤλ ΔΠϴΘϨϟ ϥϮϜΗ ϚϟάΑ ϭ 6+E=14
26- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
ϭ ϴΤѧμΗ ϰѧϟ· ΔѧΟΎΤΑ ϭ ΔΤϴΤѧλ ήѧϴϏ ϊѧϤΠϟ ΔѧΠϴΘϧ ϥϮѧϜΗ ΎѧϬϴϓ ϭ 18 ϰΘΣ ϭ 16 Ϧϣ ΎϬϣΎϗέ ΔΜϟΎΜϟ ΔϘτϨϤϟ
.ΡΎϳΰϧ ϊϣ ϊϤΟ ϞλΎΣ Ϧϣ ΔΠϴΘϨϟ Ô ΘΗ ΎϨϫ
AL = Bit7 « Bit0 ϞΜϤϧ ΚϴΣ AL ϲϓ ΩϮΟϮϣ ϊϤΠϟ ΞΗΎϧ ϥ ΎϤΑ
: ϲϫ ΔϤϴϠόΘϟ ϩάϫ ϲϓ ϴΤμΘϟ ΓΪϋΎϗ ϥ·
1) if Bit3 Bit2 Bit1 Bit0 of AL > 9 or AF = 1
then AL = AL + 6 , AF = 1
2) if AL > 9Fh or CF = 1
then AL = AL + 60h , CF =1
ΔϟΰΘΨϤϟ ΓήΛ΄ΘϤϟ
D-SĺD
SUB Ρήσ SUB D,S
burrow ĺ CF
ΔϟΎΤϟ ϡϼϋ
ϊϣ Ρήτϟ D - S - CF ĺ D
SBB SBB D,S ΔϟΎΤϟ ϡϼϋ
ΓέΎόΘγϻ Carry ĺ CF
έΪϘϤΑ ιΎϘϧϹ
DEC DEC D D-1 ĺ D ΔϟΎΤϟ ϡϼϋ
ΪΣϭ
0±DĺD
NEG ϲΎϨΜϟ ϢϤΘϤϟ NEG D
1 ĺ CF
ΔϟΎΤϟ ϡϼϋ
Ρήσ ΞΗΎϧ ϴΤμΗ ϡϼϋ Ϟϛ
DAS ΓήϔϴθΑ ϦϳΩΪϋ DAS Ύ˱ ϘΣϻ ΎϬΣήη ϢΘϴγ Ϊϋ ΔϟΎΤϟ
BCD OF
ϊϤΟ ΞΗΎϧ ϴΤμΗ
AAS ΓήϔϴθΑ ϦϳΩΪϋ AAS Ύ˱ ϘΣϻ ΎϬΣήη ϢΘϴγ AF, CF
ϲϜγϵ
ΔΣϮϤѧδϤϟ ΕϻϮѧΤΘϤϟ ΎϬѧδϔϧ ϲѧϫ SUB, SBB Ρήѧτϟ ϲѧΘϤϴϠόΗ ϞѧΟ Ϧѧϣ ΔϣΪΨΘѧδϤϟ ΕϻϮѧΤΘϤϟ ϥ· :ΔψΣϼϣ
ϲѧѧϬϓ DEC ΔѧѧϤϴϠόΗ ϞѧѧΟ Ϧѧѧϣ ΔϣΪΨΘѧѧδϤϟ ΕϻϮѧѧΤΘϤϟ ϰѧѧϟ· ΔΒѧѧδϨϟΎΑ Ύѧѧϣ ADD,ADC ϊѧѧϤΠϟ ϲѧѧΘϤϴϠόΗ ϞѧѧΟ Ϧѧѧϣ
Reg, ϲѧϫ ΔΣϮϤѧδϤϟ ΕϻϮΤΘϤϟΎѧϓ NEG ΔѧϤϴϠόΘϟ ΔΒѧδϨϟΎΑ ϭ INC ΔѧϤϴϠόΗ ϞΟ Ϧϣ ΔΣϮϤδϤϟ ΕϻϮΤΘϤϟ ΎϬδϔϧ
. Reg16, Mem, Mem16
νήѧѧϔΑ ϭ 2F018h Ϯѧϫ ΎѧѧϤϬϨϋ ΪѧϟϮΘϤϟ ϲΎѧѧϳΰϴϔϟ ϥϮѧϨόϟ ϭ DS = 2F00h ϭ SI = 0018h ϥ νήѧϔΑ :ϝΎѧΜϣ
ΔѧϤϴϠόΘϟ άѧϴϔϨΗ ΞΗΎѧϧ Ϯѧϫ Ύѧϣ ˬ [2F018] = 0400h ϲΎѧϳΰϴϔϟ ϥϮѧϨόϟ ΎѧϬϴϟ· ήϴѧθϳ ϲѧΘϟ ΓήѧΠΤϟ ΕΎѧϳϮΘΤϣ ΖѧϧΎϛ
. SUB [SI],03F8h
:ϞΤϟ
) ϑΪѧѧϬϟ ϝϮѧѧΤΘϣ ΕΎѧѧϳϮΘΤϣ Ϧѧѧϣ ( ΎѧѧϨϫ ϱέϮѧѧϓ ϝϮѧѧΤΘϣ ) έΪѧѧμϤϟ ϝϮѧѧΤΘϣ ΕΎѧѧϳϮΘΤϣ Ρήѧ τΑ ΔѧѧϤϴϠόΘϟ ϩάѧѧϫ ϡϮѧϘΗ
ϢѧѧΛ Ϧѧϣ ϭ έΪѧѧμϤϟ ϝϮѧΤΘϤϟ ϲΎѧϨΜϟ ϢϤΘѧѧϤϟ ΩΎѧΠϳΈΑ ϢΘѧѧΗ Ρήѧτϟ ΔѧϤϴϠόΗ ϥ ΚѧѧϴΣ ( ΎѧϨϫ ΓήѧѧϛΫ ΓήѧΠΣ ΕΎѧϳϮΘΤϣ
.ϑΪϬϟ ϝϮΤΘϣ ϊϣ ϪόϤΟ
: ( Ϫϟ ϲΎϨΜϟ ϢϤΘϤϟ ΩΎΠϳ· Ϊϳήϧ ϱάϟ ΩΪόϟ ϕϮϓ ϦϴτΧ ϊοϮΑ Ϫϴϟ· έΎθϳ ϱάϟ ϭ ) ϲΎϨΜϟ ϢϤΘϤϟΎΑ ΓήϛάΗ
:ϲϠϳ Ύϣ ϞϤϋΎϓ 03F8h ΩΪόϠϟ ϲΎϨΜϟ ϢϤΘϤϟ ϰϠϋ ϝϮμΤϟ ΕΩέ Ϋ·
0000 0011 1111 1000 Βμϴϓ ϲΎϨΜϟ ϡΎψϨϟ ϰϟ· ΩΪόϟ άϫ ϞϳϮΤΗ (1
1111 1100 0000 0111 ΞΘϨϴϓ ˱έΎϔλ ΕΪΣϮϟ ϭ ΕΪΣϭ έΎϔλϷ ΐϠϗ (2
± 03F8h = 1111 1100 0000 1000 ϲΎϨΜϟ ϢϤΘϤϟ ϰϠϋ ϞμΤΘϓ ΞΗΎϨϟ Ϣϗήϟ ϰϟ· ΪΣϭ ϒο (3
28- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
AL = 1000 0110 b
AH = 1111 1001 b +
1 0111 1111 b => AL = 7Fh
: ϥϵ ϭ
.ΔόΑήϟ ΔϧΎΨϟ ϰϟ· ΔΜϟΎΜϟ ΔϧΎΨϟ Ϧϣ ΡΎϳΰϧ ΩϮΟϭ ϡΪϋ ΐΒδΑ AF = 1
ϲΟέΎΧ ΡΎϳΰϧ ΩϮΟϮϟ CF = 0
AL = 79h , AF = 1 ϥ ΪΠϧ ϴΤμΘϟ ΓΪϋΎϗ Ϧϣ 1 ρήθϟ ϖϴΒτΘΑ ϭ
AAS ΔϤϴϠόΗ
ΓΪѧϋΎϗ ϭ ˬ AL ϲѧϓ Ρήѧτϟ ΞΗΎѧϧ ϦѧϤϜϳ ΚѧϴΣ ASCII ΓήϔϴѧθϟΎΑ ϦϳΩΪϋ Ρήσ ΞΗΎϧ ϴΤμΘϟ ΔϤϴϠόΘϟ ϩάϫ ϡΪΨΘδΗ
:ϲϫ ϴΤμΘϟ
if Bit3 Bit2 Bit1 Bit0 of AL > 9 or AF = 1
then AL = AL ± 06h , AL = AL and 0Fh
AH = AH ± 01 , AF = 1 , CF = 1
Else AL = AL and 0Fh , AH = 00
:ϝΎΜϣ
:ϦϴΘϴϟΎΘϟ ϦϴΘϤϴϠόΘϟ άϴϔϨΗ ΞΗΎϧ Ϯϫ Ύϣ ˬ BL = 35h = 5 ASCII ϭ AL = 38h = 8 ASCII ϥ νήϔΑ
SUB AL,BL
AAS
:ϞΤϟ
AL = 0011 1000 b
BL = 1100 1011 b +
1 0000 0011 b => AL = 03h
ΔόΑήϟ ΔϧΎΨϟ ϰϟ· ΔΜϟΎΜϟ ΔϧΎΨϟ Ϧϣ ΡΎϳΰϧ ΩϮΟϭ ΐΒδΑ AF = 0
ϲΟέΎΧ ΡΎϳΰϧ ΩϮΟϭ ΐΒδΑ CF = 0
AL = 03h , AH = 00 ΪΠϧ ϴΤμΘϟ ΓΪϋΎϗ ϖϴΒτΗ ΪόΑ ϭ
ΓέΎη·
Q[AX/S8] ĺ AL
ΖϳΎΑ
ΔϟΎΣ
ϥϭΪΑ ϢϴδϘΗ R[AX/S8] ĺ AH
DIV DIV S ΔϟΎΤϟ ϡϼϋ
ΔϤϠϛ ΔϟΎΣ
ΓέΎη· Q[(DX,AX)/S16] ĺ AX
R[(DX,AX)/S16] ĺ DX
R ΰѧϣήϟ Ύѧϣ ΖѧϳΎΑ Ϧѧϋ ΓέΎѧΒϋ έΪμϣ ϝϮΤΘϣ ϲϨόϳ S8 ΰϣήϟ ϭ ˬΔϳΩΎόϟ Ώήπϟ ΔϴϠϤϋ ϰϨόΗ ΔτϘϨϟ : ΔσΎδΒΑ
.ΔϤδϗ ϞλΎΣ ϻ· Ϯϫ Ύϣ Q ΰϣήϟ ϭ ΔϤδϘϟ ϲϗΎΑ ϲϨόϴϓ
) ΔѧϴϧΎΜϟ ΔѧϟΎΤϟ ϲѧϓ Q ΔѧϤϴϗ ΖѧϧΎϛ ϭ FF˰ѧϟ ΔϳϭΎѧδϣ ( ΖѧϳΎΑ ΔϟΎΣ ) ϰϟϭϷ ΔϟΎΤϟ ϲϓ Q ΔϤϴϗ ΖϧΎϛ Ϋ· :ΔψΣϼϣ
.ϢϴδϘΘϟ ΄τΨΑ ΔόσΎϘϤϟ ϩάϫ ϑήό˵Η ϭ ˬήϔλ ωϮϨϟ Ϧϣ ΔόσΎϘϣ ΙΪΤΘϓ FFFFh ϰϟ· ΔϳϭΎδϣ ( ΔϤϠϛ ΔϟΎΣ
ϭ ΔϘΑΎѧѧδϟ ΕΎѧѧϤϴϠόΘϠϟ Ύ˱ѧ ϣΎϤΗ ΔϬΑΎѧѧθϣ ϲѧѧϬϓ ΓέΎѧѧηϹ ΕΫ ΩΪѧѧϋϸϟ ϢϴѧѧδϘΘϟ ϭ Ώήѧѧπϟ ΕΎѧѧϤϴϠόΘϟ ΔΒѧѧδϨϟΎΑ :ΔѧѧψΣϼϣ
:ϲϠϳ ΎϤϛ ϑήό˵Η
.έΎΒΘϋϻ ϦϴόΑ ΓέΎηϹ άΧ ϊϣ Ώήπϟ ΔϤϴϠόΗ ϲϫ IMUL
.έΎΒΘϋϻ ϦϴόΑ ΓέΎηϹ άΧ ϊϣ ϢϴδϘΘϟ ΔϤϴϠόΗ ϲϫ IDIV
. MSB ˰ϟ ΔϧΎΧ ϱ ϪϨϣ ΔϧΎΧ ήΧ ϦϴΘϤϴϠόΘϟ ΎΘϠϛ ϲϓ ΞΗΎϨϟ ΓέΎη· ϥϮϜΗ ϭ
:(ΔϤδϘϟ ϭ Ώήπϟ ϝϭΪΠϟ ϊΑΎΗ ) ΔϴϟΎΘϟ ΕΎϤϴϠόΘϟ ϙΎϨϫ ϚϟΫ ϰϟ· ΔϓΎοϹΎΑ ϭ
ΔϤϠϜϟ ϡϼϋϷ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ
ΔϟΰΘΨϤϟ ΓήΛ΄ΘϤϟ
Ϧϣ AL ϲϓ ΞΗΎϨϟ ϴΤμΗ Q[AL/10d] ĺ AH
AAM ϭ BCD ϦϳΩΪϋ Ώήο AAM R[AL/10d] ĺ AL ΔϟΎΤϟ ϡϼϋ
ϦϴϴΎϨΛ ϦϳΩΪϋ
ΔϤδϘϟ ϞΟ Ϧϣ AX ϴΤμΗ
ϭ ΔϤδϘϟ ΞΗΎϧ βϴϟ AX ΚϴΣ
ϲϓ ϑΪϬϟ ϝϮΤΘϣ Ϯϫ ΎϤϧ·
AH.10d + AL ĺ AL
AAD ϩάϫ ϖΒτϧ Ϛϟάϟ .ΔϤδϘϟ ΔϴϠϤϋ AAD 00 ĺ AH
SF, ZF, PF
ΔϤδϘϟ ΔϤϴϠόΗ ϞΒϗ ΔϤϴϠόΘϟ
ΕΎϤϴϠόΗ ϲϗΎΑ βϜϋ ϰϠϋ
ϴΤμΘϟ
MSB of AL ĺ
CBW ΔϤϠϛ ϰϟ· ΖϳΎΑ ϞϳϮΤΗ CBW
All bits of AH
ΪΟϮϳ ϻ
MSB of AX ĺ
CWD ΔϔϋΎπϣ ΔϤϠϛ ϰϟ· ΔϤϠϛ ϞϳϮΤΗ CBW
All bits of DX
ΪΟϮϳ ϻ
ϦϴѧόϤΠϣ ήѧϴϏ ϦϳΩΪѧϋ Ώήѧο ΪѧϨϋ ϪѧϧϷ ϦϴѧόϤΠϣ ήѧϴϏ ϦϳΩΪϋ Ώήο ΞΗΎϧ ϴΤμΘϟ ϡΪΨΘδΗ AAM ΔϤϴϠόΘϟ ϥ·
. AAM ΔϤϴϠόΘϟ ΔτγϮΑ ΎϬΤΤμϧ Ϛϟάϟ ˬΔόϤΠϣ ήϴϏ ϥϮϜΗ ϥ ΐΠϳ ΔΠϴΘϨϟ ϭ ΔόϤΠϣ ΔΠϴΘϧ ϰϠϋ ϞμΤϧ
: ΔϴϟΎΘϟ ΕΎϤϴϠόΘϟ άϴϔϨΗ ΔΠϴΘϧ ϲϫ ΎϤϓ AL = 07 ϭ BL = 09 ϥ νήϔΑ :ϝΎΜϣ
MUL BL
AAM
:ϞΤϟ
AX = 00 07
BX = 00 09
MUL 00 3F AX
AAM 06 03 AX
: ϲϫ AAD ΔϤϴϠόΗ ϲϓ ϴΤμΘϟ ΓΪϋΎϗ
ϊѧѧϴϤΠΗ ΐѧѧΠϳ Ϛϟάѧѧϟ ϭ ΔѧѧΌσΎΧ ΞΎѧѧΘϧ ϰѧѧϠϋ ϝϮѧѧμΤϟ ϰѧѧϟ· ϱΩΆѧѧϳ ΔѧѧόϤΠϤϟ ήѧѧϴϏ ΩΪѧѧϋϷ ϰѧѧϟ· ΔΒѧѧδϨϟΎΑ ϢϴѧѧδϘΘϟ ϥ·
ϴΤѧμΘϟ ΔѧϤϴϠόΗ ϖѧϴΒτΗ ΔѧΠϴΘϨϓ ( ΔѧόϤΠϣ ήѧϴϏ ΩΪѧϋ ϲϫ ϭ ) AX = 0604h ϥ νήϔΑ ϭ .ΎϬΘϤδϗ ϞΒϗ ΩΪϋϷ
:ϲϫ ( ϢϴδϘΘϟ ΔϴϠϤϋ ϞΒϗ ΎϬϘϴΒτΗ ϢΘϳ ϲΘϟ ϭ ) AAD
AL = 06 x 10d + 04h = 64d = 40h
AH = 00h => AX = 0040h
ΔϤϠϜϟ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ ΓήΛ΄ΘϤϟ ϡϼϋϷ
ΔϟΰΘΨϤϟ
ΔΣί· SAL/SHL D,count
ΔΣί·/ΔϴοΎϳέ OF,CF
SAL/SHL
ΎϤϫϼϛ ϭ ΔϴϘτϨϣ
έΎδϴϟ ϮΤϧ CF 0
31- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
ϊѧϴϤΟ ˯Ϟѧϣ ϭ count ΔѧϤϴϘϟ Ύ˱ϳϭΎѧδϣ ΕΎѧϧΎΨϟ Ϧϣ ˱ΩΪϋ CF ϩΎΠΗΎΑ έΎδϴϟ ϮΤϧ D ΕΎϳϮΘΤϣ ΔΣί· ϲϫ ΎϨϫ ΔϴϠϤόϟ
.έΎϔλ΄Α ΔϏήϔϤϟ ϰϨϤϴϟ ΕΎϧΎΨϟ
. OF = 1 ϥΈϓ ΔΣίϹ ΔΠϴΘϧ ΓέΎηϹ ΔϧΎΧ ΖϟΪΒΗ Ϋ· : OF ϢϠϋ ϰϠϋ ΔϤϴϠόΘϟ ϩάϫ ήϴΛ΄Θϟ ΔΒδϨϟΎΑ ϭ
ΔϤϠϜϟ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ ΓήΛ΄ΘϤϟ ϡϼϋϷ
ΔϟΰΘΨϤϟ
ΔϴϘτϨϣ ΔΣί· SHR D,count OF,CF
SHR
ϦϴϤϴϟ ϮΤϧ
0 CF
ϊѧϴϤΟ ˯Ϟѧϣ ϭ count ΔѧϤϴϘϟ Ύ˱ϳϭΎѧδϣ ΕΎѧϧΎΨϟ Ϧϣ ˱ΩΪϋ CF ϩΎΠΗΎΑ ϦϴϤϴϟ ϮΤϧ D ΕΎϳϮΘΤϣ ΔΣί· ϲϫ ΎϨϫ ΔϴϠϤόϟ
.έΎϔλ΄Α ΔϏήϔϤϟ ϯήδϴϟ ΕΎϧΎΨϟ
OF = 1 ϥΈϓ ΔΣίϹ ΔΠϴΘϧ ΓέΎηϹ ΔϧΎΧ ΖϟΪΒΗ Ϋ· : OF ϢϠόϟ ϰϠϋ ΔϤϴϠόΘϟ ϩάϫ ήϴΛ΄Θϟ ΔΒδϨϟΎΑ ϭ
ΔϤϠϜϟ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ ΓήΛ΄ΘϤϟ ϡϼϋϷ
ΔϟΰΘΨϤϟ
ΔϴοΎϳέ ΔΣί·
SAR SAR D,count ΔϟΎΤϟ ϡϼϋ
ϦϴϤϴϟ ϮΤϧ
CF
˯Ϟѧѧϣ ϭ count ΔѧѧϤϴϘϟ Ύ˱ϳϭΎѧѧδϣ ΕήѧѧϤϟ Ϧѧѧϣ ˱ΩΪѧѧϋ CF ϩΎѧѧΠΗΎΑ ϦϴѧѧϤϴϟ ϮѧѧΤϧ D ΕΎѧѧϳϮΘΤϣ ΔѧѧΣί· ϲѧѧϫ ΎѧѧϨϫ ΔѧѧϴϠϤόϟ
.( ΔϧΎΧ ήΧ ϭ ΓέΎηϹ ΔϧΎΧ ) MSB ΔϧΎΨϟ ΔϤϴϘΑ ϯήδϴϟ ΕΎϧΎΨϟ ϊϴϤΟ ΕΎϧΎΨϟ
ΕΎѧѧϧΎΨϟ Ϧѧѧϣ ΩΪѧѧόΑ ΔѧѧΣίϹ ϞѧѧΟ Ϧѧѧϣ ϦϴѧѧΘϤϴϠόΘϟ ϦϴΗΎѧѧϫ ΎѧѧϨϘΒσ Ϋ· : SHL, SAL ϦϴѧѧΘϤϴϠόΘϠϟ ΔΒѧѧδϨϟΎΑ :ΔѧѧψΣϼϣ
. 2 ΩΪόϟ ΕΎϔϋΎπϣ Ϯϫ ϱάϟ ϭ 2 ˰Α ϑΪϬϟ ϝϮΤΘϣ Ώήο ϲϨόϳ άϬϓ count = N
ϭ Γήѧϣ Ϟѧϛ LSB = 0 ϥϮѧϛ ΖѧΤΗ 2 ΩΪѧόϟ ϰѧϠϋ ϑΪѧϬϟ ϝϮѧΤΘϣ ϢϴѧδϘΗ ϲϨόΗ SHR ΔϤϴϠόΘϟ ϥ· :ΔψΣϼϣ
. CF ϢϠόϟ ϲϓ ωϮοϮϣ ϲϗΎΑ ΎϨϳΪϟ ϥϮϜϳ ΎϫΪϨόϓ LSB = 1 ΔϟΎ˰Σ ϲϓ
: ΔϴοΎϳήϟ ΕΎϤϴϠόΘϟ ϭ ΔΣίϹ ΕΎϤϴϠόΗ Ύ˱ϣΪΨΘδϣ ΔϴϟΎΘϟ ΔϴοΎϳήϟ Δϗϼόϟ ΏΎδΤΑ ϡϮϘϳ Ύ˱ΠϣΎϧήΑ ΐΘϛ :ϝΎΜϣ
3.(AX) + 7.(BX) ĺ DX
MOV SI,AX ; copy AX into SI
SAL SI,1 ; 2 AX
ADD SI,AX ; 3 AX
MOV DX,BX ; copy BX into DX
MOV CL,03H ; load shift count
SAL DX,CL ; 8 BX
SUB DX,BX ; 7 BX
ADD DX,SI ; result
:ϲϫ ΔΣίϹ ΕΎϤϴϠόΘϟ ΔΒδϨϟΎΑ ΔΣϮϤδϤϟ ΕϻϮΤΘϤϟ ϥ·
D Count
ΔѧѧѧϤϴϗ ϞѧѧѧϴϤΤΗ ΐѧѧѧΠϳ άѧѧѧΪϨόϓ ΪѧѧѧΣϮϟ ϱϭΎѧѧѧδϳ ϻ Count ΎϣΪѧѧѧϨϋ ϱ
Reg 1
Reg CL ΎϣΪѧѧѧϨϋ :ϱ ΔѧѧѧΣίϹ ΕΎѧѧѧϤϴϠόΗ ΔѧѧѧΑΎΘϛ ϢѧѧѧΛ CL ϞΠѧѧѧδϤϟ ϲѧѧѧϓ count
Mem 1 : ΐΘϜϧ ϥ ϦϜϤϴϓ ΪΣϮϟ ϱϭΎδϳ count
Mem CL SAL AX,1
: ΐΘϜϧ ϥ ΐΠϳ <= 1 ΎϣΪϨϋ ϭ
32- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
MOV CL,count
SAL AX,CL
.Ύ˱όΒσ ΔΣίϹ ϡϮϬϔϤΑ Δϗϼϋ ΎϬϟ βϴϟ ΔϴτϴΤϤϟ αϮϗϷ ϭ [1,FF] ϝΎΠϤϟΎΑ ΓΩΪΤϣ count ΔϤϴϗ ϥ· ϭ άϫ
ήϳϭΪΘϟ ΕΎϤϴϠόΗ - Ύ˱δϣΎΧ
:ϲϟΎΘϟ ϝϭΪΠϟ ϲϓ ΔϨϴΒϣ ϲϫ ϭ
ΔϤϠϜϟ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ ΓήΛ΄ΘϤϟ ϡϼϋϷ
ΔϟΰΘΨϤϟ
ROL ϦϴϤϴϟ ϮΤϧ ήϳϭΪΗ ROL D,count OF,CF
CF
ΡΰѧѧΗ˵ ΔѧѧϧΎΧ Ϟѧѧϛ ϭ . count ΔѧѧϤϴϘϟ Ύ˱ϳϭΎѧѧδϣ ΕήѧѧϤϟ Ϧѧѧϣ ˱ΩΪѧѧϋ έΎѧѧδϴϟ ϮѧѧΤϧ D ΕΎѧѧϳϮΘΤϣ ήϳϭΪѧѧΗ ϲѧѧϫ ΎѧѧϨϫ ΔѧѧϴϠϤόϟ
. CF ϲϓ ϭ LSB ΔϧΎΨϟ ϲϓ ϊοϮΗ MSB ˰ϟ ΝέΎΧ
.ΔϘΑΎδϟ ΕΎϤϴϠόΘϟ ϲϓ ΔθϗΎϨϤϟ βϔϧ ϮϬϓ OF ϢϠόϟ ϰϠϋ ΔϤϴϠόΘϟ ϩάϫ ήϴΛ΄Θϟ ΔΒδϨϟΎΑ ϭ
ΔϤϠϜϟ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ ΓήΛ΄ΘϤϟ ϡϼϋϷ
ΔϟΰΘΨϤϟ
ϮΤϧ ήϳϭΪΗ
ROR ROR D,count OF,CF
έΎδϴϟ
CF
ΝέΎѧΧ Ρΰѧ˵Η ΔѧϧΎΧ Ϟѧϛ ϭ . count ΔѧϤϴϘϟ Ύ˱ϳϭΎδϣ ΕήϤϟ Ϧϣ ˱ΩΪϋ ϦϴϤϴϟ ϮΤϧ D ΕΎϳϮΘΤϣ ήϳϭΪΗ ϲϫ ΎϨϫ ΔϴϠϤόϟ
. CF ϲϓ ϭ MSB ΔϧΎΨϟ ϲϓ ϊοϮΗ LSB ˰ϟ
.ΔϘΑΎδϟ ΕΎϤϴϠόΘϟ ϲϓ ΔθϗΎϨϤϟ βϔϧ ϮϬϓ OF ˰ϟ ΔΒδϨϟΎΑ ϭ
ΔϤϠϜϟ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ ΓήΛ΄ΘϤϟ ϡϼϋϷ
ΔϟΰΘΨϤϟ
ϮΤϧ ήϳϭΪΗ
RCL ˰ϟ ήΒϋ έΎδϴϟ RCL D,count OF,CF
CF
CF
ΔѧѧϧΎΨϟ Ύѧѧϣ LSB ΔѧѧϧΎΨϟ ϲѧѧϓ ϊѧѧοϮϳ CF ˰ѧѧϟ ϲϠѧѧλϷ ϯϮѧѧΘΤϤϟ ϥ Ϊѧѧϋ Ύѧѧϣ ROL ΔѧѧϤϴϠόΘϟ ΔϬΑΎѧѧθϣ ΎѧѧϨϫ ΔѧѧϴϠϤόϟ
. CF ϲϓ ϊοϮΘϓ MSB ˰ϟ ΝέΎΧ ΔΣΰϤϟ
.ΔϘΑΎδϟ ΔθϗΎϨϤϟ βϔϧ OF ˰ϟ ΔΒδϨϟΎΑ ϭ
ΔϤϠϜϟ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ ΓήΛ΄ΘϤϟ ϡϼϋϷ
ΔϟΰΘΨϤϟ
33- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
CF
ΔѧѧϧΎΨϟ Ύѧѧϣ MSB ΔѧѧϧΎΨϟ ϲѧѧϓ ϊѧѧοϮϳ CF ˰ѧѧϟ ϲϠѧѧλϷ ϯϮѧѧΘΤϤϟ ϥ Ϊѧѧϋ Ύѧѧϣ ROR ΔѧѧϤϴϠόΘϟ ΔϬΑΎѧѧθϣ ΎѧѧϨϫ ΔѧѧϴϠϤόϟ
. CF ϲϓ ϊοϮΘϓ LSB ˰ϟ ΝέΎΧ ΔΣΰϤϟ
.ΔϘΑΎδϟ ΔθϗΎϨϤϟ βϔϧ OF ˰ϟ ΔΒδϨϟΎΑ ϭ
ϡϼϋϷ ΕϼΠδϣ ΕΎϤϴϠόΗ - Ύ˱γΩΎγ
: ϲϟΎΘϟ ϝϭΪΠϟ ϲϓ ΔϨϴΒϣ ϲϫ ϭ
ΔϤϠϜϟ ϡϼϋϷ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ
ΔϟΰΘΨϤϟ ΓήΛ΄ΘϤϟ
Flags ĺ AH
Ϧϣ AH ϞϴϤΤΗ ϡϼϋϷ ϞΠδϣ Ϧϣ ϝϭϷ ϒμϨϟ
LAHF LAHF ΪΟϮϳ ϻ
ϡϼϋϷ ϞΠδϣ AH ϲϓ ϊοϮϳ
AH ΔϤϴϗ ϦϳΰΨΗ AH ĺ Flags
Ϧϣ ϝϭϷ ϒμϨϟ ϲϓ AH ϊοϮϳ ΔϟΎΤϟ ϡϼϋ
SAHF ϞΠδϣ ϲϓ SAHF
OF Ϊϋ
ϡϼϋϷ ϡϼϋϷ ϞΠδϣ
CLC CF ˰ϟ ϒϴψϨΗ CLC 0 ĺ CF CF
STC CF ˰ϟ ϊϴοϮΗ STC 1 ĺ CF CF
CMC
˰ϟ ϱΩΎΣ ϢϤΘϣ CMC CF ĺ CF CF
CF
CLI IF ϒϴψϨΗ CLI 0 ĺ IF IF
STI IF ˰ϟ ϊϴοϮΗ STI 1 ĺ IF IF
ΰѧϔϘϟ ΔѧϤϴϠόΗ άѧϴϔϨΗ ΔѧψΤϟ ϲѧϓ ΓΩϮѧΟϮϤϟ Δϴσήѧθϟ ΕϻΎѧΤϟ ϥΈѧϓ ρϭήѧθϤϟ ΰѧϔϘϟ ϲѧϓ Ύѧϣ ΰѧϔϘϟ ΙϭΪѧΣ ϞΟ Ϧϣ
άѧϴϔϨΘϟ ϊΑΎѧΘ˵ϳ ϻ· ϭ ˬΰѧϔϘϟ ϢΘѧϳ ϪѧϧΈϓ Δϴσήѧθϟ ΕϻΎѧΤϟ ϖѧϘΤΗ ϝΎѧΣ ϲѧϔϓ ˬϻ ϡ ΰѧϔϘϟ ΙΪΤϴγ Ϋ· ΎϤϴϓ έήϘϟ άΨΘΗ
.ΞϣΎϧήΒϟ ϲϓ ΰϔϘϟ ΔϤϴϠόΗ ϲϠΗ ϲΘϟ ΔϤϴϠόΘϟΎΑ
ρϭήθϤϟ ήϴϏ ΰϔϘϟ ΔϤϴϠόΗ (
:ϲϟΎΘϟ ϝϭΪΠϟ ϲϓ ΔΣϭήθϣ ϲϫ ϭ
ΔϤϠϜϟ ϡϼϋϷ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ
ΔϟΰΘΨϤϟ ΓήΛ΄ΘϤϟ
ϥϮϨόϟ ϰϟ· ΰϔϘϟ
ήϴϏ ΰϔϗ
JMP JMP operand ΔτγϮΑ ΩΪΤϤϟ ΪΟϮϳ ϻ
ρϭήθϣ
operand ϝϮΤΘϤϟ
ΰѧϔϘϟ Ϯѧϫ ϲϧΎѧΜϟ ϭ ˬϲѧΰΠϟ ϊѧτϘϤϟ ϦϤѧο ΰϔϘϟΎѧΑ ϰϋΪѧϳ ϝϭϷ ρϭήѧθϤϟ ήѧϴϏ ΰϔϘϟ Ϧϣ ϥΎϴγΎγ ϥΎϋϮϧ ϙΎϨϫ
Ϧѧϣ ωϮѧϨϟ άѧϫ ϖѧϴϘΤΗ ϥ· ϭ ήѧΧ ϊѧτϘϣ ϰѧϟ· Γήϔϴѧθϟ ϊσΎѧϘϣ ΪѧΣ Ϧѧϣ ΰѧϔϘϟ Ϧѧϣ ΎϨ˵ϨϜ˶ Ϥ˴ ϳ˵ ϱ ΔϴΰΠϟ ϊσΎϘϤϟ ϦϴΑ
ϊѧτϘϤϟ ϦϤѧο ΰѧϔϘϟ Ύѧϣ ˬ IP ΔѧϤϴϠόΘϟ ήѧηΆϣ ϞΠѧδϣ ϭ CSϝ ϊѧτϘϣ Ϧѧϣ Ϟѧϛ ΕΎϳϮΘΤϣ ϞϳΪόΗ ΎϨϣ ΐϠτΘϳ ΰϔϘϟ
.ςϘϓ IPϝ ΔϤϴϗ ϞϳΪόΗ ΎϨϣ ΐϠτΘϳ ϪϧΈϓ ϲΰΠϟ
: ϲϫ ρϭήθϤϟ ήϴϏ ΰϔϘϟ ΔϤϴϠόΘϟ ΔΣϮϤδϤϟ ΕϻϮΤΘϤϟ ϥ·
Operand
ΓήϴμϘϟ ΔΘϓϼϟ ϝϮΤΘϣ
Short_Label
ΔΒϳήϘϟ ΔΘϓϼϟ ϝϮΤΘϣ
Near_Label ϊτϘϤϟ ϦϤο ΰϔϘϠϟ
ΖΑ 16 ϱήϛΫ ήηΆϣ ϝϮΤΘϣ
Memptr16 ϲΰΠϟ
ΖΑ 16 ϲϠΠδϣ ήηΆϣ ϝϮΤΘϣ
Regptr16 ΔϴΰΠϟ ϊσΎϘϤϟ ϦϴΑ ΰϔϘϠϟ
ΓΪϴόΒϟ ΔΘϓϼϟ ϝϮΤΘϣ
Far_Labrl
ΖΑ 32 ϱήϛΫ ήηΆϣ ϝϮΤΘϣ
Memptr32 ϲΰΠϟ ϊτϘϤϟ ϦϤο ΰϔϘϟ
ϲѧѧϓ ϼ
˵ ΜѧѧϤϓ ΎϬѧѧδϔϧ ΰѧѧϔϘϟ ΔѧѧϤϴϠόΗ ϥϮѧѧϨόϟ ϲΒѧѧδϨϟ ΰѧѧϔϘϟ ΩΪѧѧΤΗ ΔѧѧΒϳήϘϟ ΔѧѧΘϓϼϟ ϭ ΓήϴѧѧμϘϟ ΔѧѧΘϓϼϟ ΕϻϮѧѧΤΘϣ ϥ· (
ΓέΎѧηϹ ΕΫ (Disp) ΔѧΣίϹ ΪѧϳΪΤΘϟ ϱέϮѧϓ ϝϮѧΤΘϤϛ ΖѧΑ 8 ϱΫ ΩΪόϟ ήϴϔθΗ ϢΘϳ ΓήϴμϘϟ ΔΘϓϼϟΎΑ ΰϔϘϟ ΔϤϴϠόΗ
ϦΤѧη ΩΎѧόϳ ΰѧϔϘϟ ΔѧϤϴϠόΗ άѧϔϨΗ ΎϣΪѧϨϋ ϭ ˬΰѧϔϘϟ ΔѧϤϴϠόΗ ΓήΠΣ Ϧϣ ΎϫάϴϔϨΗ ϢΘϴγ ϲΘϟ ΔϴϟΎ Θϟ ΔϤϴϠόΘϟ ϰϟ· ήϴθΗ ϲΘϟ
:ϲϠϳ ΎϤϛ ΔΤοϮϣ ΓΪϳΪΟ ΔϤϴϘΑ IPϝ
ϞѧόΠΑ ΎϫΪѧϳΪϤΗ ΪѧόΑ ΓέΎѧηϹ ΕΫ ΔΣίϹ έΪϘϣ + ( ΰϔϘϟ ΔϤϴϠόΗ Γήϔϴη ϝϮσ + IP ΔϤϴϗ )] = ΓΪϳΪΠϟ IP ΔϤϴϗ
[ ΖΑ 16 ϞϜθϟΎΑ ΕΎΘΑ 8 ϝϮΤΘϣ
.άϔϨΗ ϭ ΐϠΠΘγ ϲΘϟ ΔϴϟΎΘϟ ΔϤϴϠόΘϠϟ ϲΎϳΰϴϔϟ ϥϮϨόϟ ϲτόΗ ΔϴϟΎΤϟ CS ΔϤϴϗ ϊϣ IP ˰ϟ ΓΪϳΪΠϟ ΔϤϴϘϟ ϥ·
:ϝΎΜϣ
ΎϨϳΪϟ ϦϜϴϟ
IP = 0112h
JMP disp ; disp = 0F2h
ϥϮѧϨόϟ ΕΫ ΔѧϤϴϠόΘϟ ϰѧϟ· ΰѧϔϘϟ ϢΘϴѧγ ϥΫ· ˬ ( IP ϲѧϓ ϥΰѧΨϤϟ ϥϮѧϨόϟ ΖѧΤΗ ΩϮѧΟϮϣ ) ΰѧϔϘϟ ΔϤϴϠόΗ ϥϮϨϋ ϥ·
:ϲϟΎΘϟ
address ϲѧϘτϨϤϟ ϥϮѧϨόϟ = IP + 2 + disp ( ΎϬΗέΎѧη· ΪѧϳΪϤΗ ΪѧόΑ ) = 0112 + 2 + FFF2 = 0106h ( ΎѧϨϠϤϫ
ϞϤΤϟ ΔϧΎΧ)
ϱ ΰѧϔϘϟ ΔѧϤϴϠόΗ ϖΒѧδΗ ΔѧϤϴϠόΗ ϰѧϟ· ΰѧϔϘϧ ΎѧϨϧ ϲѧϨόϳ άѧϬϓ ΰѧϔϘϟ ΔѧϤϴϠόΗ ϥϮѧϨϋ Ϧѧϣ ήϐѧλ ΞΗΎѧϨϟ ϥϮϨόϟ ϥ ΎϤΑ
. 0106 < 0112 ˯έϮ˰˰ϟ ϮΤϧ ΰϔϘϟ
:ήΧ ϝΎΜϣ
IP = 0112h
JMP 04
Address = 0112 + 2 + 0004 = 0118h
.ϡΎϣϷ ϮΤϧ ΰϔϘϟ ϥ ϲϨόϳ άϬϓ 0118 > 0112 ϥ φΣϼϧ
35- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
. address ΔϤϴϘϟ CSϝ έΪϘϣ ΔϓΎο· ΐΠϳ ϲΎϳΰϴϔϟ ϥϮϨόϟ ϰϠϋ ϝϮμΤϠϟ ϭ
ϭ +129 ϰѧѧϟ· -126 Ϧѧϣ ϝΎѧΠϤϟ ϲѧϓ ΰϔϘϟΎѧѧΑ Ϥѧδϳ ϮѧϬϓ ΕΎѧΘΑ 8 ϭΫ ΓήϴѧѧμϘϟ ΔѧΘϓϼϟ ϝϮѧΤΘϣ ϥ ΎѧϤΑ :ΔѧψΣϼϣ
+127 ϰѧѧϟ· -128 Ϧѧѧϣ ϲϟΎѧѧΘϟ ϝΎѧѧΠϤϟ ϰѧѧϟ· ΖѧѧϳΎΑ 2 Ϯѧѧϫ ϭ ΰѧѧϔϘϟ ΔѧѧϤϴϠόΗ Γήϔϴѧѧη ϝϮѧѧσ ΎϨϔѧѧο Ϋ· Ϫѧѧϧ ϚѧѧϟΫ ΐΒѧѧγ
ΰϔϘϟΎѧΑ Ϥѧδϳ Ϛϟάѧϟ ϭ ΖѧΑ 16 ϭΫ ϱέϮѧϓ ϝϮѧΤΘϣ ϮѧϬϓ ΔѧΒϳήϘϟ ΔѧΘϓϼϟ ϝϮΤΘϣ Ύϣ .ϖΑΎδϟ ϝΎΠϤϟ ϰϠϋ ϞμΤϨγ
.ΰϔϘϟ ΔϤϴϠόΗ ϥϮϨϋ Ϧϣ ϡΎϣϷ ϮΤϧ ϭ ϒϠΨϟ ϮΤϧ 32KB ϱϭΎδϳ ϝΎΠϣ ϦϤο
:ϝΎΜϣ
JMP label
ΖѧΑ 16 ΔѧΣίϹ ) ϝϮѧΤΘϤϟ άѧϫ ΔϓΎѧο· ϢΘѧΗ ΚѧϴΣ label ϝϮΤΘϤϠϟ ΔϠΑΎϘϣ ΞϣΎϧήΒϟ ϲϓ ΔτϘϧ ϰϟ· ΰϔϘϟ ϲϨόϳ άϫ
. άϔϨΘγ ϲΘϟ ΔϤϴϠόΘϠϟ ϲΎϳΰϴϔϟ ϥϮϨόϟ ϲτόΗ CS ϲϓ ΔϴϟΎΤϟ ΔϤϴϘϟ ϭ IP ˰ϟ ΓΪϳΪΠϟ ΔϤϴϘϟ ϭ IPϝ ΔϤϴϗ ϰϟ· (
ϱ ϞΠѧδϣ ΕΎѧϳϮΘΤϣ ϭ ΓήѧϛΫ ΓήѧΠΣ ΕΎѧϳϮΘΤϣ ΔτѧγϮΑ ήѧηΎΒϣ ήѧϴϏ ϞϜθΑ ϥϮϨϋ ϰϟ· ΰϔϘϟ ΪϳΪΤΗ ϦϜϤϳ (Ώ
ϝΎѧΠϣ ϦϤѧο ΰѧϔϘϟ ϢΘѧϳ Ύ˱ѧπϳ ΎѧϨϫ ϭ ΖѧΑ 16 ϲϠΠδϣ ήηΆϣ ϝϮΤΘϣ ϭ ΖΑ 16 ϱήϛΫ ήηΆϣ ϝϮΤΘϣ ϡΪΨΘγΎΑ
. 32
:ϝΎΜϣ
JMP BX
IP ϲѧϓ ΎѧϬϠϴϤΤΗ ϢΘѧϳ BX ΔѧϤϴϗ ϥ ϲѧϨόϳ άѧϫ ϭ ΔΣίϹ ϞΟ Ϧϣ BX ϞΠδϤϟ ϥϮϤπϣ ϞϤόΘδ˵ϳ ΔϤϴϠόΘϟ ϩάϫ ϲϓ
ΓΪѧϳΪΠϟ ΔѧϤϴϘϟ ϭ CS ˰ѧϟ ΔѧϴϟΎΤϟ ΕΎѧϳϮΘΤϤϟ ϝΎϤόΘγΎΑ ΎϬϴϟ· ΰϔϘϟ ϢΘϴγ ϲΘϟ ΔϤϴϠόΘϠϟ ϲΎϳΰϴϔϟ ϥϮϨόϟ ΐδΤϳ ϢΛ
. IP ˰ϟ
: ϥ νήϔΑ
BX = 0200h ΎϬϴϟ· ΰϔϘϟ ϢΘϴγ ϲΘϟ ΔϤϴϠόΘϠϟ ϲΎϳΰϴϔϟ ϥϮϨόϟ
CS = 0100h
PA = ( CS x 10h ) + BX = 01000 + 0200 = 01200h
JMP ϼ ˱ ΜѧϤϓ ϱήѧϛΫ ήѧηΆϤϛ ϞϤόΘѧδϤϟ ϝϮѧΤΘϤϟ ΪѧϳΪΤΘϟ ΔϧϮϨόϟ ΔϤψϧ ωϮϧ ϒϠΘΨϣ ϡΪΨΘγ ϦϜϤϳ : ΔψΣϼϣ
άѧѧϫ ˬϝΎѧѧόϔϟ ϥϮѧѧϨόϟ ϰѧѧϠϋ ϱϮѧѧΘΤΗ ϲѧѧΘϟ Γήϛάѧϟ ΓήѧѧΠΣ ϥϮѧѧϨόϛ SI ΕΎѧѧϳϮΘΤϣ ϞϤόΘѧѧδΗ ΔѧѧϤϴϠόΘϟ ϩάѧѧϫ ϲѧϔϓ [SI]
ϲѧΘϟ ΔѧϤϴϠόΘϠϟ ϲΎѧϳΰϴϔϟ ϥϮѧϨόϟ ΏΎѧδΤϟ ΔѧϴϟΎΤϟ CS ΕΎѧϳϮΘΤϣ ϊѧϣ ϞϤόΘѧδ˵ϳ ϱάѧϟ ϭ IP ϲϓ ϪϠϴϤΤΗ ϢΘϳ ϥϮϨόϟ
. DI, SI, BX: ΔϴϟΎΘϟ ΕϼΠδϤϟ ϡΪΨΘδΗ ΔϟΎΤϟ ϩάϫ ϲϓ ΓΩΎϋ ϭ ΎϬϴϟ· ΰϔ Ϙϟ ϢΘϴγ
ΔϴΰΠϟ ϊτϘϤϟ ΝέΎΧ ΰϔϘϟ ϭ ΔϴΰΠϟ ϊσΎϘϤϟ ϦϴΑ ΰϔϘϟ
ΖѧΑ 16 ˰ѧϟ ϞѧϴϤΤΗ ϢΘѧϳ ΚѧϴΣ .Ύѧϣ ϥϮѧϨϋ ϰѧϟ· ΰѧϔϘϟ ΪѧϳΪΤΘϟ ΖѧΑ 32 Ϋ Ύ˱ѧϳέϮϓ ϻ
˱ ϮѧΤΘϣ ΓΪϴόΒϟ ΔΘϓϼϟ Ϟ˶ϤόΘδ˴Η (
ΔѧϴϧΎΜϟ ΖѧΑ 16 ˰ѧϟ Ύѧϣ CS ϞΠѧδϤϟ ΕΎϳϮΘΤϤϟ ΔΒδϧ ϝΎόϔϟ ϥϮϨόϟ ϲϫ ϥϮϜΗ ϭ IP ϲϓ ϝϮΤΘϤϟ άϫ Ϧϣ ϰϟϭϷ
.ΪϳΪΠϟ Γήϔϴθϟ ϊτϘϣ ΩΪΤΗ ϲΘϟ ϭ CS ϞΠδϤϟ ϲϓ ΎϬϠϴϤΤΗ ϢΘϴϓ
:ϝΎΜϣ
JMP farlabel
.( CS ˰ϟ ϲϓ ϦΤθΗ ΔϴϧΎΜϟ ΔϤϠϜϟ ϭ IP ϲϓ ϦΤθΗ ϝϭϷ ΔϤϠϜϟ ) ΖΑ 32 ˰Α ϝϮΤΘϣ Ϯϫ farlabel ΚϴΣ
ϊσΎѧѧϘϤϟ ϦϴѧѧΑ ΰѧѧϔϘϟ ϞѧѧΟ Ϧѧѧϣ Γήϔϴѧѧθϟ ϊѧѧτϘϣ ϥϮѧѧϨϋ ϭ ϝΎѧѧόϔϟ ϥϮѧѧϨόϟ ΪѧѧϳΪΤΘϟ ΓήѧѧηΎΒϤϟ ήѧѧϴϏ ΔѧѧϘϳήτϟ ϥ· (Ώ
ΔѧόΑΎΘΘϣ Γήϛάѧϟ Ϧѧϣ ΕΎѧΘϳΎΑ ϊѧΑέ ϥΈϓ ΔϟΎΤϟ ϩάϫ ϲϓ ϭ .ΖΑ 32 ˰Α ϱήϛΫ ήηΆϣ ϝϮΤΘϣ ϝΎϤόΘγΎΑ ϲϫ ΔϴΰΠϟ
ΎѧϨϫ ϭ .ΐѧϴΗήΘϟ ϰѧϠϋ ΪѧϳΪΠϟ Γήϔϴѧθϟ ϊѧτϘϣ ϥϮѧϨϋ ϭ ϝΎѧόϔϟ ϥϮѧϨόϟ ϰѧϠϋ ϱϮѧΘΤΗ ΩΪΤϤϟ ϥϮϨόϟ Ϧϣ ˱έΎΒΘϋ
:ϝΎΜϣ ˬΔϔϠΘΨϤϟ ΔϧϮϨόϟ ΔϤψϧ ωϮϧ Ϧϣ ωϮϧ ϱ ϡΪΨΘγ ϦϜϤϳ Ύ˱πϳ
ϦϤѧπΘΗ ϲѧΘϟ Γήϛάѧϟ ΓήѧΠΣ ϥϮѧϨϋ ΏΎѧδΤϟ DS, DI ΕΎѧϳϮΘΤϣ ϞϤόΘѧδ˵Η ΔϤϴϠόΘϟ ϩάϫ ϲϔϓ JMP farseg [DI]
: ϥΎϛ ΫΈϓ ˬΎϬϴϟ· ΰϔϘϟ ϢΘϴγ ϲΘϟ ΓήΠΤϟ ϑ͋ήό˵ϳ ϱάϟ ήηΆϤϠϟ ϰϟϭϷ ΔϤϠϜϟ
: Ϯϫ ήηΆϤϠϟ ϲΎϳΰϴϔϟ ϥϮϨόϟ ϥ· DI = 0200h
PA = DS x 10h + DI = 01000 + 0200 = 01200h DS = 0100h
:ϲϟΎΘϟ ϞϜθϟ ϲϓ οϭ Ϯϫ ΎϤϛ ΎϬϴϠΗ ϲΘϟ ΕήΠΤϟ ϭ ΓήΠΤϟ ϩάϫ ΕΎϳϮΘΤϣ ϦϜΘϟ ϭ
Address ( h ) Content IP = 3010h ϲϫ ΓΪϳΪΠϟ IP ΔϤϴϗ
01200 10 CS = 0400h ϲϫ ΓΪϳΪΠϟ CS ΔϤϴϗ
36- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
37- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
2
1
CALL SUB
6
7
3 5
4 CALL SUB
8
9
RETURN
:ΔψΣϼϣ
ϰѧѧϟ· ςѧϘϓ ˱ΰѧϔϗ ΞΘѧϨΗ ϻ ϲѧϋήϔϟ ΞϣΎѧϧήΒϟ ΓΩΎѧϨϣ ϥ Ϯѧѧϫ ΰѧϔϘϟ ϭ ϲѧϋήϔϟ ΞϣΎѧϧήΒϟ ΓΩΎѧϨϤϟ ϞѧϤόϟ ϦϴѧΑ ϕήѧϔϟ ϥ·
CS ϭ IP ϞѧΜϣ ΕΎѧϣϮϠόϤϟ φѧϔΣ ϞѧΟ Ϧѧϣ ΔѧϴϨϘΗ ϚϠϤΗ Ύ˱πϳ ΎϬϨϜϟ ϭ ΞϣΎϧήΒϟ ϦϳΰΨΗ ΓήϛΫ ϲϓ ΐγΎϨϤϟ ϥϮϨόϟ
.ϲδϴήϟ ΞϣΎϧήΒϟ ϰϟ· ΓΩϮόϠϟ ΔΑϮϠτϣ ϥϮϜΗ ϲΘϟ
x όϟ ϭ x ΎϨϤϟ ΕΎϤϴϠόΗ
ϰѧѧϟ· ϢϜΤΘѧϟ ΓΩΎѧ ϋ· ϭ ϞѧϤόϟ ϰѧϟ· ϲѧѧϋήϔϟ ΞϣΎѧϧήΒϟ ˯ΎϋΪΘѧγ ϞѧѧΟ Ϧѧϣ ΔѧѧϴϨϘΗ ϥΩϭΰѧ˵Η Ύ˱ѧόϣ ϦϴѧѧΘϤϴϠόΘϟ ϦϴΗΎѧϫ ϼ
˱ ѧϛ
:ϝϭΪΠϟ ϲϓ ΔΣϭήθϣ ΓΩΎϨϤϟ ΔϤϴϠόΗ ϥ· .ϩάϴϔϨΗ ΔόΑΎΘϤϟ ϲγΎγϷ ΞϣΎϧήΒϟ
ΔϤϠϜϟ ϡϼϋϷ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ
ΔϟΰΘΨϤϟ ΓήΛ΄ΘϤϟ
Ϧϣ ϲϋήϔϟ ΞϣΎϧήΒϟ ϲϓ άϴϔϨΘϟ ϊΑΎΘ˵ϳ
ΓΩΎϨϣ ϝϮΤΘϤϟ ΔτγϮΑ ΩΪΤϤϟ ϥϮϨόϟ
CALL ΞϣΎϧήΑ CALL operand .ΓΩΎϨϤϟ ΔϤϴϠόΗ ϲϓ ΩϮΟϮϤϟ operand ΪΟϮϳ ϻ
ϲϋήϓ ΓΩϮόϟ ϞΟ Ϧϣ ΔΑϮϠτϤϟ ΕΎϣϮϠόϤϟ ϭ
αΪϜϤϟ ϲϓ φϔΤ˵Η CS ϭ IP ϞΜϣ
:ϲϫ ϭ ΓΩΎϨϤϟ ΔϤϴϠόΗ ϊϣ ΎϬϣΪΨΘγΎΑ ΡϮϤδϤϟ ΕϻϮΤΘϤϠϟ ωϮϧ 5 ϙΎϨϫ
OPERAND
Near_pro
ϊτϘϤϟ ϦϤο ΓΩΎϨϤϠϟ
Memptr16
ϲΰΠϟ
Regptr16
Far_proc ϊτϘϤϟ ΝέΎΧ ΓΩΎϨϤϠϟ
Memptr32 ϲΰΠϟ
38- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
ΞϣΎѧѧϧήΒϟ ϱ ) ϲѧѧϋήϔϟ ΞϣΎѧѧϧήΒϠϟ ϲѧѧΰΠϟ ϊѧѧτϘϤϟ ϦϤѧѧο ΓΩΎѧѧϨϤϠϟ ΔѧѧμμΨϣ ϰѧѧϟϭϷ ΔѧѧΛϼΜϟ ΕϻϮѧѧΤΘϤϟ ϥ·
φѧѧϔΣ ΐΒѧѧδϳ ΓΩΎѧѧϨϤϟ ΔѧѧϤϴϠόΗ άѧѧϴϔϨΗ ϥ ΚѧѧϴΣ ( Γήϔϴѧѧθϟ ϊѧѧτϘϣ βѧѧϔϧ ϲѧѧϓ ϥΎѧѧόϘϳ ϲѧѧϋήϔϟ ΞϣΎѧѧϧήΒϟ ϭ ϲѧѧδϴήϟ
κϘϨѧѧϳ άѧѧΪϨϋ ϭ .ϲѧѧϋήϔϟ ΞϣΎѧѧϧήΒϟ ϊѧѧϣ ϢϼΘѧѧΘϟ Ύ˱ѧ ϴϟ IP ΔѧѧϤϴϗ ϞϳΪѧѧόΗ ϢΘѧѧϳ ϑϮѧѧγ ϪѧѧϧϷ αΪѧѧϜϤϟ ϲѧѧϓ IP ΕΎѧѧϳϮΘΤϣ
ΔѧϤϴϠόΗ ϲѧϠΗ ϲѧΘϟ ΔѧϤϴϠόΘϟ ϥϮѧϨϋ ϲѧϫ αΪѧϜϤϟ ϦϤѧο IP ϲѧϓ ΔѧχϮϔΤϤϟ ΔѧϤϴϘϟ ϥ· ˬ 2 έΪѧϘϤΑ αΪѧϜϤϟ ήηΆϣ
.ΓΩΎϨϤϟ
IP ϦΤѧη ϢΘѧϳ ( ϲѧϋήϔϟ ΞϣΎѧϧήΒϟ άѧϴϔϨΗ ΪѧόΑ Ϫϴϟ· ΩϮόϨγ ϱάϟ ϥϮϨόϟ φϔΣ ϱ ) αΪϜϤϟ ϲϓ IP ΔϤϴϗ ϊοϭ ΪόΑ
ϲѧϋήϔϟ ΞϣΎѧϧήΒϟ ΕΎѧϤϴϠόΗ Ϧѧϣ ϰѧϟϭϷ ΔѧϤϴϠόΘϟ ϥϮϨϋ ϰϟ· ήϴθΗ ΔϤϴϘϟ ϩάϫ ΖΑ 16 ΕΫ ΓΪϳΪΟ ΔϤϴϘΑ ϭ ϥϮϨόΑ
ϰѧѧϠϋ ΔѧѧϠΜϣ΄ϛ ϲϟΎѧѧΘϟ ϞϜѧѧθϟ ϰѧѧϠϋ ϲѧѧΰΠϟ ϊѧѧτϘϤϟ ϦϤѧѧο ΓΩΎѧѧϨϤϟ ΔѧѧϤϴϠόΗ ήѧѧϛΫ ϦѧѧϜϤϳ ϭ ˬΓήϛάѧѧϟ ϲѧѧϓ ΔѧѧϧΰΨϤϟ
:ΐϴΗήΘϟ ϰϠϋ ϭ ϖΑΎδϟ ϝϭΪΠϟ ΕϮΤΘϣ
CALL near_proc
CALL [SI]
CALL BX
ϲѧϓ ϦѧϤϜϳ ϥ΄ѧΑ ϲѧϋήϔϟ ΞϣΎѧϧήΒϠϟ Ϥѧδϳ ϮѧϬϓ ( ϲΰΠϟ ϊτϘϤϟ ΝέΎΧ ΓΩΎϨϤϟ ) ΓΩΎϨϤϟ ΔϤϴϠόΘϟ ήΧϵ ωϮϨϟ Ύϣ
ϲѧѧϓ ѧοϭ Ϯѧϫ ΎѧϤϛ Memptr32 ˬ Far_pro ΔѧѧϴϟΎΘϟ ΕϻϮѧΤΘϤϟ ϡΪΨΘѧδΗ ΔѧϟΎΤϟ ϩάѧѧϫ ϲѧϓ ϭ ˬήѧΧ Γήϔϴѧη ϊѧτϘϣ
ΎѧΘϠϛ ϲѧϓ . CS ˰ѧϟ ΪѧϳΪΠϟ ϊѧτϘϤϟ ϥϮѧϨϋ ϭ IP ˰ѧϟ ΪѧϳΪΠϟ ϥϮѧϨόϟ Ϧѧϣ ϼ ˱ ϛ ΕϻϮΤΘϤϟ ϩάϫ ΩΪΤΗ .ϖΑΎδϟ ϝϭΪΠϟ
ϞѧϴϤΤΗ ϢѧΛ Ϧѧϣ ϭ αΪѧϜϤϟ ϲѧϓ IP ϢѧΛ CS ΕϼΠѧδϤϟ ΕΎѧϳϮΘΤϣ φѧϔΣ ΐΒѧδϳ ΓΩΎѧϨϤϟ ΔѧϤϴϠόΗ άѧϴϔϨΗ ϥΈѧϓ ϦϴΘϟΎΤϟ
ϤѧѧδΗ αΪѧѧϜϤϟ ϲѧѧϓ IP ϭ CS ˰ѧѧϟ ΔѧѧϧΰΘΨϤϟ ϢϴѧѧϘϟ ϥ· . CS ϭ IP ϲѧѧϓ operand ϝϮΤΘϤϟΎѧѧΑ ΓΩΪѧѧΤϤϟ ΓΪѧѧϳΪΠϟ ϢϴѧѧϘϟ
ϭ ΖѧΑ 32 ˰ѧΑ Ύ˱ѧϳέϮϓ ϻ˱ ϮѧΤΘϣ ϞѧΜϤϳ Far_proc ϝϮѧΤΘϤϟ ϥ· .ήΧ Γήϔϴη ϊτϘϣ Ϧϣ ϲδϴήϟ ΞϣΎϧήΒϟ ϰϟ· ΓΩϮόϟΎΑ
.ΞϣΎϧήΒϟ ΓήϛΫ ϲϓ ΓΩΎϨϤϟ ΔϤϴϠόΘϟ ( opcode ) ΔϤϴϠόΘϟ ΰϣέ ϲϠΗ ϲΘϟ ΔόΑέϷ ΕΎΘϳΎΒϟ ϲϓ Ύ˱ϧΰΨϣ ϥϮϜϳ ϱάϟ
: ϝΎΜϣ
CS ϭ IP ϲѧѧϓ ΞϣΎѧϧήΒϟ ϦϳΰѧΨΗ ΓήѧϛΫ Ϧѧϣ ΓήѧηΎΒϣ ΎѧϤϬϠϴϤΤΗ ϢΘѧϳ ϥΎѧΘϤϠϜϟ ϥΎѧΗΎϫ ϥ ΚѧϴΣ CALL 01234321
˱ΩΪѧΤϣ ϥϮѧϜϳ ϲѧϋήϔϟ ΞϣΎѧϧήΒϟ ϲѧϓ ϰѧϟϭϷ ΔѧϤϴϠόΘϟ ϥϮѧϨϋ ϥ· .ϲѧϋήϔϟ ΞϣΎѧϧήΒϠϟ Γήϔϴθϟ ϊτϘϣ Ϯϫ CS ΚϴΣ
32 ˰ѧΑ ϱήѧϛΫ ωϮѧϧ Ϧѧϣ ήѧηΆϤϟ ϝϮѧΤΘϤϟ ΔΒѧδϨϟΎΑ Ύѧϣ . IP ϦϤѧο ϥΰѧΨϳ ϱ CALL ΔѧϤϴϠόΗ ΪόΑ ϰϟϭϷ ΔϤϠϜϟΎΑ
ϰѧѧϟϭϷ ΓήѧѧΠΤϟ ϭ ˬΕΎѧѧϴτόϤϟ ΓήѧѧϛΫ ϲѧѧϓ ΕΎѧѧΘϳΎΑ ΔѧѧόΑέ΄ϛ Ύ˱ѧ ϧΰΨϣ ϥϮѧѧϜϳ ϲѧѧϋήϔϟ ΞϣΎѧѧϧήΒϠϟ ήѧѧηΆϤϟ ϥΈѧѧϓ ΖѧѧΑ
JMP farseg ΰѧϔϘϟ ϝΎѧΜϣ βѧϔϧ Ϯѧϫ ΎѧϨϫ ϝΎѧΜϤϟ ) ΕϼΠѧδϤϟ ΪѧΣ ΔτѧγϮΑ ήηΎΒϣ ϞϜθΑ ΎϫΪϳΪΤΗ ϦϜϤϳ ήηΆϤϠϟ
.( ϖΑΎδϟ [DI]
ΔѧϤϴϠόΘϟ ϩάѧϫ ϭ ϲѧδϴήϟ ΞϣΎѧϧήΒϟ ϰѧϟ· ϢϜΤΘѧϟ ΪѧϴόΗ ϲѧΘϟ ΔѧϤϴϠόΘϟ άѧϴϔϨΘΑ ϲѧϬΘϨϳ ϥ ΐѧΠϳ ϲϋήϓ ΞϣΎϧήΑ Ϟϛ ϥ·
:ϲϟΎΘϟ ϝϭΪΠϟΎΑ ΔΣϭήθϣ ϲϫ ϭ RET ΓΩϮόϟ ΔϤϴϠόΗ ϲϫ
ΔϤϠϜϟ ϡϼϋϷ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ
ΔϟΰΘΨϤϟ ΓήΛ΄ΘϤϟ
ΞϣΎϧήΒϟ ϰϟ· ΓΩϮόϟ
RET RET/RET operand ΪΟϮϳ ϻ
ϲ˶ϋΪΘδ˵Ϥϟ
ΐѧδΣ) Ύ˱ѧόϣ CS ϭ IP ϭ ςѧϘϓ IP Ϣϴѧϗ ϦϳΰѧΨΗ ΓΩΎѧϋ· ϖѧϳήσ Ϧѧϋ ϲϋΪΘѧδϤϟ ΞϣΎϧήΒϟ ϰϟ· ΓΩϮόϟ
ϝϮѧΤΘϤϟ ϥΎѧϛ Ϋ· ϭ . Far_pro ϝϮѧΤΘϤϟ ϞѧΟ Ϧѧϣ (ϪѧΟέΎΧ ϭ ϲѧΰΠϟ ϊѧτϘϤϟ ϦϤѧο ϱ ΓΩΎѧϨϤϟ ΔѧϤϴϠόΗ ωϮϧ
ϲѧϓ ΪѧΟϭ Ϋ· ϝϮѧΤΘϤϟ ϥ· ϭ άѧϫ . SP ΕΎѧϳϮΘΤϣ ϰϟ· ϪΘϓΎο· ΐΠϴϓ RET ΓΩϮόϟ ΔϤϴϠόΗ ϲϓ ˱ΩϮΟϮϣ (operand)
.ΖΑ 16 ˰Α ΔΣί· ϝϮΤΘϣ Ϧϋ ΓέΎΒϋ ϮϬϓ ΓΩϮόϟ ΔϤϴϠόΗ
ΐΤδϟ ϭ ϊϓΪϟ ΕΎϤϴϠόΗ - Ύ˱όγΎΗ
ΔϣΪΨΘѧѧѧδϤϟ ΔѧѧѧϤϴϠόΘϟ ϭ PUSH ϊϓΪѧѧѧϟ ΔѧѧѧϤϴϠόΗ ϲѧѧѧϫ αΪѧѧѧϜϤϟ ϲѧѧѧϓ ΕήΘϣέΎѧѧѧΒϟ φѧѧѧϔΤϟ ΔϣΪΨΘѧѧѧδϤϟ ΔѧѧѧϤϴϠόΘϟ ϥ·
φѧϔΣ ΓΩΎѧϋ ϱέϭήѧπϟ Ϧѧϣ Ϫѧϧ ΪѧΠϧ ϲѧϋήϔϟ ΞϣΎѧϧήΒϟ ϰѧϟ· ϞѧϳϮΤΘϟ ϕΎϴγ ΪόΑ . POP ΔϤϴϠόΗ ϲϫ ΎϬϋΎΟήΘγϻ
39- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
ϰѧϟ· ΎѧϬόϓΩ ΔτѧγϮΑ ΎѧϬψϔΣ ϢΘѧϳ ϢϴѧϘϟ ϩάϫ ϲδϴήϟ ΞϣΎϧήΒϟ ΕήΘϣέΎΑ ξόΑ ϭ Δϴδϴήϟ ΕϼΠδϤϟ ΕΎϳϮΘΤϣ
ˬϲѧϋήϔϟ ΞϣΎѧϧήΒϟ άѧϴϔϨΗ ˯ΎѧϨΛ ΓήϛάѧϠϟ αΪѧϜϤϟ ϊѧτϘϣ ϲѧϓ ΔϤϴϠѧγ ΕΎϳϮΘΤϤϟ φϔΣ ϢΘϳ ΔϘϳήτϟ ϩάϬΑ ϭ .αΪϜϤϟ
ΎѧϬϨϳΰΨΗ ΩΎѧό˵ϳ ϲѧδϴήϟ ΞϣΎѧϧήΒϟ ΕήΘϣέΎѧΑ ϭ ΔѧχϮϔΤϤϟ ΕϼΠѧδϤϟ ϥΈѧϓ ϲѧδϴήϟ ΞϣΎϧήΒϟ ϰϟ· ΓΩϮόϟ ϞΒϗ ϭ
:ϲϟΎΘϟΎϛ ϥϮϜΗ ϲϋήϔϟ ΞϣΎϧήΒϠϟ ΔϴΟΫϮϤϨϟ ΔϴϨΒϟ ϥΈϓ Ϛϟάϟ .αΪϜϤϟ Ϧϣ ΔχϮϔΤϤϟ ϢϴϘϟ ΐΤγ ΔτγϮΑ
PUSH xx
αΪϜϤϟ ϲϓ ΕήΘϣέΎΒϟ ϭ ΕϼΠδϤϟ φϔΤϟ PUSH yy
PUSH zz
-----------
ϲϋήϔϟ ΞϣΎϧήΒϟ ϢδΟ -----------
-----------
POP zz
Ϧϣ ΕήΘϣέΎΒϟ ϭ ΕϼΠδϤϟ ωΎΟήΘγϻ ΎϨϫ ωΎΟήΘγϻ ϢΘϳ Ϫϧ φΣϼϧ
POP yy
αΪϜϤϟ ϞϜθΑ
ϞϤϋ ΪΒϣ ϥϷ ϚϟΫ ϭ ϲδϜϋ
POP xx
αΪϜϤϟ
ϲϋΪΘδϤϟ ΞϣΎϧήΒϟ ϰϟ· ΓΩϮόϠϟ RET LIFO Ϯϫ
.ΕΎΘϳΎΑ ϊϣ βϴϟ ϭ ΕΎϤϠϛ ϊϣ αΪϜϤϟ ϞϣΎόΘϳ :ΔψΣϼϣ
PUSH, POP ΕΎϤϴϠόΗ
:ϲϟΎΘϟ ϝϭΪΠϟ ϲϓ ΔΣϭήθϣ ϲϫ ϭ
ΔϤϠϜϟ ϡϼϋϷ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ
ΔϟΰΘΨϤϟ ΓήΛ΄ΘϤϟ
PUSH αΪϜϤϟ ϰϟ· ΔϤϠϛ ϊϓΩ PUSH S S ĺ ((SP)) ΪΟϮϳ ϻ
POP αΪϜϤϟ Ϧϣ ΔϤϠϛ ΐΤγ POP D ((SP)) ĺ D ΪΟϮϳ ϻ
ϥ· . 2 έΪѧϘϤΑ SP ΩΩΰѧϳ ϢѧΛ ΞϟΎѧόϤϟ ϦϤѧο ϲѧϨόϤϟ ϞΠѧδϤϟ ϰѧϟ· αΪѧϜϤϟ Ϧѧϣ ϻ
˱ ϭ ΐΤδΗ ΎϬΗΎϳϮΘΤϣ ϥ ΚϴΣ
.αΪϜϤϟ ϰϟ· ΔϋϮϓΪϤϟ ΔϘΑΎδϟ ΔϤϴϘϟ ϖΑΎτΗ ΓΪϳΪΠϟ αΪϜϤϟ ΔϤϗ
:αΪϜϤϟ ΕϻΎΣ ΔϴϟΎΘϟ ΔΛϼΜϟ ϝΎϜηϷ ϦϴΒΗ :ϝΎΜϣ
αΪϜϤϟ ΔϤϗ Tos
αΪϜϤϟ ΓΪϋΎϗ Bos
AX 12 34
ϯήδϴϟ ΓήΠΤϟ ϥϮϨϋ βϴϟ ϭ 12h ϱϮΤΗ ϲΘϟ ϰϨϤϴϟ ΓήΠΤϟ ϥϮϨϋ Ϯϫ άϫ
0105C 66 77
66 77
99 66 77 TOS
0105A 88 88 99
TOS 88 99
01058 AA BB AA BB
01 23 AA BB
01056 34 12
45 67 01056 34 12
01054 45 67
89 AB 45 67
01052 89 AB
89 AB
01050 CD EF CD EF
01050 CD EF
01 ( 105) SS (2) (3)
01 05 SS
ϥϮѧϨόϟ ϲѧϓ ϦѧϤϜΗ αΪѧϜϤϟ ΓΪѧϋΎϗ ϥΈѧϓ Ύ˱ϘΑΎѧγ Ύϧήѧη 01
ΎϤϛ ϭ050105h
SS ϰϠϋ ϱϮΤϳ αΪϜϤϟ ϊτϘϣ ϞΠδϣ ϥ φΣϼϧ
: BOS αΪϜϤϟ
01 08 SP ΓΪϋ Ύϗ ϥϮϨϋ ϲτόϳ άϫ ϭ FFFFh ϝΎόϔϟ ϥϮϨόϟ ϊϣ SS Ϧϣ ϖΘθϤϟ ϲΎϳΰϴϔϟ
01 0A SP
A (bos) = 0105h + FFFF = 1104Fh 01 60 SP
0008h ϱϭΎѧδϳ ϪѧΘϤϗ ϰѧϟ· αΪѧϜϤϟ ΓΪѧϋΎϗ Ϧѧϣ ϝΎѧόϔϟ ϥϮѧϨόϟ ϞѧΜϤϳ ϱάѧϟ αΪϜϤϟ ήηΆϣ ϥΈϓ ϚϟΫ ϰϟ· ΔϓΎοϹΎΑ
:ϲΎϳΰϴϔϟ ϥϮϨόϟ ϲϓ ϲϫ αΪϜϤϠϟ ΔϴϟΎΤϟ ΔϤϘϟΎϓ Ϛϟάϟ
A (tos) = 01050 + 0008 = 01058h
ΎѧѧѧϤϨϴΑ αΪѧѧѧϜϤϠϟ ΔѧѧѧϴϘϴϘΣ ΕΎѧѧѧϴτόϣ ϰѧѧѧϠϋ ϱϮѧѧѧΘΤΗ 01058h αΪѧѧѧϜϤϟ ΔѧѧѧϤϗ Ϧѧѧѧϣ ϰѧѧѧϠϋϷ ϢϴѧѧѧϘϟ ΕΫ ϦϳϭΎѧѧѧϨόϟ ϥ·
Ϯѧϫ αΪѧϜϤϟ : ϒϳήόΘϟΎѧΑ ) αΪѧϜϤϠϟ ΔѧϴϘϴϘΣ ΕΎѧϴτόϣ Ζѧδϴϟ αΪѧϜϤϟ ΔѧϤϗ Ϧѧϣ ϰѧϧΩϷ ϦϳϭΎѧϨόϟ ΕΫ ΕΎϴτόϤϟ
Ϧѧϣ ϝϭϷ ϞϜѧθϟ ϲѧϓ αΪѧϜϤϟ ϰѧϟ· ΔѧϋϮϓΪϤϟ ΓήϴΧϷ ΔϤϴϘϟ ϥ φΣϼϧ . ( ΔϤϘϟ ϭ ΓΪϋΎϘϟ ϦϴΑ ΓέϮμΤϤϟ ϢϴϘϟ
ϥ ΪѧΠϧ ΎѧϨϫ . PUSH AX ΔѧϤϴϠόΗ άѧϴϔϨΗ ΪѧϨϋ ΙΪΤϳ ϱάϟ Ύϣ ϲϧΎΜϟ ϞϜθϟ ϦϴΒϳ ϭ . BBAAh ϲϫ ϖΑΎδϟ ϞϜθϟ
ήΛΆѧΗ ϻ ΎѧϬϨϜϟ ϭ 2 έΪѧϘϤΑ SP ΕΎѧϳϮΘΤϣ ιΎѧϘϧ· ΐΒѧδϳ PUSH ΔѧϤϴϠόΗ άѧϴϔϨΗ ϥ ϭ 1234h ϲѧϫ AX ΕΎϳϮΘΤϣ
ϞѧΑΎϘΗ αΪѧϜϤϟ ϲѧϓ ΎѧϬϴϟ· ϝϮѧλϮϟ ϢΘѧϳ ϲѧΘϟ ΔѧϴϟΎΘϟ ΓήѧΠΤϟ ϥΈѧϓ Ϛϟάϟ SS αΪϜϤϟ ϊτϘϣ ϞΠδϣ ΕΎϳϮΘΤϣ ϰϠϋ
ϱϮѧϠόϟ ΖѧϳΎΒϟ ϥ φѧΣϼϧ .αΪѧϜϤϟ ϰѧϟ· AX ϲѧϓ ΔѧϧΰΨϤϟ ΔѧϤϴϘϟ ϊѧϓΩ ϢΘѧϳ ΓήѧΠΤϟ ϩάѧϫ ϰϟ· . 01056h ϥϮϨόϟ
Ϛϟάѧѧϛ ϭ αΪѧѧϜϤϟ ϲѧѧϓ ΔѧѧϤϠϜϠϟ ϲϠϔѧѧδϟ ΖѧѧϳΎΒϟ ϲѧѧϓ ϥϵ ϦѧѧϤϜϳ ( 12h ϱϭΎѧѧδΗ ϪѧѧΘϤϴϗ ϱάѧѧϟ ϭ ) AX ϞΠѧѧδϤϟ Ϧѧѧϣ
ϲѧѧϓ ΔѧѧϤϠϜϠϟ ϱϮѧѧϠόϟ ΖѧѧϳΎΒϟ ϲѧѧϓ ϥϵ ϦѧѧϤϜϳ ( 34h ϱϭΎѧѧδΗ ϪѧѧΘϤϴϗ ϱάѧѧϟ ϭ ) AX ϞΠѧѧδϤϟ Ϧѧѧϣ ϲϠϔѧѧδϟ ΖѧѧϳΎΒϟΎϓ
.αΪϜϤϟ
ΕΎѧϴτόϤϟ Ζѧ˴όϓ˵Ω ϱάѧϟ ϞΠѧδϤϟ ϰѧϟ· αΪѧϜϤϟ Ϧѧϣ ΕΎѧϴτόϤϟ ΐΤѧδ˵Η ΎϣΪѧϨϋ ΙΪѧΤϳ ϱάѧϟ Ύϣ ΚϟΎΜϟ ϞϜθϟ ϦϴΒϳ
ϰѧϟ· ΔΒѧδϨϟΎΑ ΔѧθϗΎϨϤϟ βѧϔϧ .ΐѧϴΗήΘϟ ϰѧϠϋ POP BX ϢѧΛ POP AX ΔѧϤϴϠόΘϟ άѧϴϔϨΗ ΪѧόΑ ϚѧϟΫ ϭ αΪϜϤϟ ϰϟ· ϪϨϣ
.αΪϜϤϟ ϰϟ· ΔϳέϮϓ ΔϤϴϗ ϊϓΩ
ΕΎϘϠΤϟ ΕΎϤϴϠόΗ - ˱ήηΎϋ
Ϧѧϣ ϻ
˱ ΪѧΑ ΎϬϟΎϤόΘѧγ ϦѧϜϤϳ ΕΎѧϤϴϠόΘϟ ϩάѧϫ ϭ .ΔѧϘϠΤϟ ΔѧϴϠϤϋ ϖѧϴϘΤΘϟ ιΎѧΧ ϞϜѧθΑ ΔϤϤѧμϣ ΕΎѧϤϴϠόΗ ΙϼΛ ϙΎϨϫ
:ϲϟΎΘϟ ϝϭΪΠϟ ϲϓ ΔϨϴΒϣ ϲϫ ϭ .ϲσήθϟ ΰϔϘϟ ΕΎϤϴϠόΗ
41- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
ΔϤϠϜϟ ϡϼϋϷ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ
ΔϟΰΘΨϤϟ ΓήΛ΄ΘϤϟ
LOOP ΔϘϠΣ LOOP short_label ΪΟϮϳ ϻ
ΔτѧѧγϮΑ Δѧѧϓ͉ήόϤϟ ΓήѧѧΠΤϟ ϰѧѧϟ· ΰѧѧϔϘϟ ϢѧѧΛ ϡϼѧѧϋϷ ϰѧѧϠϋ ήϴΛ΄ѧѧΘϟ ϥϭΩ ΪѧѧΣϭ έΪѧѧϘϤΑ CX ιΎѧѧϘϧ·
IP = ϥϮѧϜϳ ΎѧϨϫ ϭ .ΔѧϘϠΤϟ ΔѧϤϴϠόΘϟ ΔϴϟΎΘϟ ΔϤϴϠόΘϟ άϴϔϨΗ ϢΘϳ ϻ· ϭ ήϔμϟ ϱϭΎδϳ ϻ CX ϥΎϛ Ϋ· ΓήϴμϘϟ ΔΘϓϼϟ
.( ΖΑ 16 ˰Α ΎϬϠόΟ ϱ ) ΎϬΗέΎη· ΪϳΪϤΗ ΪόΑ ΎϫΎϧάΧ disp ΚϴΣ IP + disp
ΔϤϠϜϟ ϡϼϋϷ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ
ΔϟΰΘΨϤϟ ΓήΛ΄ΘϤϟ
ΎϤϟΎσ ΔϘϠΣ
LOOPE/ LOOPE/ ΔΘϓϻ
LOOPZ
ΎϤϟΎσ ϭ /ϱϭΎδϳ LOOPZ ΪΟϮϳ ϻ
ήϔλ Γήϴμϗ
ΔτѧѧγϮΑ Δѧѧϓ͉ήόϤϟ ΓήѧѧΠΤϟ ϰѧѧϟ· ΰѧѧϔϘϟ ϢѧѧΛ ϡϼѧѧϋϷ ϰѧѧϠϋ ήϴΛ΄ѧѧΘϟ ϥϭΩ ΪѧѧΣϭ έΪѧѧϘϤΑ CX ιΎѧѧϘϧ·
ΔѧѧϤϴϠόΘϟ ΔѧѧϴϟΎΘϟ ΔѧѧϤϴϠόΘϟ άѧѧϴϔϨΗ ϢΘѧѧϳ ϻ· ϭ ήϔѧѧμϟ ϱϭΎѧѧδϳ ZF ϭ ήϔѧѧμϟ ϱϭΎѧѧδϳ ϻ CX ϥΎѧѧϛ Ϋ· ΓήϴѧѧμϘϟ ΔѧѧΘϓϼϟ
.ΔϘϠΤϟ
.ϡϼϋϷ ϰϠϋ ήΛΆϳ ϱάϟ Ϯϫ ςϘϓ ΔϘϠΤϟ ϢδΟ ΎϨϫ ϭ
ΔϤϠϜϟ ϡϼϋϷ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ
ΔϟΰΘΨϤϟ ΓήΛ΄ΘϤϟ
ϻ ΎϤϟΎσ ΔϘϠΣ
LOOPNE/ LOOPNE/ ΔΘϓϻ
LOOPNZ
ΎϤϟΎσ ϭ /ϱϭΎδϳ LOOPNZ
ΪΟϮϳ ϻ
˱ήϔλ βϴϟ Γήϴμϗ
ϻ CX ϥΎѧϛ Ϋ· ΓήϴѧμϘϟ ΔѧΘϓϼϟ ΔτѧγϮΑ ΓΩΪѧΤϤϟ ΓήѧΠΤϟ ϰѧϟ· ΰϔϘϟ ϢΛ ΪΣϭ έΪϘϤΑ CX ιΎϘϧ·
.ΔϘϠΤϟ ΔϤϴϠόΘϟ ΔϴϟΎΘϟ ΔϤϴϠόΘϟ άϴϔϨΗ ϢΘϳ ϻ· ϭ ήϔμϟ ϱϭΎδϳ ZF ϭ ήϔμϟ ϱϭΎδϳ
.ϡϼϋϷ ϰϠϋ ήΛΆϳ ϱάϟ Ϯϫ ςϘϓ ΔϘϠΤϟ ϢδΟ Ύ˱πϳ ΎϨϫ ϭ
:ϝΎΜϣ
ήѧѧμϨόϟ ϭ 8,9,4,5,7 : ϼ
˱ Μѧϣ ( ΪѧόΒϟ ΔѧϳΩΎΣ ΔϓϮϔѧμϣ ) ήѧλΎϨόϟ Ϧѧϣ ΔѧϬΠΘϣ ϦϤѧο ήѧμϨϋ Ϧѧϋ ΚѧΤΒϟ Ϊѧϳήϧ
:ϲϟΎΘϟΎϛ ΔϘϠΤϟ ϢδΟ ϥϮϜϳ ϭ .ήλΎϨόϟ ΩΪϋ Ϯϫ ϭ CX = 5 ΎϨϫ . 4 Ϯϫ ϩΩΎΠϳ· ΩήϤϟ
MOV CX, 5
Nxt: ---------------
--------------- ΔϘϠΤϟ ϢδΟ ö 0 ϥ Ϧϣ ϢϏήϟΎΑ ΔϘϠΤϟ Ϧϣ ΝϭήΨϟ ϢΘϳ ΎϨϫ
--------------- . ZF = 1 ΖΤΒλ ϭ ϖΑΎτΗ ϞμΣ ϪϧϷ
LOOPNE Nxt
ΔϠδϠδϟ ΕΎϤϴϠόΗ - 11˱
ΔϠѧδϠδϟ ΕΎѧϤϴϠόΗ ϥ· .ΓήϛάѧϠϟ ΔѧΒϗΎόΘϣ ΕήѧΠΣ ϲѧϓ ϦѧϤϜΗ ΕΎѧϴτόϣ ΕΎѧϤϠϛ ϭ ΕΎѧΘϳΎΑ ϥ ΔϠѧδϠδϟ ΔѧϤϠϜΑ ΪμϘϧ
βϨѧϛ ϭ ѧδϣ ˬΓήϛάѧϟ ϲѧϓ ήѧΧ ϙϮѧϠΑ ϰѧϟ· ΓήѧϛΫ ϙϮѧϠΑ Ϧѧϣ ΕΎϴτόϤϟ ϞϘϧ ϞΜϣ ΕΎϴϠϤϋ άϴϔϨΘΑ ΞϣήΒϤϠϟ ϤδΗ
ϦϴΘϠѧδϠγ ήѧλΎϨϋ ΔѧϧέΎϘϣ ˬΔѧϨϴόϣ ΔϤϴϗ Ϧϋ ΚΤΒϟ ϭ Γήϛάϟ ϲϓ ΔϧΰΨϤϟ ΕΎϴτόϤϟ ήλΎϨϋ Ϧϣ ΔϠδϠγ SCAN
.ϦϴΘϔϠΘΨϣ ϭ ϦϴΘϘΑΎτΘϣ ΎϧΎϛ Ϋ· ΎϤϴϓ ΪϳΪΤΘϟ
:ϲϫ ΔϴγΎγϷ ΔϠδϠδϟ ΕΎϤϴϠόΗ ϭ
42- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
ΔϤϠϜϟ ϡϼϋϷ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ
ΔϟΰΘΨϤϟ ΓήΛ΄ΘϤϟ
Ϧϣ ήμϨϋ ϞϘϧ
MOVS MOVS operand ΪΟϮϳ ϻ
ΔϠδϠγ
ΔτγϮΑ ΓΩΪΤϤϟ ΓήΠΤϟ ϰϟ· ϪϠϘϧ ϢΘϳ DS:SI ΔτγϮΑ ΩΪΤϤϟ ήμϨόϟ :ΔϴϠϤόϟ
:ϢΛ ES:DI ΔϤϴϘϟ
SI 1 or 2 ĺ SI
DI 1 or 2 ĺ DI
ΔϤϠϜϟ ϡϼϋϷ
ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ
ΔϟΰΘΨϤϟ ΓήΛ΄ΘϤϟ
ΔϴϠϤόϟ βϔϧ
Ϧϣ ΖϳΎΑ ήμϨϋ ϞϘϧ
MOVSB MOVSB έΪϘϣ ϭ ΔϘΑΎδϟ ΪΟϮϳ ϻ
ΔϠδϠγ
1Ϯϫ ΪϳΰΘϟ
ΔϴϠϤόϟ βϔϧ
Ϧϣ ΔϤϠϛ ήμϨϋ ϞϘϧ
MOVSW MOVSW έΪϘϣ ϭ ΔϘΑΎδϟ ΪΟϮϳ ϻ
ΔϠδϠδϟ
2Ϯϫ ΪϳΰΘϟ
CMPS ΔϠδϠγ ήμϨϋ ΔϧέΎϘϣ CMPS operand ΔϟΎΤϟ ϡϼϋ
ΎϤϧ· ΔΠϴΘϨϟ ϥΰΨ˵Η ϻ ϭ έΪμϤϟ ϝϮΤΘϣ Ϧϣ ϑΪϬϟ ϝϮΤΘϣ Ρήσ ϢΘϳ :ΔϴϠϤόϟ
:ϱ ˬςϘϓ ΔϟΎΤϟ ϡϼϋ ϝΪό˵Η
( ( DS x 10h ) + SI ) ( ( ES x 10h ) + DI ) ĺ ΔϟΎΤϟ ϡϼϋ
SI 1 or 2 ĺ SI
DI 1 or 2 ĺ DI
ϡϼϋϷ
ΔϟΰΘΨϤϟ ΔϤϠϜϟ ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ
ΓήΛ΄ΘϤϟ
ήμϨϋ δϣ
SCAS(B or W) SCAS operand ΔϟΎΤϟ ϡϼϋ
ΔϠδϠγ
: ΔϴϠϤόϟ
( AL or AX ) ( ( ES x 10h ) + DI ) ĺ ΔϟΎΤϟ ϡϼϋ
DI 1 or 2 ĺ DI
ϡϼϋϷ
ΔϟΰΘΨϤϟ ΔϤϠϜϟ ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ
ΓήΛ΄ΘϤϟ
ήμϨϋ ϞϴϤΤΗ
LODS (B or W) LODS operand ΪΟϮϳ ϻ
ΔϠδϠγ
: ΔϴϠϤόϟ
( ( DS x 10h ) + SI ) ĺ ( AL or AX )
SI 1 or 2 ĺ SI
43- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
ϡϼϋϷ
ΔϟΰΘΨϤϟ ΔϤϠϜϟ ϰϨόϤϟ Δϐϴμϟ ΔϴϠϤόϟ
ΓήΛ΄ΘϤϟ
ήμϨϋ ϦϳΰΨΗ
STOS(B or W) STOS operand ΪΟϮϳ ϻ
ΔϠδϠγ : ΔϴϠϤόϟ
( AL or AX ) ĺ ( ( ES x 10h ) + DI )
DI 1 or 2 ĺ DI
:ϝΎΜϣ
: ϥ νήϔΑ
SI = 0100h DS = 0200h
DI = 0110h ES = 0400h
: ϦϴΘϴϟΎΘϟ ϦϴΘϤϴϠόΘϟ άϴϔϨΗ ΔΠϴΘϧ ϥΈϓ
MOV CX,20h
REP MOVSB
Ϧѧϣ ΖѧϳΎΑ 32 ϞѧϘϨΘϓ ΔѧϴϧΎΜϟ ΔѧϤϴϠόΘϟ Ύѧϣ 20h = 32d ΔѧϤϴϘϟΎΑ CX ϞΠѧδϤϟ ϞѧϴϤΤΘΑ ϡϮѧϘΗ ϰϟϭϷ ΔϤϴϠόΘϟ ϥ ϲϫ
ϭ ES ΔτѧγϮΑ ΓΩΪѧΤϤϟ ϑΪѧϬϟ ΓήѧϛΫ ΕήѧΠΣ ϙϮѧϠΑ ϰѧϟ· SI ϭ DS ΔτѧγϮΑ ΓΩΪѧΤϤϟ έΪμϤϟ ΓήϛΫ ΕήΠΣ
. DI
44- -
ϱΩήϛ ͿΪΒϋβϧ ΩΪϋ·ϭϒϴϟ΄Η
Ϳ ΪϤΤΑ ΖϤΗ
45- -