第3章_4邏輯移位及串操作_第1頁
第3章_4邏輯移位及串操作_第2頁
第3章_4邏輯移位及串操作_第3頁
第3章_4邏輯移位及串操作_第4頁
第3章_4邏輯移位及串操作_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、1231 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 算術(shù)運算指令算術(shù)運算指令 邏輯運算與移位指令邏輯運算與移位指令 串操作指令串操作指令 控制轉(zhuǎn)移指令控制轉(zhuǎn)移指令 處理機控制指令處理機控制指令2 實現(xiàn)與、或、非、異或、測試等邏輯運算實現(xiàn)與、或、非、異或、測試等邏輯運算 操作數(shù)的搭配關(guān)系同算術(shù)運算操作數(shù)的搭配關(guān)系同算術(shù)運算 除邏輯除邏輯“非非”指令不影響標(biāo)志外,其他邏輯運算指令均影響標(biāo)志指令不影響標(biāo)志外,其他邏輯運算指令均影響標(biāo)志SF、ZF和和PF,而而OF和和CF一定被置一定被置0,AF不確定不確定31、邏輯、邏輯“與與”指令指令 AND 格式格式:AND d,s 功能功能: (d) (d) (s) 說明說明

2、:將目的操作數(shù):將目的操作數(shù)d與源操作數(shù)與源操作數(shù)s按位相按位相“與與”結(jié)結(jié)果送回果送回d中,常用于使某些位清中,常用于使某些位清0lOFCF0,其它標(biāo)志位受影響,其它標(biāo)志位受影響ld、s必須具有相同的字長必須具有相同的字長 AND AX, BLld、s不能為段寄存器不能為段寄存器 AND DS, 2000Hld不能是立即數(shù)不能是立即數(shù) AND 10H, AX452、邏輯、邏輯“或或”指令指令 OR 格式格式:OR d,s 功能功能: (d) (d) (s) 說明說明:將目的操作數(shù):將目的操作數(shù)d與源操作數(shù)與源操作數(shù)s按位相按位相“或或”結(jié)結(jié)果送回果送回d中,常用于使某些位置位(置中,常用于使

3、某些位置位(置1)lOFCF0,其它標(biāo)志位受影響,其它標(biāo)志位受影響ld、s必須具有相同的字長必須具有相同的字長 OR AX, BLld、s不能為段寄存器不能為段寄存器 OR DS, 2000Hld不能是立即數(shù)不能是立即數(shù) OR 10H, AX673、邏輯、邏輯“異或異或”指令指令 OR 格式格式:OR d,s 功能功能: (d) (d) (s) 說明說明:將目的操作數(shù):將目的操作數(shù)d與源操作數(shù)與源操作數(shù)s按位相按位相“異或異或”結(jié)果送回結(jié)果送回d中,常用于使某些位取反中,常用于使某些位取反lOFCF0,其它標(biāo)志位受影響,其它標(biāo)志位受影響ld、s必須具有相同的字長必須具有相同的字長 XOR AX

4、, BLld、s不能為段寄存器不能為段寄存器 XOR DS, 2000Hld不能是立即數(shù)不能是立即數(shù) XOR 10H, AX8ABBABABA1AA0AAA1AA0A 9l不影響標(biāo)志位不影響標(biāo)志位ld不能是不能是段寄存器段寄存器、立即數(shù)立即數(shù) NOT DS NOT 10H4、邏輯、邏輯“非非”指令指令 NOT 格式格式:NOT d 功能功能: (d) (d) 說明說明:將目的操作數(shù):將目的操作數(shù)d取反后結(jié)果送回取反后結(jié)果送回d中中105、測試指令、測試指令 TEST 格式格式:TEST d,s 功能功能:(d) (s) 說明說明:將目的操作數(shù):將目的操作數(shù)d與源操作數(shù)與源操作數(shù)s按位相按位相“

5、與與”,只影響標(biāo)志位不回送結(jié)果,常用于測試某些位是只影響標(biāo)志位不回送結(jié)果,常用于測試某些位是0或或1lOFCF0,其它標(biāo)志位受影響,其它標(biāo)志位受影響ld、s必須具有相同的字長必須具有相同的字長 TEST AX, BLld、s不能為段寄存器不能為段寄存器 TEST DS, 2000Hld不能是立即數(shù)不能是立即數(shù) TEST 10H, AX1112對對8位或位或16位的通用寄存器或存儲器內(nèi)容進行移位,移位次數(shù)可以為位的通用寄存器或存儲器內(nèi)容進行移位,移位次數(shù)可以為1255若移位次數(shù)為若移位次數(shù)為1則可直接寫在指令中,若次數(shù)為則可直接寫在指令中,若次數(shù)為2255則不能直接寫在指令中,則不能直接寫在指令

6、中,必須先將次數(shù)放在寄存器必須先將次數(shù)放在寄存器CL中,指令中只能寫中,指令中只能寫CL,移位結(jié)束后,移位結(jié)束后CL的值不變的值不變 影響標(biāo)志影響標(biāo)志OF、SF、ZF、PF、CF,但,但AF不確定。當(dāng)移位次數(shù)為不確定。當(dāng)移位次數(shù)為1時,若移位結(jié)時,若移位結(jié)果使最高位符號位發(fā)生變化,則溢出標(biāo)志果使最高位符號位發(fā)生變化,則溢出標(biāo)志OF1,否則,否則OF0;當(dāng)移位次數(shù)超過;當(dāng)移位次數(shù)超過1時,時,OF無效無效136、邏輯左移指令、邏輯左移指令 SHL(SHift Left) 格式格式:SHL d,count 功能功能:邏輯左移:邏輯左移 說明說明:將目的操作數(shù):將目的操作數(shù)d左移左移count位,右

7、邊補位,右邊補0,左邊入,左邊入CFlSF、ZF、PF 根據(jù)移位結(jié)果設(shè)置根據(jù)移位結(jié)果設(shè)置lCF = 移入的數(shù)值移入的數(shù)值lAF無定義無定義lOFld不能是不能是段寄存器和段寄存器和立即數(shù)立即數(shù)1 count=1時,最高位的值改變時,最高位的值改變0 count=1時,最高位的值不變時,最高位的值不變14157、邏輯右移指令、邏輯右移指令 SHR(SHift Right) 格式格式:SHR d,count 功能功能:邏輯右移:邏輯右移 說明說明:將目的操作數(shù):將目的操作數(shù)d右移右移count位,左邊補位,左邊補0,右邊入,右邊入CFlSF、ZF、PF 根據(jù)移位結(jié)果設(shè)置根據(jù)移位結(jié)果設(shè)置lCF =

8、移入的數(shù)值移入的數(shù)值lAF無定義無定義lOFld不能是不能是段寄存器和段寄存器和立即數(shù)立即數(shù)1 count=1時,最高位的值改變時,最高位的值改變0 count=1時,最高位的值不變時,最高位的值不變168、算術(shù)左移指令、算術(shù)左移指令 SAL(Arithmetic) 格式格式:SAL d,count 功能功能:同邏輯左移完全相同:同邏輯左移完全相同179、算術(shù)右移指令、算術(shù)右移指令 SAR(Arithmetic) 格式格式:SAR d,count 功能功能:算術(shù)右移:算術(shù)右移 說明說明:將操作數(shù):將操作數(shù)d的內(nèi)容右移,左邊不變,右邊移入的內(nèi)容右移,左邊不變,右邊移入CF中中l(wèi)SF不變不變,ZF

9、、PF 根據(jù)移位結(jié)果設(shè)置根據(jù)移位結(jié)果設(shè)置lCF = 移入的數(shù)值移入的數(shù)值lAF無定義無定義lOFld不能是不能是段寄存器和段寄存器和立即數(shù)立即數(shù)1 count=1時,最高位的值改變時,最高位的值改變0 count=1時,最高位的值不變時,最高位的值不變1810、循環(huán)左移指令、循環(huán)左移指令 ROL(ROtate/ROund Left) 格式格式:ROL d,count 功能功能:循環(huán)左移:循環(huán)左移 說明說明:將操作數(shù):將操作數(shù)d的內(nèi)容左移,最高位循環(huán)移入最低位,同時移入的內(nèi)容左移,最高位循環(huán)移入最低位,同時移入CFlSF、ZF、PF 、AF不受影響不受影響lCF = 移入的數(shù)值移入的數(shù)值lOFl

10、d不能是不能是段寄存器和段寄存器和立即數(shù)立即數(shù)1 count=1時,最高位的值改變時,最高位的值改變0 count=1時,最高位的值不變時,最高位的值不變1911、循環(huán)右移指令、循環(huán)右移指令 ROR(ROtate/ROund Right) 格式格式:ROR d,count 功能功能:循環(huán)右移:循環(huán)右移 說明說明:將操作數(shù):將操作數(shù)d的內(nèi)容右移,最低位循環(huán)移入最高位,同時移入的內(nèi)容右移,最低位循環(huán)移入最高位,同時移入CFlSF、ZF、PF 、AF不受影響不受影響lCF = 移入的數(shù)值移入的數(shù)值lOFld不能是不能是段寄存器和段寄存器和立即數(shù)立即數(shù)1 count=1時,最高位的值改變時,最高位的值

11、改變0 count=1時,最高位的值不變時,最高位的值不變2012、帶進位循環(huán)左移指令、帶進位循環(huán)左移指令 RCL(ROtate/ROund Carry Left) 格式格式:RCL d,count 功能功能:帶進位循環(huán)左移:帶進位循環(huán)左移 說明說明:將操作數(shù):將操作數(shù)d的內(nèi)容左移,最高位循環(huán)移入的內(nèi)容左移,最高位循環(huán)移入CF,而,而CF循環(huán)移入最低位循環(huán)移入最低位lSF、ZF、PF 、AF不受影響不受影響lCF = 移入的數(shù)值移入的數(shù)值lOFld不能是不能是段寄存器和段寄存器和立即數(shù)立即數(shù)1 count=1時,最高位的值改變時,最高位的值改變0 count=1時,最高位的值不變時,最高位的值

12、不變2113、帶進位循環(huán)右移指令、帶進位循環(huán)右移指令 RCR(ROtate/ROund Carry Right) 格式格式:RCR d,count 功能功能:帶進位循環(huán)右移:帶進位循環(huán)右移 說明說明:將操作數(shù):將操作數(shù)d的內(nèi)容左移,最低位循環(huán)移入的內(nèi)容左移,最低位循環(huán)移入CF,而,而CF循環(huán)移入最高位循環(huán)移入最高位lSF、ZF、PF 、AF不受影響不受影響lCF = 移入的數(shù)值移入的數(shù)值lOFld不能是不能是段寄存器和段寄存器和立即數(shù)立即數(shù)1 count=1時,最高位的值改變時,最高位的值改變0 count=1時,最高位的值不變時,最高位的值不變22 數(shù)據(jù)串是存儲器中一塊字節(jié)或字的存儲區(qū)域,其

13、長度可以是數(shù)據(jù)串是存儲器中一塊字節(jié)或字的存儲區(qū)域,其長度可以是1字節(jié)字節(jié)64K字節(jié)字節(jié) 串操作就是對數(shù)據(jù)串中每個元素所進行的操作,這種操作通常是組合操作,能完串操作就是對數(shù)據(jù)串中每個元素所進行的操作,這種操作通常是組合操作,能完成幾條指令的功能成幾條指令的功能 用作源操作數(shù)的串稱為源串,源串默認(rèn)放在數(shù)據(jù)段中(段地址在用作源操作數(shù)的串稱為源串,源串默認(rèn)放在數(shù)據(jù)段中(段地址在DS中),但可中),但可以段超越到其他段,源串的偏移地址指針必須放在以段超越到其他段,源串的偏移地址指針必須放在SI中中 用作目的操作數(shù)的串稱為目的串,目的串必須放在附加段中(段地址在用作目的操作數(shù)的串稱為目的串,目的串必須放

14、在附加段中(段地址在ES中),中),目的串的偏移地址指針必須放在目的串的偏移地址指針必須放在DI中中 串的長度(字節(jié)數(shù)或字?jǐn)?shù))必須放在串的長度(字節(jié)數(shù)或字?jǐn)?shù))必須放在CX中中23 串操作可以按字節(jié)操作(助記符末尾字母加串操作可以按字節(jié)操作(助記符末尾字母加B),也可以按字操作(助記符末尾),也可以按字操作(助記符末尾字母加字母加W)。按字節(jié)操作時,地址指針加或減)。按字節(jié)操作時,地址指針加或減1,按字操作時,地址指針加或減,按字操作時,地址指針加或減2 若方向標(biāo)志若方向標(biāo)志DF0,則按增址操作,地址指針加,則按增址操作,地址指針加1或加或加2;若方向標(biāo)志;若方向標(biāo)志DF1,則,則按減址操作,地

15、址指針減按減址操作,地址指針減1或減或減28086共有共有5種基本的串操作指令,有的指令涉及到種基本的串操作指令,有的指令涉及到2個串,而有的只涉及到個串,而有的只涉及到1個串個串 有些串操作是在數(shù)據(jù)串與寄存器之間進行,則規(guī)定寄存器只能用累加器,字節(jié)操有些串操作是在數(shù)據(jù)串與寄存器之間進行,則規(guī)定寄存器只能用累加器,字節(jié)操作時用作時用AL,字操作時用,字操作時用AX 串操作指令每次只處理一個元素的數(shù)據(jù),為了能重復(fù)執(zhí)行最多達串操作指令每次只處理一個元素的數(shù)據(jù),為了能重復(fù)執(zhí)行最多達64KB的串操作,的串操作,8086還提供了還提供了3種重復(fù)前綴指令,使用這些指令可以使串操作指令重復(fù)執(zhí)行由寄存種重復(fù)前

16、綴指令,使用這些指令可以使串操作指令重復(fù)執(zhí)行由寄存器器CX指定的次數(shù)指定的次數(shù)除串比較和串搜索指令影響全部除串比較和串搜索指令影響全部6個狀態(tài)標(biāo)志外,其它指令均不影響標(biāo)志位個狀態(tài)標(biāo)志外,其它指令均不影響標(biāo)志位2425(1)重復(fù))重復(fù) REP(REPeat) 格式格式:REP 串操作指令串操作指令 功能功能:使串操作指令重復(fù)執(zhí)行:使串操作指令重復(fù)執(zhí)行CX指定的次數(shù)指定的次數(shù) 說明說明:若:若CX0則重復(fù)執(zhí)行串指令,并置則重復(fù)執(zhí)行串指令,并置CXCX1,直到,直到CX0為止。為止。REP指指令主要用于令主要用于串傳送串傳送和和串寫入串寫入指令前指令前26(2)相等則重復(fù))相等則重復(fù) REPE/RE

17、PZ(REPeat when Equal/Zero) 格式格式:REPE/REPZ 串操作指令串操作指令 功能功能:若串操作指令執(zhí)行結(jié)果相等,且:若串操作指令執(zhí)行結(jié)果相等,且CX指定次數(shù)未到,則重復(fù)執(zhí)行串操作指令,指定次數(shù)未到,則重復(fù)執(zhí)行串操作指令,直到結(jié)果不相等,或直到結(jié)果不相等,或CX指定次數(shù)已到則停止指定次數(shù)已到則停止 說明說明:若:若ZF1且且CX1CX0則重復(fù)執(zhí)行串指令,直到則重復(fù)執(zhí)行串指令,直到ZF0或或CX1CX0為止。為止。REPE指令主要用于指令主要用于串比較串比較和和串搜索串搜索指令前指令前27(3)不相等則重復(fù))不相等則重復(fù) REPNE/REPNZ(REPeat when

18、 Not Equal/Zero) 格式格式:REPNE/REPNZ 串操作指令串操作指令 功能功能:若串操作指令執(zhí)行結(jié)果不相等,且:若串操作指令執(zhí)行結(jié)果不相等,且CX指定次數(shù)未到,則重復(fù)執(zhí)行串操作指指定次數(shù)未到,則重復(fù)執(zhí)行串操作指令,直到結(jié)果相等,或令,直到結(jié)果相等,或CX指定次數(shù)已到則停止指定次數(shù)已到則停止 說明說明:若:若ZF0且且CX1CX0則重復(fù)執(zhí)行串指令,直到則重復(fù)執(zhí)行串指令,直到ZF1或或CX1CX0為止。為止。REPNE指令主要用于指令主要用于串比較串比較和和串搜索串搜索指令前指令前2814、串傳送指令、串傳送指令 MOVSB/MOVSW(MOVe String of Byte/

19、Word) 格式格式:MOVSB/MOVSW 功能功能:將源串指針:將源串指針SI所指單元的一個數(shù)據(jù)(字節(jié)或字)傳送到目的串指針?biāo)竼卧囊粋€數(shù)據(jù)(字節(jié)或字)傳送到目的串指針DI所指單所指單元中,指針作相應(yīng)變化元中,指針作相應(yīng)變化(1)ES:DI DS:SI(2)MOVSB(字節(jié)操作):(字節(jié)操作):(SI)(SI)1, (DI)(DI)1 MOVSW (字操作)(字操作) : (SI)(SI)2, (DI)(DI)2(3)方向標(biāo)志:)方向標(biāo)志: DF=0 時地址時地址“ ”,DF=1時地址時地址“ ”(4)使用重復(fù)前綴)使用重復(fù)前綴REP相配合,一次完成數(shù)據(jù)串的傳送操作相配合,一次完成數(shù)據(jù)串

20、的傳送操作數(shù)據(jù)段數(shù)據(jù)段DS附加段附加段ES(SI) (DI)DF=0(SI)(DI)DF=129程序段如下:程序段如下: LDS SI,源串首地址源串首地址 LES DI,目的串首地址目的串首地址 MOV CX,串長度串長度 CLD REP MOVSB;將數(shù)據(jù)段中的整串?dāng)?shù)據(jù)傳送到附加段中;將數(shù)據(jù)段中的整串?dāng)?shù)據(jù)傳送到附加段中執(zhí)行執(zhí)行REP MOVS之前,應(yīng)先做好如下準(zhǔn)備:之前,應(yīng)先做好如下準(zhǔn)備:(1)源串首地址(末地址)源串首地址(末地址) SI,置好,置好DS的值的值(2)目的串首地址(末地址)目的串首地址(末地址) DI,置好,置好ES的值的值(3)串長度)串長度 CX(4)設(shè)置方向標(biāo)志()

21、設(shè)置方向標(biāo)志(CLD使使DF=0,STD使使DF=1)(SI)數(shù)據(jù)段數(shù)據(jù)段DS附加段附加段ES(SI) (DI)(DI)DF=0地址增量地址增量3015、串比較指令、串比較指令 CMPSB/CMPSW(CoMPare String of Byte/Word) 格式格式:CMPSB/CMPSW 功能功能:將源串指針:將源串指針SI所指單元的一個數(shù)據(jù)(字節(jié)或字)與目的串指針?biāo)竼卧囊粋€數(shù)據(jù)(字節(jié)或字)與目的串指針DI所指單元的所指單元的一個數(shù)據(jù)(字節(jié)或字)相減,但結(jié)果不回送,只影響標(biāo)志位,指針作相應(yīng)變化一個數(shù)據(jù)(字節(jié)或字)相減,但結(jié)果不回送,只影響標(biāo)志位,指針作相應(yīng)變化(1)DS:SI ES:D

22、I,不保存結(jié)果,影響標(biāo)志位同,不保存結(jié)果,影響標(biāo)志位同CMP指令指令(2)CMPSB(字節(jié)操作):(字節(jié)操作):(SI)(SI)1, (DI)(DI)1 CMPSW (字操作)(字操作) : (SI)(SI)2, (DI)(DI)2(3)方向標(biāo)志:)方向標(biāo)志: DF=0 時地址時地址“ ”,DF=1時地址時地址“ ”(4)使用重復(fù)前綴)使用重復(fù)前綴REPZ / REPE、REPNZ / REPNE相配合相配合(SI)(DI)DF=1數(shù)據(jù)段數(shù)據(jù)段DS附加段附加段ES(SI) (DI)DF=03116、串搜索指令、串搜索指令 SCASB/SCASW(SCAn String of Byte/Word

23、) 格式格式:SCASB/SCASW 功能功能:將累加器(:將累加器(AL或或AX)內(nèi)容與目的串指針)內(nèi)容與目的串指針DI所指單元的一個數(shù)據(jù)(字節(jié)或字)所指單元的一個數(shù)據(jù)(字節(jié)或字)相減,但結(jié)果不回送,只影響標(biāo)志位,指針作相應(yīng)變化相減,但結(jié)果不回送,只影響標(biāo)志位,指針作相應(yīng)變化(1)AL(AX) ES:DI,不保存結(jié)果,影響標(biāo)志位,不保存結(jié)果,影響標(biāo)志位(2)SCASB(字節(jié)操作):(字節(jié)操作):(SI)(SI)1, (DI)(DI)1 SCASW (字操作)(字操作) : (SI)(SI)2, (DI)(DI)2(3)方向標(biāo)志:)方向標(biāo)志: DF=0 時地址時地址“ ”,DF=1時地址時地址“ ”(4)使用重復(fù)前綴)使用重復(fù)前綴REPZ / REPE、REPNZ / REPNE相配合相配合(DI)DF=1附加段附加段ES(DI)DF=0搜索數(shù)據(jù)串中搜索數(shù)據(jù)串中與與AL/AX相同相同/(不相同)的數(shù)據(jù)(不相同)的數(shù)據(jù)3217、串寫入指令、串寫入指令 STOSB/STOSW(STOre data to String of Byte/Word) 格式格式:STOSB/STOSW 功能功能:累加器(:累加器(AL或或AX)內(nèi)容傳送到目的串指針)內(nèi)容傳送到目的串指針DI所指單元中,指針作相應(yīng)變化所指單元中,指針作相應(yīng)變化(1)ES:DI AL(AX),不影響標(biāo)志位,不

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論