版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
3.2.3邏輯指令
邏輯指令包括邏輯運(yùn)算指令和移位指令。由于它們都是按位進(jìn)行操作的,故又稱位操作指令。邏輯指令以二進(jìn)制位為基本單位進(jìn)行數(shù)據(jù)運(yùn)算,屬于常用指令,應(yīng)該熟練掌握。要特別注意這些指令對(duì)標(biāo)志位的影響。1、邏輯運(yùn)算指令A(yù)ND
OR
XOR
NOT
TEST2、移位指令SHL
SHR
SAR3、循環(huán)移位指令ROL
ROR
RCL
RCR2/5/20231邏輯非指令NOT指令格式:NOTOPR指令功能:本指令將給定的操作數(shù)按位求反,且不影響標(biāo)志位。
NOTreg/mem
;reg/mem←~reg/mem2/5/20232邏輯或指令OR
指令格式:ORDST,SRC指令功能:本指令將源操作數(shù)與目標(biāo)操作數(shù)按位進(jìn)行邏輯“或”運(yùn)算并將結(jié)果送入目標(biāo)操作數(shù)。
ORreg,imm/reg/mem
;reg←reg∨imm/reg/memORmem,imm/reg
;mem←mem∨imm/regOR指令設(shè)置CF=OF=0,根據(jù)結(jié)果設(shè)置SF、ZF和PF狀態(tài),而對(duì)AF未定義。2/5/20233邏輯與指令A(yù)ND指令格式:ANDDST,SRC指令功能:AND指令將源操作數(shù)和目標(biāo)操作數(shù)按位進(jìn)行邏輯“與”運(yùn)算,然后將結(jié)果送入目標(biāo)操作數(shù)。
ANDreg,imm/reg/mem
ANDmem,imm/regAND指令設(shè)置CF=OF=0,根據(jù)結(jié)果設(shè)置SF、ZF和PF狀態(tài),而對(duì)AF未定義2/5/20234邏輯異或指令XOR指令格式:XORDST,SRC指令功能:XOR指令將源操作數(shù)與目標(biāo)操作數(shù)按位進(jìn)行“異或”運(yùn)算,其結(jié)果保留在目標(biāo)操作數(shù)中。
XORmem,imm/reg
;mem←mem⊕imm/reg
XORreg,imm/reg/mem
;reg←reg⊕imm/reg/memXOR指令設(shè)置CF=OF=0,根據(jù)結(jié)果設(shè)置SF、ZF和PF狀態(tài),而對(duì)AF未定義2/5/20235TEST測(cè)試指令指令格式:TESTOPR1,OPR2指令功能:TEST指令將兩個(gè)操作數(shù)按位進(jìn)行邏輯“與”運(yùn)算,但不保存結(jié)果,只根據(jù)特征設(shè)置狀態(tài)位。TESTmem,imm/reg
;mem∧imm/regTESTreg,imm/reg/mem
;reg∧imm/reg/mem2/5/20236應(yīng)用:1)AND:使一個(gè)操作數(shù)中的若干位維持不變,而另外若干位清0;2)OR:使一個(gè)操作數(shù)中的若干位維持不變,而另外若干位置1;3)XOR:使一個(gè)操作數(shù)中的若干位維持不變,而另外若干位取反;4)TEST:用來檢測(cè)某些位是否為1,但又不改變?cè)僮鲾?shù)值.例:MOV AL,34H ;AL=00110100B 11001111BANDAL,CFH ;AL=00000100BMOVAL,41H ;AL=01000001B 00100000BORAL,20H ;AL=01100001BMOV AL,34H ;AL=00110100B 00001111BXORAL,0FH ;AL=00111011B2/5/20237移位指令移位指令使操作數(shù)中的所有各位向左或向右移若干位,所移動(dòng)的位數(shù)由記數(shù)值CNT確定。當(dāng)只移1位時(shí)CNT為立即數(shù)1,若移多位,則將移位個(gè)數(shù)置于CL寄存器中。移位(含循環(huán)移位)指令對(duì)狀態(tài)位的影響是:CF位根據(jù)指令規(guī)則設(shè)置;OF位只有當(dāng)CNT=1時(shí)有效,在移位后最高有效位的值發(fā)生變化時(shí)OF置1,否則是0;SF、ZF和PF根據(jù)移位后的結(jié)果設(shè)置;而AF位的值不確定。循環(huán)移位指令不影響CF和OF以外的其他標(biāo)志。2/5/20238移位指令(1)邏輯左右移與算術(shù)左右移SHLreg/mem,1/CL;邏輯左移,最高位進(jìn)入CF,最低位補(bǔ)0SHRreg/mem,1/CL;邏輯右移,最低位進(jìn)入CF,最高位補(bǔ)0SALreg/mem,1/CL;算術(shù)左移,最高位進(jìn)入CF,最低位補(bǔ)0
SARreg/mem,1/CL;算術(shù)右移,最低位進(jìn)入CF,最高位不變演示示意圖2/5/20239移位指令的功能2/5/202310移位指令應(yīng)用舉例movcl,4moval,0f0h ;al=f0hshlal,1 ;al=e0h;CF=1,SF=1、ZF=0、PF=0,OF=0shral,1 ;al=70hsaral,1 ;al=38hsar
al,cl
;al=03h;CF=1,SF=0、ZF=0、PF=1
二進(jìn)制數(shù)據(jù)右移1位相當(dāng)于除2
左移1位相當(dāng)于乘2
2/5/202311循環(huán)移位指令將操作數(shù)從一端移出的位返回到另一端形成循環(huán),分成不帶進(jìn)位和帶進(jìn)位,分別具有左移或右移操作ROLreg/mem,1/CL ;不帶進(jìn)位循環(huán)左移RORreg/mem,1/CL ;不帶進(jìn)位循環(huán)右移RCLreg/mem,1/CL ;帶進(jìn)位循環(huán)左移RCRreg/mem,1/CL ;帶進(jìn)位循環(huán)右移示意圖示意圖2/5/202312帶進(jìn)位循環(huán)移位指令2/5/202313例:編寫程序段實(shí)現(xiàn)AX中的內(nèi)容乘10,結(jié)果存放在AX中.分析:將一個(gè)數(shù)左移一位,相當(dāng)于乘2,則
X*10=X*8+X*2程序: XOR AH,AH SHL AX,1 ;2X MOV BX,AX ;暫存2X SHL AX,1 ;4X SHL AX,1 ;8X ADD AX,BX ;8X+2X2/5/202314例:編寫程序段將DX,AX中的32位二進(jìn)制數(shù)左移一位。程序一
SHL AX,1 SHL DX,1程序二
SHL AX,1 RCL DX,1思考:編寫程序段把DX和AX中的雙字右移四位。2/5/2023153.2.4串操作指令串:字節(jié)或字的序列,在內(nèi)存中占用連續(xù)存儲(chǔ)單元。特點(diǎn):1)每條串指令有以字和字節(jié)形式來做重復(fù)處理2)成對(duì)使用ES:DI或DS:SI寄存器,DS:SI指向源串,ES:DI指向目的串3)指令自動(dòng)調(diào)整SI和DI的值,但按增量還是按減量修改,取決于標(biāo)志位DF4)方向標(biāo)志DF控制操作方向,DF=1,減址;DF=0,增址5)任何一個(gè)串操作指令,可以在前面加上一個(gè)重復(fù)操作前綴,于是指令就重復(fù)執(zhí)行,直至在寄存器CX中的操作次數(shù)滿足要求為止。2/5/202316(1)MOVS(MoveString)
功能:把由SI作為指針的源串中的一個(gè)字節(jié)或字,傳送至由DI作為指針的目的串,并且相應(yīng)地修改指針,以指向串中的下一個(gè)元素。操作:
MOVSB;MOVAL,[SI]MOVES:[DI],ALINCDI/DECDIINCSI/DECSIMOVSW;MOVAX,[SI]MOVES:[DI],AXADDDI,2/SUBDI,2ADDSI,2/SUBSI,2
說明:此指令對(duì)標(biāo)志位無影響。2/5/202317(2)CMPS(CompareString)
功能:由SI作為指針的源串與由DI作為指針的目的串(字或字節(jié))相比較(源串-目的串),但相減的結(jié)果只反映到標(biāo)志位上,而不送至任何一個(gè)操作數(shù)。同時(shí)相應(yīng)地修改源和目的串指針,指向串中的下一個(gè)元素。操作CMPSB;CMP[SI],ES:[DI]INCDI/DECDI INCSI/DECSICMPSW;CMP[SI],ES:[DI]ADDDI,2/SUBDI,2ADDSI,2/SUBSI,2說明:1)標(biāo)志位A、C、O、P、S和Z反映了目的串元素和源串元素之間的關(guān)系。2)這個(gè)指令可以用來檢查兩個(gè)串是否相同。通常在此指令之后,應(yīng)有一個(gè)條件轉(zhuǎn)移指令。2/5/202318(3)SCAS(ScanString)
功能:搜索串指令,關(guān)鍵字放在AL(字節(jié))或AX(字)中,操作時(shí)從AL(字節(jié)操作)或AX(字操作)的內(nèi)容中減去由DI作為指針的目的串元素,結(jié)果反映在標(biāo)志位上,但并不改變目的串元素以及累加器中的值。操作SCASB;CMPAL,ES:[DI] INCDI/DECDISCASW;CMPAX,ES:[DI]ADDDI,2/SUBDI,2說明:標(biāo)志位A、C、O、P、S和Z中反映了在AL或AX中的搜索值與串元素之間的關(guān)系。2/5/202319(4)LODS(LoadString)功能:本指令把由SI作為指針的串元素,傳送至AL(字節(jié)操作)或AX(字操作),同時(shí)修改SI指向串中的下一個(gè)元素。操作LODSB;MOVAL,[SI] INCSI/DECSILODSW;MOVAX,[SI]ADDSI,2/SUBSI,2說明:1)這個(gè)指令正常情況下是不重復(fù)執(zhí)行的,因?yàn)槊恐貜?fù)一次,累加器中的內(nèi)容就要改寫,只保留最后一個(gè)元素。2)此指令對(duì)標(biāo)志位無影響。2/5/202320(5)STOS(StoreString)
功能:從累加器AL(字節(jié)操作)或AX(字操作)傳送一個(gè)字節(jié)或字,到由DI作為指針的目的串中,同時(shí)修改DI以指向串中的下一個(gè)單元。操作STOSB;MOVES:[DI],AL;INCDI/DECDISTOSW;MOVES:[DI],AX;ADDDI,2/SUBDI,2說明:1)可以在串中建立一串相同的值,初始化字符串單元。2)此指令對(duì)標(biāo)志位無影響。2/5/202321(6)重復(fù)前綴
1)REP
(1)操作:判斷CX是否為0,若為0,結(jié)束;否則CX減1,重復(fù)其后的串操作
(2)用在指令MOVS和STOS之前
MOV CX,100MOV CX,100
NEXT: MOVSBREP MOVSB
LOOP NEXT
2/5/202322(6)重復(fù)前綴
2)REPZ/REPE
(1)操作:判斷CX=0或ZF=0,若CX為0或不等,結(jié)束;否則CX減1,重復(fù)其后的串操作
(2)用在指令CMPS和SCAS之前
3)REPNE/REPNZ
(1)操作:判斷CX=0或ZF=1,若CX為0或相等,結(jié)束;否則CX減1,重復(fù)其后的串操作
(2)用在指令SCAS之前2/5/202323例:將數(shù)據(jù)段中從AREA1開始存放的100個(gè)字節(jié)數(shù)搬到附加段以AREA2為首址的區(qū)域中。方法一:采用MOV指令 例方法二:采用MOVS指令 例方法三:采用重復(fù)前綴串指令例2/5/202324方法一:
LEA SI,AREA1 LEA DI,AREA2 MOV CX,100AGAIN: MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI DEC CX JNZ AGAIN
返回2/5/202325方法二: MOV SI,OFFSETAREA1 MOV DI,OFFSETAREA2 MOV CX,100 CLDAGAIN: MOVSB DEC CX JNZ AGAIN
返回2/5/202326方法三:
LEA SI,AREA1 LEA DI,AREA2 MOV CX,100 CLD REP MOVSB
返回2/5/202327例2:數(shù)據(jù)塊移動(dòng),從AREA1送到AREA2情況一:源串首地址<目的串首地址,且無重疊情況二:源串首地址>目的串首地址,且無重疊情況三:源串首地址<目的串首地址,且重疊情況四:源串首地址>目的串首地址,且重疊2/5/202328只能以減址方式傳送
STD LEA SI,AREA1+N-1 LEA DI,AREA2+N-1 MOV CX,N REP MOVSB2/5/202329
只能以增址方式傳送
CLD LEA SI,AREA1 LEA DI,AREA2 MOV CX,N REP MOVSB 2/5/202330例:編寫程序比較
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 咸寧職業(yè)技術(shù)學(xué)院《自然地理學(xué)一》2023-2024學(xué)年第一學(xué)期期末試卷
- 武漢職業(yè)技術(shù)學(xué)院《土地統(tǒng)計(jì)與R語(yǔ)言》2023-2024學(xué)年第一學(xué)期期末試卷
- 武漢工貿(mào)職業(yè)學(xué)院《中級(jí)日語(yǔ)聽說》2023-2024學(xué)年第一學(xué)期期末試卷
- 新疆建設(shè)職業(yè)技術(shù)學(xué)院《環(huán)境微生物實(shí)驗(yàn)技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年跨境電商物流服務(wù)合同協(xié)議書
- 二零二五年度廠房安全檢查與整改合同模板3篇
- 2024我國(guó)電子商務(wù)平臺(tái)服務(wù)商合作協(xié)議依法簽訂3篇
- 2024物品寄售及電商合作運(yùn)營(yíng)合同范本3篇
- 二零二五版果園廢棄物資源化利用與環(huán)保合作協(xié)議3篇
- 2024年高級(jí)人工智能語(yǔ)音識(shí)別技術(shù)轉(zhuǎn)讓合同
- 高速公路初步設(shè)計(jì)匯報(bào)課件
- 航空油料計(jì)量統(tǒng)計(jì)員(初級(jí))理論考試復(fù)習(xí)題庫(kù)大全-上(單選題匯總)
- 申根簽證申請(qǐng)表模板
- 企業(yè)會(huì)計(jì)準(zhǔn)則、應(yīng)用指南及附錄2023年8月
- 2022年浙江省事業(yè)編制招聘考試《計(jì)算機(jī)專業(yè)基礎(chǔ)知識(shí)》真題試卷【1000題】
- 認(rèn)養(yǎng)一頭牛IPO上市招股書
- GB/T 3767-2016聲學(xué)聲壓法測(cè)定噪聲源聲功率級(jí)和聲能量級(jí)反射面上方近似自由場(chǎng)的工程法
- GB/T 23574-2009金屬切削機(jī)床油霧濃度的測(cè)量方法
- 動(dòng)物生理學(xué)-全套課件(上)
- 河北省衡水市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- DB32-T 2665-2014機(jī)動(dòng)車維修費(fèi)用結(jié)算規(guī)范-(高清現(xiàn)行)
評(píng)論
0/150
提交評(píng)論