BOÄ VI xöÛ lyù intel 8088



tải về 0.51 Mb.
trang4/4
Chuyển đổi dữ liệu17.08.2016
Kích0.51 Mb.
1   2   3   4
Mä taí :
CF MSB LSB


0


Hçnh 3.13. Lãûnh SAL/SHL.


Hai lãûnh naìy coï cuìng taïc duûng dëch traïi säú hoüc toaïn haûng (coìn goüi laì dëch traïi logic âãø coï lãûnh âäúi ngáùu våïi lãûnh dëch phaíi logic seî noïi åí pháön sau). Mäùi láön dëch MSB seî âæåüc âæa qua cåì CF vaì 0 âæa vaìo LSB. Thao taïc kiãøu naìy âæåüc goüi laì dëch logic. 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 :
SAL Âê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 mäüt láön dëch traïi kiãøu naìy tæång âæång våïi mäüt láön laìm pheïp nhán våïi 2 cuía säú khäng dáúu. Vç váûy ta coï thãø laìm pheïp nhán mäüt säú våïi säú nhán khäng dáúu tæång âæång våïi 2 bàòng caïch dëch traïi säú hoüc säú bë nhán i láön. Chênh vç váûy thao taïc naìy coìn âæåüc goüi laì dëch traïi säú hoüc. Trong chæìng mæûc nháút âënh láön naìy chaûy nhanh hoen MUL.
Taïc âäüng vaìo cåì :

Sau lãûnh SAL hoàûc SHL cåì CF mang giaï trë cuî cuía MSB (vç váûy lãûnh naìy coìn duìng âãø taûo 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), coìn cåì OF  1 nãúu sau khi dëch mäüt láön maì bit MSB bë thay âäøi so våïi træåïc khi quay. Cåìì OFOÎe khäng âæåüc xaïc âënh sau nhiãöu láön dëch.


Cáûp nháût : SF, ZF, PF.PF chè coï yï nghéa khi kãút quaí laì 8 bit.

Khäng xaïc âënh : AF.

Vê duû :
SAL BX,1 ; dëch traïi säú hoüc thanh ghi BX

MOV CL,4 ; säú láön dëch âãø trong CL,

SLH AL, CL ; dëch traïi thanh ghi AL 4 láön,

; thanh ghi AL luïc naìy coï giaï

; trë bàòng 1/16 thanh ghi AL ban âáöu.
SBB - Substract with Brrow (træì coï mæåün)
Viãút lãûnh : SBB Âêch,Gäúc
Mä taí : Âêch  Âêch - Gäúc - CF
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 chæïa cuìng mäüt loaûi dæî liãûu vaì khäng âæåüc pheïp âäöng thåìi laì 2 ä nhåï vaì cuîng khäng âæåüc laì thanh ghi âoaûn.

Cáûp nháût : AF, CF, OF, PF, SF, ZP (AF vaì PF chè liãn quan âãún 8bit tháúp).


Vê duû : Caïc vê duû sau âáy coï thãø âaûi diãûn cho caïc chãú âäü âëa chè coï thãø coï trong lãûnh træì naìy cuîng nhæ mäüt säú caïc lãûnh khaïc våïi ngæî phaïp tæång tæû.
SBB AL,74H ; AL  AL - 47 - CF

SBB CL,BL ; CL  CL - BL - CF

SBB DL,[SI] ; DL  DL - {DS:SI} - CF

SBB AL,Table[BX] ; AL  AL - {DS:(Table+BX)} - CF


SCAS/SCASB/CASW - Scan a String Byte or a String Word (Queït chuäùi byte hay chuäùi tæì)
Viãút lãûnh : SCAS Chuäùiâêch

SCASB


SCASW
Mä taí :

AL : Pháöntæíchuäùiâêch, DI  DI  1 tuyì theo DF, nãúu laì chuäùi Byte,

AL : Pháöntæíchuäùiâêch, DI  DI  2 tuyì theo DF, nãúu laì chuäùi tæì.

(Pháöntæíchuäùiâêch laì do ES:DI hiãûn thåìi chè ra)


Lãûnh SCAS so saïnh AL hoàûc AX våïi tæìng byte hay tæìng tæì cuía xáu âêch chè âãø taûo caïc cåì, khäng læu kãút quaí so saïnh, caïc toaïn haûng khäng bë thay âäøi. Sau âoï DI tæû âäüng tàng /giaím âãø chè vaìo pháön tæí tiãúp theo tuyì theo cåì hæåïng. Khi dëch lãn SCAS Chuäùiâêch, chæång trçnh dëch duìng tãn Chuäùiâêch âãø xaïc âënh xem luïc khai baïo thç Chuäùiâêch coï caïc pháön tæí laì byte hay tæì. Muäún chi roî cho chæång trçnh dëch håüp ngæî ràòng ta laìm viãûc våïi chuäùi byte (chæïa caïc byte) hoàûc chuäùi tæì (chæïa caïc tæì ), ta cuîng coï thãø duìng lãûnh SCASB hoàûc SCASW. Caïc lãûnh naìy coìn thæåìng duìng keìm våïi REPNE/REPNZ âãø làûp laûi viãûc queït mäüt säú láön hoàûc queït cho tåïi khi tçm âæåüc máùu cáön tçm.
Cáûp nháût : AF, CF.OF, PF, SF, ZP.
Vê duû :
CLD BX,1 ; lamf viãûc våïi chuäùi theo chiãöu 

MOV AL,13 ; AL chæïa maî ASCII cuía kyï tæû vãö

; âáöu doìng (CR),

MOV CX,80 ; dëch queït mäüt doìng 80 kyï tæû,

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

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

REPNE SCASB STR1 ; so AL våïi mäüt pháön tæí

; cuía chuäùi âãø tçm CR.


SHL - Xem SAL
SHR - Shift (Logically) Right (dëch phaíi logic)

Viãút lãûnh : SHL Âê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.

Mä taí :


MSB LSB CF


0


Hçnh 3.15. Lãûnh SHR.


Lãûnh naìy duìng âãø dëch phaíi logêc toaïn haûng. Sau mäùi láön dëch LSB seî âæåüc âæa qua cåì CF vaì 0 âæa vaìo MSB. Thao taïc kiãøu naìy âæåüc goüi laì dëc logêc. 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 :
SHR Âê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 mäüt láön dëch traïi kiãøu naìy tæång âæång våïi mäüt láön laìm pheïp chia cho 2 cuía säú khäng dáúu. Vç váûy ta coï thãø laìm pheïp chia mäüt säú khäng dáúu cho mäüt säú khäng dáúu tæång âæång våïi 2i bàòng caïch dëch phaíi logêc säú bë chia i láön.
Taïc âäüng vaìo cåì :

Sau lãûnh SHR cåì CF mang giaï trë cuî cuía LSB(vç váûy lãûnh naìy coìn 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), coìn cåì OF  1 nãúu sau khi dëch mäüt láön maì bit MSB bë thay âäøi so våïi træåïc khi dëch. Cåìì OF seî khäng âæåüc xaïc âënh sau nhiãöu dëch.


Cáûp nháût : SF, ZF, PF.PF chè coï yï nghéa khi kãút quaí laì 8 bit.

Khäng xaïc âënh : AF.

Vê duû :
SHR BX,1 ; dëch phaíi lägêc thanh ghi BX.

MOV CL,4 ; säú láön dëch âãø trong CL,

SHR AL, CL ; dëch phaíi thanh ghi AL 4 láön,

; thanh ghi AL luïc naìy coï 4 bit

; tháúp bàòng 4 bit cao ban âáöu vaì

; 4 bit cao laì 0.


STC - Set the Carry Flag (láûp cåì nhåï)
Mä taí : CF  1.
Khäng taïc âäüng âãún caïc cåì khaïc.
STD - Set the Direction Flag (Láûp cåì hæåïng)
Mä taí : DF  1.
Lãûnh naìy âënh hæåïng thao taïc cho caïc lãûnh laìm viãûc våïi chuäùi theo chiãöu luìi (). Caïc thanh ghi SI vaì DI liãn quan seî âæåüc tæû âäüng giaím khi laìm viãûc xong våïi mäüt pháön tæí cuía chuäùi.
Khäng taïc âäüng âãún caïc cåì khaïc.
SET - Set the Interrupt Flasg (láûp cåì cho pheïp ngàõt)
Mä taí : IF  1.
Lãûnh naìy láûp cåì cho pheïp ngàõt âãø cho pheïp caïc yãu cáöu ngàõt taïc âäüng vaìo chán INTR âæåüc CPU nháûn biãút. Khi IF=1 nãúu coï tên hiãûu INTR=1 thç 8088 seî bë ngàõt, noï seî tæû âäüng ngàõt thanh ghi cåì vaì âëa chè tråí vãö vaìo ngàn xãúp räöi chuyãøn sang chaûy chæång trçnh (con) phuûc vuû ngàõt CTPVN. Taûi chuäùi CTPVN seî coï lãûnh tråí vãö CTC tæì CTPVN (IRET) âãø 8088 láúy laûi tæì ngàn xãúp giaï trë cuía thanh ghi cåì vaì âëa chè tråí vãö.
Khäng taïc âäüng âãún caïc cåì khaïc.
STOS/STOSB/STOSW - Store AL/AX in String Byte/Word (cáút AL/AX vaìo mäùi pháön tæí cuía chuäùi byte/tæì)

Viãút lãûnh : STOS Chuäùiâêch

STOSB

STOSW
Mä taí :



AL : Pháöntæíhiãûnthåìi, DI  DI  1 tuyì theo DF, nãúu laì chuäùi Byte,

AL : Pháöntæíhiãûnthåìi, DI  DI  2 tuyì theo DF, nãúu laì chuäùi tæì.

(Pháöntæíhiãûnthåìi cuía chuäùi laì do ES:DI hiãûn thåìi chè ra)
Lãûnh STOS cáút AL/AX vaìo 1 byte/tæì (1 pháön tæí cuía chuäùi âaî âæåüc âënh nghéa træåïc laì chuäùi gäöm caïc byte hoàûc tæì. Do DI chè ra trong âoaûn ES, sau âoï DI tæû âäüng tàng /giaím âãø chè vaìo pháön tæí tiãúp theo tuyì theo cåì hæåïng. Khi dëch lãn STOS Chuäùiâêch, chæång trçnh dëch duìng tãn Chuäùiâêch âãø xaïc âënh xem luïc khai baïo thç Chuäùiâêch coï caïc pháön tæí laì byte hay tæì. Muäún chi 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 STOSB hoàûc STOSW.
Lãûnh naìy khäng taïc âäüng âãún caïc cåì.
Vê duû :
MOV DI,OFFSET STR1 ; DI chè vaìo âáöu chuäùi

MOV CL,4 ; STR1 âãø taûi âoaûn dæî liãûu

; phuû ES,

STOS STR1 ; Cáút Acc vaìo 1

; pháön tæí cuía chuäùi
Trong thê duû trãn chæång trçnh dëch håüp ngæî seî duìng tãn STR1 âãø xaïc âënh kiãøu cuía STR1 laì byte hay laì tæì räöi tæû âäüng cáút AL hay AX vaìo chuäùi.
MOV DI,OFFSET STR1 ; DI chè vaìo âáöu chuäùi

MOV CL,4 ; STR1 âãø taûi âoaûn

; dæî liãûu phuû ES,

STOS STR1 ; Cáút Acc vaìo 1 pháön tæí cuía

; chuäùi

Trong thê duû thæï 2 chæång trçnh dëch håüp ngæî seî hiãøu laì chæî “B” trong lãûnh STOSB xaïc âënh kiãøu cuía STR1 laì byte vaì tæû âäüng cáút AL vaìo chuäùi.


SUB - Substract ( træì hau toaïn haûng)
Viãút lãûnh : SUB Âêch,Gäúc.
Mä taí : Âêch  Âê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 chæïa dæî liãûu coï 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. Coï thãø tham khaío caïc vê duû cuía lãûnh SBB.
Cáûp nháût : AF, CF, OF, PF, SF, ZP ( AF vaì PF chè liãn quan âãún 8 bit tháúp).
TEST - And Operands to Update Flag ( vaì 2 toaïn haûng âãø taûo cåì)

Viãút lãûnh : TEST Âê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 chæïa dæî liãûu coï 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. Sau lãûnh naìy caïc toaïn haûng khäng bë thay âäøi vaì kãút quaí khäng âæåüc læu giæî. Caïc cåì âæåüc taûo ra seî âæåüc duìng laìm âiãöu kiãûn cho caïc lãûnh nhaíy coï âiãöu kiãûn. Lãûnh naìy cuîng coï taïc duûng che nhæ mäüt màût naû.
Xoaï : CF, OF.

Cáûp nháût : PF, SF, ZP (PF chè liãn quan âãún 8 bit tháúp).

Khäng xaïc âënh : AF.
Vê duû :
TEXT AH,AL ; AH AL âãø taûo cåì

TEXT AH,01H ; bit 0 cuía AH bàòng 0

TEXT BP, [BX] [DI] ; vaì BP våïi ä nhåï do

; BX + DI chè ra trong

; vuìng dæî liãûu DS

WAIT - Wait for TEST or INTR Signal (chåì tên hiãûu tæì chán TEXT hoàûc INTR)


Mä taí :

Lãûnh naìy âæa bäü xæí lyï 8088 vaìo traûng thaïi nghé vaì noï seî mang laûi traûng thaïi naìy cho tåïi khi coï tên hiãûu åí mæïc tháúp taïc âäüng vaìo chán TEXT hoàûc khi coï tên hiãûu cao taïc âäüng vaìo chán INTR. Nãúu coï yãu cáöu ngàõt vaì yãu cáöu naìy âæåüc pheïp taïc âäüng trong khi 8088 âang åí traûng thaïi nghé thç sau khi thæûc hiãûn CTPVN noï laûi quay laûi traûng thaïi nghé. Lãûnh naìy duìng âãø âäöng bäü hoaût âäüng cuía 8088 vaì caïc bäü pháûn bãn ngoaìi nhæ bäü xæí lyï toaïn hoüc 8087.


Lãûnh naìy khäng taïc âäüng âãún caïc cåì.
XCHG - Exchange 2 Operands ( thaïo näüi dung hai toaïn haûng)
Viãút lãûnh : XCHG Âê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 chæïa dæî liãûu coï 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. Lãûnh XCHG toaïn haûng naìy chæïa näüi dung cuî cuía toaïn haûng kia vaì ngæåüc laûi.
Lãûnh naìy khäng taïc âäüng âãún caïc cåì.
Vê duû :
XCHG AH,AL ; traïo näüi dung AH vaì AL

XCHG AX,BX ; traïo näüi dung cuía AX vaì BX

XCHG AL, Table[BX] ; traïo näüi dung AL våïi ä nhåï coï

; âëa chè Table [BX] trong vuìng

; dæî liãûu DS
XLAT - Translate a byte in AL ( Âäøi näüi dung AL theo baíng cho træåïc)

Viãút lãûnh : XLAT


Mä taí : AL  {AL + BX}
Lãûnh naìy duìng âãø 8 bit hoàût êt hån tæì maî naìy ( gäúc) sang maî khaïc (âêch) theo mäüt baíng tra cho sàôn træåïc khi thæûc hiãûn lãûnh âäøi, baíng tra phaíi chæïa caïc maî âêch vaì BX phaíi chæïa âëa chè lãûnh cuía baíng naìy trong âoaûn dæî liãûu. Coìn maî gäúc (cáön âäøi) phaíi âæåüc chæïa trong AL. khi chaûy lãûnh XLAT thç pheïp cäüng AL + BX phaíi âæåüc thæûc hiãûn âãø taûo ra âëa chè ä nhåï trong baíng so maì näüi dung cuía noï seî âæåüc caïch tråí laûi vaìo thanh ghi AL.
Lãûnh naìy khäng taïc âäüng âãún caïc cåì.

23H


FFH

0100H

FF
AL 0000H AL 0000H

FF
 0123H 0123H



0124H 0124H


0100H


BX BX

XOR - Exclusive Or Corresponding Bits of two Operands ( hoàûc loaûi træì hai toaïn haûng)


Viãút lãûnh : XOR Âêch,Gäúc
Mä taí : Âêch  Âê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 chæïa dæî liãûu coï 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. Tæì tênh cháút cuía pheïp hoàûc loaûi træì ta tháúy nãúu toaïn haûng âêch truìng våïi toaïn haûng gäúc thç kãút quaí bàòng 0, do âoï lãûnh naìy coìn âæåüc duìng âãø xoaï vãö 0 mäüt thanh ghi naìo âoï vaì keìm theo caïc cåì CF vaì OF cuîng bë xoaï.
Cáûp nháût : PF, SF, ZP, PF chè coï nghéa khi toaïn haûng laì 8 biit.

Khäng xaïc âënh : AF.


Vê duû :
XOR AL,BL ; AL  AL  BL theo tæìng bit mäüt

XOR BH,BH ; xoaï BH, xoaï CF vaì OF.


Trãn âáy ta âaî giåïi thiãûu qua táúc caí caïc lãûnh coï trong táûp lãûnh cuía bäü vi xæí lyï 8086/88. Màûc duì trong thæûc tãú láûp trçnh nhiãöu khi ta khäng sæí duûng hãút âæåüc táút caí caïc lãûnh trong táûp lãûnh naìy. Táûp lãûnh naìy cuía bäü vi xæí lyï cao cáúp hån trong hoü 80x86 ngoaìi nhæîng lãûnh naìy coìn bao gäöm nhæîng lãûnh khaïc næîa.

Ta coï thãø coi âáy laì mäüt vê duû vãö mäüt táûp lãûnh cuía mäüt bäü vi xæí lyï duìng âãø chãú taûo ra maïy tênh våïi táûp lãûnh âáöy âuí (Complex instruction set computer CISC) våïi âàûc træng laì : coï ráút nhiãöu lãûnh våïi caïc chãú âäü âëa chè ráút âa daûng, caïc lãûnh coï âäü daìi khaïc nhau vaì thåìi gian thæûc hiãûn cuîng khaïc nhau. Bäü vi xæí lyï vç thãú thæåìng coï cáúu truïc ráút phæïc taûp. Thãú maì trãn thæûc tãú, trong caïc chæång trçnh håüp ngæî âãø giaíi quyãút caïc cäng viãûc cuû thãø, thæåìng coï nhiãöu lãûnh âæåüc duìng våïi táön suáút låïn nhæng cuîng coï nhæîng lãûnh ráút êt khi hoàûc tháûm chê khäng hãö âæåüc sæí duûng. Âáy cuîng chênh laì lyï do âãø caïc nhaì saín xuáút cho ra âåìi caïc bäü vi xæí lyï coï cáúu truïc caîi tiãún theo hæåïng âån giaín hoaï våïi táûp lãûnh lãûnh ráút hæîu duûng ( coï säú lãûnh êt hån våïi chãú âäü âëa chè âån giaín, caïc lãûnh coï âäü daìi thäúng nháút vaì coï thåìi gian thæûc hiãûn nhæ nhau) nhæng laijcos khaí nàng thæûc hiãûn lãûnh nhanh hån gáúp bäüi so våïi loaûi CISC. Âoï laì caïc bäü vi xæí lyï duìng laìm CPU cho caïc maïy tênh våïi táûp lãûnh ruït goün (Redduced instruction set computer, RISC).
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