版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
3.2.3邏輯指令
邏輯指令包括邏輯運(yùn)算指令和移位指令。由于它們都是按位進(jìn)行操作的,故又稱位操作指令。邏輯指令以二進(jìn)制位為基本單位進(jìn)行數(shù)據(jù)運(yùn)算,屬于常用指令,應(yīng)該熟練掌握。要特別注意這些指令對標(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),而對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),而對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),而對AF未定義2/5/20235TEST測試指令指令格式:TESTOPR1,OPR2指令功能:TEST指令將兩個操作數(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:使一個操作數(shù)中的若干位維持不變,而另外若干位清0;2)OR:使一個操作數(shù)中的若干位維持不變,而另外若干位置1;3)XOR:使一個操作數(shù)中的若干位維持不變,而另外若干位取反;4)TEST:用來檢測某些位是否為1,但又不改變原操作數(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ù)中的所有各位向左或向右移若干位,所移動的位數(shù)由記數(shù)值CNT確定。當(dāng)只移1位時CNT為立即數(shù)1,若移多位,則將移位個數(shù)置于CL寄存器中。移位(含循環(huán)移位)指令對狀態(tài)位的影響是:CF位根據(jù)指令規(guī)則設(shè)置;OF位只有當(dāng)CNT=1時有效,在移位后最高有效位的值發(fā)生變化時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例:編寫程序段實現(xiàn)AX中的內(nèi)容乘10,結(jié)果存放在AX中.分析:將一個數(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ù)存儲單元。特點:1)每條串指令有以字和字節(jié)形式來做重復(fù)處理2)成對使用ES:DI或DS:SI寄存器,DS:SI指向源串,ES:DI指向目的串3)指令自動調(diào)整SI和DI的值,但按增量還是按減量修改,取決于標(biāo)志位DF4)方向標(biāo)志DF控制操作方向,DF=1,減址;DF=0,增址5)任何一個串操作指令,可以在前面加上一個重復(fù)操作前綴,于是指令就重復(fù)執(zhí)行,直至在寄存器CX中的操作次數(shù)滿足要求為止。2/5/202316(1)MOVS(MoveString)
功能:把由SI作為指針的源串中的一個字節(jié)或字,傳送至由DI作為指針的目的串,并且相應(yīng)地修改指針,以指向串中的下一個元素。操作:
MOVSB;MOVAL,[SI]MOVES:[DI],ALINCDI/DECDIINCSI/DECSIMOVSW;MOVAX,[SI]MOVES:[DI],AXADDDI,2/SUBDI,2ADDSI,2/SUBSI,2
說明:此指令對標(biāo)志位無影響。2/5/202317(2)CMPS(CompareString)
功能:由SI作為指針的源串與由DI作為指針的目的串(字或字節(jié))相比較(源串-目的串),但相減的結(jié)果只反映到標(biāo)志位上,而不送至任何一個操作數(shù)。同時相應(yīng)地修改源和目的串指針,指向串中的下一個元素。操作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)這個指令可以用來檢查兩個串是否相同。通常在此指令之后,應(yīng)有一個條件轉(zhuǎn)移指令。2/5/202318(3)SCAS(ScanString)
功能:搜索串指令,關(guān)鍵字放在AL(字節(jié))或AX(字)中,操作時從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(字操作),同時修改SI指向串中的下一個元素。操作LODSB;MOVAL,[SI] INCSI/DECSILODSW;MOVAX,[SI]ADDSI,2/SUBSI,2說明:1)這個指令正常情況下是不重復(fù)執(zhí)行的,因為每重復(fù)一次,累加器中的內(nèi)容就要改寫,只保留最后一個元素。2)此指令對標(biāo)志位無影響。2/5/202320(5)STOS(StoreString)
功能:從累加器AL(字節(jié)操作)或AX(字操作)傳送一個字節(jié)或字,到由DI作為指針的目的串中,同時修改DI以指向串中的下一個單元。操作STOSB;MOVES:[DI],AL;INCDI/DECDISTOSW;MOVES:[DI],AX;ADDDI,2/SUBDI,2說明:1)可以在串中建立一串相同的值,初始化字符串單元。2)此指令對標(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個字節(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ù)塊移動,從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等.壓縮文件請下載最新的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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧省沈陽市重點高中協(xié)作校2025屆高三第二次聯(lián)考數(shù)學(xué)試卷含解析
- 河南洛陽市2025屆高考數(shù)學(xué)全真模擬密押卷含解析
- 內(nèi)蒙古烏蘭察布市集寧區(qū)2025屆高考英語二模試卷含解析
- 云南省隆陽區(qū)二中2025屆高三第一次模擬考試英語試卷含解析
- 福建省泉州市永春一中2025屆高三第五次模擬考試英語試卷含解析
- 云南省楚雄市古城二中2025屆高三第四次模擬考試數(shù)學(xué)試卷含解析
- GB/T 21200-2024激光打印機(jī)干式雙組分顯影劑用墨粉
- 2025屆福建省福州永泰第一中學(xué)高考考前提分語文仿真卷含解析
- 工作總結(jié)之放射科實習(xí)總結(jié)
- 工作總結(jié)之東風(fēng)生產(chǎn)實習(xí)總結(jié)
- 像工程師那樣 教學(xué)設(shè)計-2023-2024學(xué)年科學(xué)五年級上冊蘇教版
- 成語故事《打草驚蛇》故事簡介
- GB 1002-2024家用和類似用途單相插頭插座型式、基本參數(shù)和尺寸
- 14、《白楊禮贊》省公開課一等獎全國示范課微課金獎?wù)n件
- 人教版五年級上冊小數(shù)乘除法豎式計算題200道及答案
- NB/T 11460-2023礦用瞬變電磁超前探測儀技術(shù)條件
- 創(chuàng)新設(shè)計前沿智慧樹知到期末考試答案章節(jié)答案2024年浙江大學(xué)
- 計算機(jī)設(shè)備出租行業(yè)發(fā)展趨勢及前景展望分析報告
- 體育賽事合作終止協(xié)議模板
- 電工四級題庫+答案
- 天津市河?xùn)|區(qū)2022-2023學(xué)年七年級上學(xué)期期末地理試題
評論
0/150
提交評論