BOÄ VI xöÛ lyù intel 8088



tải về 0.51 Mb.
trang3/4
Chuyển đổi dữ liệu17.08.2016
Kích0.51 Mb.
1   2   3   4
Lãûnh naìy khäng taïc âäüng âãún caïc cåì.
Vê duû :
LEA DX, MSG ; naûp âëa chè lãûch cuía baín tin

; MSG vaìo DX.

LEA CX, [BX] [DI] ; naûp vaìo CX âëa chè hiãûu duûng

; do BX vaì DI chè ra : EA =BX+DI


LES - Load Register and ES with Words from Memory (Naûp mäüt tæì (tæì bäü nhåï) vaìo thanh ghi cho trong lãûnh vaì mäüt tæì tiãúp theo vaìo ES)
Viãút lãûnh : LES Âêch,Gäúc
Trong âoï :

+ Âêch laì mäüt trong caïc thanh ghi : AX, BX, CX, DX, SP, BP, SI, DI.

+ Gäúc laì ä nhåï trong âoaûn DS âæåüc chè roî trong lãûnh.
Mä taí : Âêch  Gäúc, ES  Gäúc + 2.
Âáy laì lãûnh âãø naûp vaìo thanh ghi âaî choün vaì vaìo ES tæì 4 ä nhåï liãn tiãúp

Mäüt trong nhæîng æïng duûng cuía lãûnh naìy laì laìm sao cho DI vaì ES chè vaìo âëa chè âáöu cuía vuìng nhåï chæïa chuäùi gäúc træåïc khi duìng âãún lãûnh thao taïc chuäùi.


Lãûnh naìy khäng taïc âäüng âãún caïc cåì.
Vê duû : LES DI,[BX]

Thê duû trãn naûp vaìo DI näüi dung 2 ä nhåï BX vaì BX+1 vaì naûp vaìp ES näüi dung 2 ä nhåï BX+2 vaì BX+3. Caïc ä nhåï naìy âãöu nàòm trong âoaûn dæî liãûu DS vaì chæïa âëa chè cuía chuäùi gäúc. Do váûy sau âoï ES:DI chè vaìo âáöu chuäùi gäúc cáön thao taïc.

LOCK - Assert Bus Lock signal (Âæa ra tên hiãûu khoaï bus)

Lãûnh LOCK duìng âàût træåïc caïc lãûnh maì khi chaûy noï coï nguy cå gáy läùi do khaí nàng xaíy ra tranh cháúp trong viãûc sæí duûng bus giæîa bäü vi xæí lyï 8088 vaì caïc bäü xæí lyï khaïc trong hãû thäúng âa xæí lyï. Nãúu coï lãûnh LOCK âàût træåïc mäüt lãûnh naìo âoï, thç khi chaûy lãûnh naìy, 8088 âæa ra tên hiãûu khoaï bus. Tên hiãûu naìy seî näúi ra thiãút bë âiãöu khiãøn bus ngoaìi âãø cáúm caïc bäü xæí lyï khaïc trong hãû thäúng sæí duûng bus.


Lãûnh naìy khäng taïc âäüng âãún caïc cåì.
Vê duû : LOCK XCHG AL,Kytu
Lãûnh XCHG cáön 2 láön thám nháûp bus âãø hoaìn táút viãûc thæûc hiãûn lãûnh, do âoï cáön âàût sau LOCK âãø traïnh nguy cå tranh cháúp bus coï thãø xaíy ra trong hãû thäúng âa xæí lyï.
LODS/LODSB/LODSW - Load string Byte/Word into AL/AX (Naûp vaìo AL/AX 1 pháön tæí cuía chuoié byte/tæì)
Viãút lãûnh : LODS Chuäùigäúc

LODSB


LODSW
Mä taí :

AL  pháöntæíhiãûnthåìi, SI  Si ± 1 tuyì theo DF, nãúu laì chuäùi byte.

AL  pháöntæíhiãûnthåìi, SI  Si ± 2 tuyì theo DF, nãúu laì chuäùi tæì.

(pháöntæíhiãûnthåìi cuía chuäùi laì do DS:SI hiãûn thåìi chè ra)


Lãûnh LODS naûp vaìo AL/AX 1 byte/tæì (1 pháön tæí cuía chuuoé âaî âæåüc âënh nghéa træåïc laì chuäùi gäöm caïc byte hoàûc tæì ) do SI chè ra trogn âoaûn DS, sau âoï SI tæû âäüng tàng/giaím âãø chè vaìo pháön tæí tiãúp theo tuyì theo cåì hæåïng. Khi phaíi dëch lãûnh LODS Chuäùigäúc, chæång trçnh dëch duìng tãn Chuäùigäúc âãø xaïc âënh xem luïc khai baïo thç Chuäùigäúc coï caïc pháön tæí laì byte hay tæì. Muäún chè roî cho chæång trçnh dëch håüp ngæî ràòng ta laìm viãûc våïi chuäùi caïc byte hoàûc caïc tæì, ta cuîng coï thãø duìng lãûnh LODSB hoàûc LODSW.
Lãûnh naìy khäng taïc âäüng âãún caïc cåì.

Vê duû :
CLD ; laìm viãûc våïi chuäùi theo chiãöu 

LEA SI, STRI ; SI chè vaìo âáöu chuäùi STRI âãø

; taûi âoaûn dæî liãûu DS

LODS STRI ; naûp vaìo Acc 1 pháön tæí.
LOOP - Jump to Sspecified Label if CX0 after Autodecrement (làûp laûi âoaûn chæång trçnh do nhaîn chè ra cho âãún khi CX=0)
Viãút lãûnh : LOOP NHAN
Lãûnh naìy duìng âãø làûp laûi âoaûn chæång trçnh (gäöm caïc lãûnh nàòm trong khoaíng tæì nhaîn NHAN âãún hãút lãûnh LOOP NHAN) cho âãún khi säú láön làûp CX=0. âiãöu naìy coï nghéa laì træåïc khi vaìo voìng làûp ta phaíi âæa säú láön làûp mong muäún vaìo thanh ghi CX vaì sau mäùi láön thæûc hiãûn lãûnh LOOP NHAN thç âäöng thåìi CX tæû âäüng giaím âi mäüt (CX CX-1).

Nhaîn NHAN phaíi nàòm caïch xa (dëch âi mäüt khoaíng) -128 byte so våïi lãûnh tiãúp theo sau lãûnh LOOP.


Lãûnh naìy khäng taïc âäüng âãún caïc cåì.
Vê duû :
XOR AL, AL ; xoaï AL

MOV CX,16 ; säú láön làûp âãø taûi CX

LAP: INC AL ; tàng AL thãm 1

LOOP LAP ; làûp laûi 16 láön, AL = 16


LOOPE/LOOPZ - Loop While CX0 and ZF=1 (Làûp laûi âoaûn chæång trçnh do nhaîn chè ra cho âãún khi CX=0 hoàûc ZF=0)
Viãút lãûnh : LOOPE NHAN

LOOPZ NHAN


Mä taí :

Lãûnh naìy duìng âãø làûp laûi âoaûn chæång trçnh (gäöm caïc lãûnh nàòm trong khoaíng tæì nhaîn NHAN âãún hãút lãûnh LOOPE NHAN hoàûc LOOPZ NHAN) cho âãún khi säú láön làûp CX=0 hoàûc ZF=0. Âiãöu naìy coï nghéa laì træåïc khi vaìo voìng làûp ta phaíi âæa säú láön làûp mong muäún vaìo thanh ghi CX vaì sau mäùi láön thæûc hiãûn lãûnh LOOP NHAN thç âäöng thåìi CX tæû âäüng giaím âi 1 (CX CX-1).

Nhaîn NHAN phaíi nàòm caïch xa (dëch âi mäüt khoaíng) -128 byte so våïi lãûnh tiãúp theo sau lãûnh LOOPE/ LOOPZ.
Lãûnh naìy khäng taïc âäüng âãún caïc cåì.
Vê duû :
MOV AL, AH ; AL âæåüc gaïn giaï trë cuía AH

MOV CX,100 ; âãø âãúm säú láön làûp

LAP: INC AL ; tàng AL thãm 1

CMP AL,16 ; AL=16 ?

LOOP LAP ; làûp laûi cho âãún khi AL16

; hoàûc âãúm xong.


LOOPNE/LOOPNZ - Loop While CX0 and ZF=0(làûp laûi âoaûn chæång trçnh do nhaîn chè ra cho âãún khi CX=0 hoàûc ZF=1)
Viãút lãûnh : LOOPE NHAN

LOOPZ NHAN


Mä taí :

Lãûnh naìy duìng âãø làûp laûi âoaûn chæång trçnh (gäöm caïc lãûnh nàòm trong khoaíng tæì nhaîn NHAN âãún hãút lãûnh LOOPNE NHAN hoàûc LOOPNZ NHAN) cho âãún khi säú láön làûp CX=0 hoàûc ZF=1. Âiãöu naìy coï nghéa laì træåïc khi vaìo voìng làûp ta phaíi âæa säú láön làûp mong muäún vaìo thanh ghi CX vaì sau mäùi láön thæûc hiãûn lãûnh LOOP NHAN thç âäöng thåìi CX tæû âäüng giaím âi 1 (CX CX-1).

Nhaîn NHAN phaíi nàòm caïch xa (dëch âi mäüt khoaíng) -128 byte so våïi lãûnh tiãúp theo sau lãûnh LOOPNE/ LOOPNZ.
Lãûnh naìy khäng taïc âäüng âãún caïc cåì.
Vê duû :
MOV AL, AH ; AL âæåüc gaïn giaï trë cuía AH

MOV CX,100 ; âãø âãúm säú láön làûp

LAP: INC AL ; tàng AL thãm 1

CMP AL,16 ; AL=16 ?

LOOP LAP ; làûp laûi cho âãún khi

; AL=16 hoàûc âãúm xong.

LOOPNZ - Xem LOOPNE

LOOPZ - Xem LOOPE


MOV - Move a Word or byte (Chuyãøn 1 tæì hay 1 byte)
Viãút lãûnh : MOV Âêch,Gäúc.
Mä taí : Âêch  Gäúc
Trong âoï toaïn haûng âêch vaì gäúc coï thãø tçm âæåüc theo caïc chãú âäü âëa chè khaïc nhau, nhæng phaíi coï cuìng âäü daìi vaì khäng âæåüc pheïp âäöng thåìi laì 2 ä nhåï hoàûc 2 thanh ghi âoaûn.
Lãûnh naìy khäng taïc âäüng âãún caïc cåì.

Vê duû :
MOV AL, 74H ; AL  74

MOV CL,BL ; CL  BL

MOV DL,[SI] ; DL  {DS:SI}

MOV AL,Table [BX] ; AL {DS:(Table+BX)}
MOVS/MOVSB/MOVSW - Move String Byte or String Word (Chuyãøn 1 pháön tæí cuía 1 chuäùi sang mäüt chuäùi khaïc)
Viãút lãûnh : MOVS Chuäùiâêch,Chuäùigäúc

MOVSB


MOVSW
Mä taí : PháöntæíChuäùiâêch  PháöntæíChuäùigäúc
Lãûnh naìy duìng chuyãøn tæìng byte hay tæìng tæì cuía chuäùi gäúc sang chuäùi âêch,

trong âoï :

+ DS:SI laì âëa chè cuía pháön tæí trong chuäùi gäúc.

+ ES:DI laì âëa chè cuía pháön tæí trong chuäùi âêch.

+ Sau mäùi láön chuyãøn SI  SI  1, DI  DI  1 hoàûc SI  SI  2, DI  DI  2 mäüt caïch tæû âäüng tuyì thuäüc cåì hæåïng DF laì 0/1 vaì chuäùi laì chuäùi byte hoàûc chuäùi tæì.
Coï hai caïch âãø chè ra chuäùi laì chuäùi byte hay laì chuäùi tæì. Caïch âáöu tiãn laì ta khai roî bàòng tãn chuäùi nguäön vaì chuäùi âêch laì loaûi gç ngay tæì âáöu chæång trçnh. Caïch thæï hai laì ta thãm vaìo lãûnh MOVS âuäi “B” cho chuäùi byte hoàûc âuäi “W” cho chuäùi tæì.

(xem mä taí caïch sæí duûng taûi lãûnh COMPS).


Lãûnh MOVS/MOVSB/MOVSW coï thãø duìng keìm våïi lãûnh REPE hoàûc REPNE âãø so saïnh táút caí caïc pháön tæí trong chuäùi.
Lãûnh naìy khäng taïc âäüng âãún caïc cåì.

Vê duû :
MOV DI, OFFSET Chuäùiâêch ; láúy âëa chè lãûch

; cuía chuäùiâêch taûi

; ES vaìo DI

MOV SI, OFFSET Chuäùigäúc ; láúy âëa chè lãûch

; cuía chuäùigäúc taûi DS

; vaìo SI

CLD ; laìm viãûc våïi chuäùi

; theo chiãöu 

MOVSB ; chuyãøn 1 byte . SI

; vaì DI tàng thãm 1.
MUL - Multiply Unisigned Byte or Word (nhán säú khäng dáúu)

Viãút lãûnh : MUL Gäúc


Trong âoï toaïn haûng Gäúc laì säú nhán vaì coï thãø tçm âæåüc theo caïc chãú âäü âëa chè khaïc nhau.

Mä taí : tuyì theo âäü daìi cuía toaïn haûng Gäúc ta coï 2 træåìng håüp täø chæïc pheïp nhán, chäù âãø ngáöm âënh cho säú bë nhán vaì kãút quaí :





  • nãúu Gäúc laì säú 8 bit : ALGäúc,

säú bë nhán phaíi laì säú 8 bit âãø trong AL.

sau khi nhán : AX  têch,



  • nãúu Gäúc laì säú 16 bit : AXGäúc,

säú bë nhán phaíi laì säú 16 bit âãø trong AX.

sau khi nhán : DXAX  têch.


Nãúu byte cao (hoàûc 16 bit cao) cuía 16 (hoàûc 32) bit kãút quaí chæïa 0 thç CF=OF=0

Nhæ váûy caïc cåì CF vaì OF seî baïo cho ta biãút coï thãø boí âi bao nhiãu säú 0 trong kãút quaí.


Vê duû :

Nãúu ta cáön nhán mäüt säú 8 bit våïi mäüt säú 16 bit , ta âãø säú 16 bit taûi Gäúc vaì säú 8 bit åí AL. Säú 8 bit naìy åí AL cáön phaíi âæåüc måí räüng sang AH bàòng caïch gaïn AH=0 âãø laìm cho säú bë nhán nàòm trong AX. Sau cuìng chè viãûc duìng lãûnh MUL Gäúc vaì kãút qur coï trong càûp DXAX.


Cáûp nháût : CF, OF.

Khäng xaïc âënh : AF, PF, SF, ZP.


NEG - Negate a Operand (Form its 2’s Complement) (láúy buì hai cuía mäüt toaïn haûng, âäøi dáúu cuía mäüt toaïn haûng)
Viãút lãûnh : NEG Âêch
Trong âoï toaïn haûng Âêch coï thãø tçm âæåüc theo caïc chãú âäü âëa chè khaïc nhau.
Mä taí : Âêch  0 - (Âêch)
Âiãöu naìy hoaìn toaìn tæång âæång våïi viãûc láúy (Âêch + 1) laìm kãút quaí. Nãúu ta láúy buì 2 cuía -128 hoàûc -32768 thç ta seî âæåüc kãút quaí khäng âäøi nhæng cåì OF=1 âãø baïo laì kãút quaí bë traìn (vç säú dæång låïn nháút biãøu diãùn âæåüc laì + 127 vaì + 32767).
Cáûp nháût : AF, CF, OF, PF, SF, ZF.

Vê duû :
NEG AH ; AH  0 -(AH)

NEG BYTE PTR [BX] ; láúy buì hai cuía ä nhåï âoï

; BX chè ra trong DS


NOP - No Operation ( CPU khäng laìm gç)
Lãûnh naìy khäng thæûc hiãûn cäng viãûc gç ngoaûi træì viãûc tàng näüi dung cuía IP vaì tiãu täún 3 chu kyì âäöng häö. Noï thæåìng âæåüc duìng âãø tênh thåìi gian trong caïc voìng trãù hoàûc âãø chiãúm chäù cho caïc lãûnh cáön thãm vaìo chæång trçnh sau naìy maì khäng laìm aính hæåíng âãún âäü daìi cuía chæång trçnh.
Lãûnh naìy khäng taïc âäüng âãún caïc cåì.
NOT - Invert Each Bit of an Operand (Form its 1’s complement) (láúy buì cuía mäüt toaïn haûng, âaío bit cuía mäüt toaïn haûng).
Viãút lãûnh : NOT Âêch
Trong âoï toaïn haûng Âêch coï thãø tçm âæåüc theo caïc chãú âäü âëa chè khaïc nhau.
Mä taí : Âêch  (Âêch)
Lãûnh naìy khäng taïc âäüng âãún caïc cåì.
Vê duû :
NOT AH ; AH  (AH)

NOT BYTE PTR [BX] ; láúy buì 1 cuía ä nhåï âoï

; BX chè ra trong DS
OR - Logically Or Corresponding Bits of Two Operands (hoàûc hai toaïn haûng)
Viãút lãûnh : OR Âêch,Gäúc
Mä taí : Âêch  Âêch v Gäúc
Trong âoï toaïn haûng âêch vaì gäúc coï thãø tçm âæåüc theo caïc âëa chè khaïc nhau, nhæng phaíi chæïa dæî liãûu cuìng âäü daìi vaì khäng âæåüc pheïp âäöng thåìi laì 2 ä nhåï vaì cuîng khäng âæåüc laì thanh ghi âoaûn. Pheïp OR thæåìng duìng âãø láûp mäüt vaìi bit naìo âoï cuía toaïn haûng bàòng caïch cäüng loogic toaïn haûng âoï våïi toaïn haûng tæïc thåìi coï caïc bit 1 taûi caïc vë trê tæång æïng cáön thiãút láûp.
Xoïa : CF,OF.

Cáûp nháût : PF, SF, ZP,PF. Chè coï nghéa khi toaïn haûng laì 8 bit.

Khäng xaïc âënh : AF.
Vê duû :
OR AL, BL ; AL  AL v BL theo tæìng bit

OR BL, 30H ; láûp bit b4 vaì b5 cuía BL lãn 1.


OUT - Output a Byte or a Word toa Port (âæa dæî liãûu tæì Acc ra cäøng)
Viãút lãûnh : OUT Port,Acc
Mä taí : Acc  {port}
Trong âoï {port}laì dæî liãûu cuía cäøng coï âëa chè laì Port. Port laì âëa chè 8 bit cuía cäøng, noï coï thãø coï caïc giaï trë trong khoaíng 00H ... FFH . Nhæ váûy ta coï thãø coï caïc khaí nàng sau :
+ Nãúu Acc laì AL thç dæî liãûu 8 bit âæåüc âæa ra cäøng port.

+ Nãúu Acc laì AX thç dæî liãûu 16 bit âæåüc âæa ra cäøng port vaì cäøng port +1.


Coï mäüt caïch khaïc âãø biãøu diãùn âëa chè cäøng laì thäng qua thanh ghi DX. Khi duìng thanh ghi DX âãø chæïa âëa chè cäøng ta seî coï khaí nàng âëa chè hoaï cäøng mãöm deío hån. Luïc naìy âëa chè cäøng nàòm trong daíi 0000H ...FFFFH vaì ta phaíi viãút lãûnh theo daûng :
OUT DX, Acc
Trong âoï DX phaíi âæåüc gaïn tæì træåïc giaï trë æïng våïi âëa chè cäøng.
Lãûnh naìy khäng taïc âäüng âãún caïc cåì.
POP - Pop Word from Top of Stack (láúy laûi 1 tæì vaìo thanh ghi tæì âènh ngàn xãúp)
Viãút lãûnh : POP Âêch

Mä taí : Âêch  {SP},

SP  SP +2.
Trong âoï toaïn haûng âêch coï thãø tçm âæåüc theo caïc chãú âäü âëa chè khaïc nhau : coï thãø laì caïc thanh ghi âa nàng, thanh ghi âoaûn (nhæng khäng âæåüc laì thanh ghi âoaûn maî CS) hoàûc ä nhåï. Dæî liãûu âãø taûi ngàn xãúp khäng thay âäøi. Giaï trë cuía SS khäng thaíy âäøi.
Lãûnh naìy khäng taïc âäüng âãún caïc cåì.
Vê duû :
POP DX ; láúy 2 byte tæì âènh ngàn xãúp

; âæa vaìo DX.

POP Table[BX] ; láúy 2 byte tæì âènh ngàn xãúp räöi

; âãø taûi vuìng DX coï âëa chè

; âáöu taûi (Table + BX)
POPF - Pop Word from Top of Stack to flag Register (láúy mäüt tæì tæì âènh ngàn xãúp räöi âæa vaìo thanh cåì)
Viãút lãûnh : POPF

Mä taí : RF  {SP},

SP  SP +2.

Sau lãûnh naìy dæî liãûu âãø taûi ngàn xãúp khäng thay âäøi. SS khäng thay âäøi.


Lãûnh naìy khäng taïc âäüng âãún caïc cåì.

PUSH - Push Word on the Stack (cáút 1 tæì vaìo ngàn xãúp)


Viãút lãûnh : POPF Gäúc


Mä taí : SP  SP - 2.

Gäúc  {SP}.

Trong âoï toaïn haûng gäúc coï thãø tçm âæåüc theo caïc chãú âäü âëa chè khaïc nhau : coï thãø laì caïc thanh ghi âa nàng, thanh ghi âoaûn hoàûc ä nhåï. Lãûnh naìy thæåìng duìng våïi lãûnh POP nhæ laì mäüt càûp âäúi ngáùu âãø xæí lyï caïc dæî liãûu vaì traûng thaïi cuía chæång trçnh chênh (CTC) khi vaìo/ra chæång trçnh con (ctc).
Lãûnh naìy khäng taïc âäüng âãún caïc cåì.

Vê duû :
PUSH BX ; cáút BX vaìo ngàn xãúp taûi vë trê

Trisdo SP chè ra.

PUSH Table[BX] ; cáút 2 byte cuía vuìng dæî liãûu DS

; coï âëa chè âáöu taûi (Table + BX).
PUSHF - Push Flag register to the Stack (cáút thanh cåì vaìo ngàn xãúp)
Viãút lãûnh : POPF Gäúc
Mä taí : SP  SP - 2.

RF  {SP}.


Dæî liãûu âãø taûi ngàn xãúp khäng thay âäøi. SS khäng thay âäøi.
Lãûnh naìy khäng taïc âäüng âãún caïc cåì.
RCL - Rotate through CF to the left (Quay traïi thäng qua cåì nhåï)
Viãút lãûnh : RCL Âêch,CL
Trong âoï toaïn haûng âêch coï thãø tçm âæåüc theo caïc chãú âäü âëa chè khaïc nhau.
Mä taí :
CF MSB LSB


Hçnh 3.9. Lãûnh RLC


Lãûnh naìy duìng âãø quay toaïn haûng sang traïi thäng qua cåì CF. CL phaíi âæåüc chæïa sàôn säú láön quay mong muäún. Trong træåìng håüp quay mäüt láön coï thãø viãút træûc tiãúp :
RCL Âêch,1
(tæì caïc bäü vi xæí lyï thãú hãû sau nhæ 80186, 80286 ... thç coï thãø viãút træûc tiãúp kiãøu naìy våïi säú láön quay låïn nháút laì 32). Ta nháûn tháúy säú láön cuía quay laì 9 thç kãút quaí khäng thay âäøi vç càûp CF vaì toaïn haûng quay troìn âuïng mäüt voìng.
Taïc âäüng vaìo cåì : chè coï CF vaì OF bë aính hæåíng.

Sau lãûnh RCL cåì CF mang giaï trë cuî cuía MSB, coìn cåì OF  1 nãúu sau khi quay mäüt láön maì bit MSB bë thay âäøi so våïi træåïc khi quay. Cåì OF seî khäng âæåüc xaïc âënh sau nhiãöu láön quay.


Vê duû :
RCL BX,1 ; quay traïi thanh ghi BX thäng

; qua CF


MOV CL,8 ; säú láön quay âãø trong CL,

RCL AL, CL ; quay traïi thanh ghi AL 8 láön

; thäng qua CF. MSB luïc naìy chæïa

; giaï trë CF ban âáöu.


RCR - Rotate though CF to the right (quay phaíi thäng qua cåì nhåï)
Viãút lãûnh : RCR Âêch,CL
Trong âoï toaïn haûng âêch coï thãø tçm âæåüc theo caïc chãú âäü âëa chè khaïc nhau.
Mä taí :
CF MSB LSB








Hçnh 3.10. Lãûnh RCR.
Lãûnh naìy duìng âãø quay toaïn haûng sang traïi thäng qua cåì CF. CL phaíi âæåüc chæïa sàôn säú láön quay mong muäún. Trong træåìng håüp quay mäüt láön coï thãø viãút træûc tiãúp :
RCR Âêch,1
(tæì caïc bäü vi xæí lyï thãú hãû sau nhæ 80186, 80286 ... thç coï thãø viãút træûc tiãúp kiãøu naìy våïi säú láön quay låïn nháút laì 32). Ta nháûn tháúy säú láön cuía quay laì 9 thç kãút quaí khäng thay âäøi vç càûp CF vaì toaïn haûng - thanh ghi quay troìn âuïng mäüt voìng.
Taïc âäüng vaìo cåì : chè coï CF vaì OF bë aính hæåíng.

Sau lãûnh RCR cåì CF mang giaï trë cuî cuía LSB, coìn cåì OF  1 nãúu sau khi quay mäüt láön maì bit MSB bë thay âäøi so våïi træåïc khi quay. Cåìì OF seî khäng âæåüc xaïc âënh sau nhiãöu láön quay.


Vê duû :
RCR BX,1 ; quay phaíi thanh ghi BX thäng qua CF

MOV CL,8 ; säú láön quay âãø trong CL,

RCR AL, CL ; quay phaíi thanh ghi AL 8 láön thäng

; qua CF. LSB luïc naìy chæïa giaï trë

; CF ban âáöu.
REP - Repeat String Instruction until CX=0 (làûp laûi lãûnh viãút sau âoï cho tåïi khi CX=0).
Âáy laì tiãúp âáöu ngæî duìng âãø viãút træåïc caïc lãûnh thao taïc våïi chuäùi dæî liãûu maì ta muäún làûp laûi mäüt säú láön. Säú láön làûp phaíi âãø træåïc trong CX. Khi caïc lãûnh naìy âæåüc làûp laûi thç CX tæû âäüng giaím âi mäüt sau mäùi láön làûp. Quaï trçnh seî kãút thuïc khi CX =0.
Vê duû :
REP MOVSB ; làûp laûi lãûnh chuyãøn byte cuía

; chuäùi tåïi khi CX=0


REPE/REPZ - Repeat String Instruction until CX=0 or ZF=0 (làûp laûi lãûnh viãút sau âoï cho tåïi khi CX=0 hoàûc ZF=0).
Âáy laì tiãúp âáöu ngæî duìng âãø viãút træåïc caïc lãûnh thao taïc våïi chuäùi dæî liãûu maì ta muäún làûp laûi mäüt säú láön. Säú láön làûp phaíi âãø træåïc trong CX. Khi caïc lãûnh naìy âæåüc làûp laûi thç CX tæû âäüng giaím âi mäüt sau mäùi láön làûp. Khi duìng REPE/REPZ våïi lãûnh so saïnh chuäùi, quaï trçnh seî kãút thuïc khi âãúm hãút (CX=0) hoàûc khi hai pháön tæí so saïnh khaïc nhau (ZF=0).
Vê duû :
REPE CMPSB ; làûp laûi lãûnh so saïnh caïc

; byte cuía 2 chuäùi tåïi khi CX=0

; hoàûc ZF=0.
REPNE/REPNZ - Repeat String Instruction until CX=0 or ZF=1 (làûp laûi lãûnh viãút sau âoï cho tåïi khi CX=0 hoàûc ZF=1).
Âáy laì tiãúp âáöu ngæî duìng âãø viãút træåïc caïc lãûnh thao taïc våïi chuäùi dæî liãûu maì ta muäún làûp laûi mäüt säú láön. Säú láön làûp phaíi âãø træåïc trong CX. Khi caïc lãûnh naìy âæåüc làûp laûi thç CX tæû âäüng giaím âi mäüt sau mäùi láön làûp. Khi duìng REPNE/REPNZ våïi lãûnh queït chuäùi, quaï trçnh seî kãút thuïc khi âãúm hãút (CX=0) hoàûc khi Acc bàòng pháön tæí cuía chuäùi (ZF=1).

Vê duû :
REPNE CMPSB ; làûp laûi lãûnh queït caïc byte cuía chuäùi

; tåïi khi hãút chuäùi (CX=0)

; hoàûc Al bàòng 1 pháön tæí cuía

; chuäùi (ZF=1).
RET - Return reom Procedure to Calling Program (Tråí vãö CTC tæì ctc)
Viãút lãûnh : RET hoàûc RET n,n laì säú nguyãn dæång.
Mä taí :

RET âæåüc âàût taûi cuäúi ctc âãø bäü vi xæí lyï láúy laûi âëa chè tråí vãö (âëa chè cuía lãûnh tiãúp theo lãûnh goüi cuía CTC), noï âæåüc tæû âäüng cáút åí ngàn xãúp khi coï lãûnh goüi ctc. Tuyì theo loaûi gáön hay xa ta cuîng seî caïc xæí lyï khaïc nhau âäúi våïi âëa chè tråí vãö (xem thãm pháön mä ta chung våïi lãûnh Call).

Âàûc biãût nãúu ta duìng RET n thç sau khi âaî láúy laûi âæåüc âëa chè tråí vãö (chè coï IP hoàûc coï CS vaì IP) thç SP  SP + n (duìng âãø nhaíy qua maì khäng láúy laûi caïc thäng säú khaïc cuía chæång trçnh coìn laûi trong ngàn xãúp).
Lãûnh naìy khäng taïc âäüng âãún caïc cåì.
ROL - Rotate All Bits to the Left (Quay voìng sang traïi)
Viãút lãûnh : RCR Âêch,CL
Trong âoï toaïn haûng âêch coï thãø tçm âæåüc theo caïc chãú âäü âëa chè khaïc nhau.
Mä taí :
CF MSB LSB


Hçnh 3.11. Lãûnh ROL.


Lãûnh naìy duìng âãø quay voìng toaïn haûng sang traïi, MSB seî âæåüc âæa qua cåì CF vaì LSB. CL phaíi âæåüc chæïa sàôn säú láön quay mong muäún. Trong træåìng håüp quay mäüt láön coï thãø viãút træûc tiãúp :
ROL Âêch,1
(tæì caïc bäü vi xæí lyï thãú hãû sau nhæ 80186, 80286 ... thç coï thãø viãút træûc tiãúp kiãøu naìy våïi säú láön quay låïn nháút laì 32). Ta nháûn tháúy nãúu CL=8 vaì toaïn haûng âãø quay laì 8 bit thç kãút quaí khäng bë thay âäøi vç toaïn haûng quay troìn âuïng mäüt voìng, coìn nãúu CL=4 thç 2 nibble cuía toaïn haûng bë âäøi chäù.
Taïc âäüng vaìo cåì : chè coï CF vaì OF bë aính hæåíng.

Sau lãûnh ROL cåì CF mang giaï trë cuî cuía MSB, coìn cåì OF  1 nãúu sau khi quay mäüt láön maì bit MSB bë thay âäøi so våïi træåïc khi quay. Cåìì CF tæì giaï trë cuía MSB laìm âiãöu kiãûn cho caïc lãûnh nhaíy coï âiãöu kiãûn.


Vê duû :
ROL BX,1 ; quay voìng sang traïi thanh ghi BX

MOV CL,8 ; säú láön quay âãø trong CL,

ROL AL, CL ; quay voìng qua traïi thanh ghi AL 8

; láön thanh ghi AL luïc naìy chæïa giaï

; trë ban âáöu (træåïc khi quay).
ROR - Rotate All Bits to the right (Quay voìng sang phaíi)

Viãút lãûnh : ROR Âêch,CL


Trong âoï toaïn haûng âêch coï thãø tçm âæåüc theo caïc chãú âäü âëa chè khaïc nhau.

Mä taí :


MSB LSB CF


Hçnh 3.12. Lãûnh ROR.


Lãûnh naìy duìng âãø quay voìng toaïn haûng sang phaíi, LSB seî âæåüc âæa qua cåì CF vaì MSB. CL phaíi âæåüc chæïa sàôn säú láön quay mong muäún. Trong træåìng håüp quay mäüt láön coï thãø viãút træûc tiãúp :
ROR Âêch,1
(tæì caïc bäü vi xæí lyï thãú hãû sau nhæ 80186, 80286 ... thç coï thãø viãút træûc tiãúp kiãøu naìy våïi säú láön quay låïn nháút laì 32). Ta nháûn tháúy nãúu CL=8 thç kãút quaí khäng bë thay âäøi vç toaïn haûng quay troìn âuïng mäüt voìng, coìn nãúu CL=4 thç 2 nibble cuía noï bë âäøi chäù.
Taïc âäüng vaìo cåì : chè coï CF vaì OF bë aính hæåíng.

Sau lãûnh ROR cåì CF mang giaï trë cuî cuía LSB, coìn cåì OF  1 nãúu sau khi quay mäüt láön maì bit MSB bë thay âäøi so våïi træåïc khi quay. Cåìì OF seî khäng âæåüc xaïc âënh sau nhiãöu láön quay. Lãûnh naìy thæåìng duìng âãø taûo cåì CF tæì giaï trë cuía LSB laìm âiãöu kiãûn cho caïc lãûnh nhaíy coï âiãöu kiãûn.


Vê duû :
ROR BX,1 ; quay voìng qua phaíi thanh ghi BX.

MOV CL,8 ; säú láön quay âãø trong CL,

ROR AL, CL ; quay voìng qua phaíi thanh ghi AL 8

; láön, thanh ghi AL luïc naìy chæïa giaï

; trë ban âáöu (træåïc khi quay).
SAHF - Store AH Register into byte of Flag Register (cáút thanh ghi AH vaìo byte tháúp cuía thanh cåì)
Mä taí : FR­­L  AH

Duìng lãûnh naìy phäúi håüp våïi lãûnh POP AX thç coï thãø mä phoíng lãûnh POP PSW cuía bäü vi xæí lyï 8085 trãn 8088.

Cáûp nháût : AF, CF, OF, PF, SF, ZP.
SAL - Shift Arithmetically Left (dëch traïi säú hoüc)/SHL - Shift (Logically) Left (dëch traïi logic).
Viãút lãûnh : SAL Âêch,CL

SHL Âêch,CL


Trong âoï toaïn haûng âêch coï thãø tçm âæåüc theo caïc chãú âäü âëa chè khaïc nhau.
1   2   3   4


Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2016
được sử dụng cho việc quản lý

    Quê hương