第3章 80868088的指令系統(tǒng)(位運(yùn)算、邏輯運(yùn)算)_第1頁
第3章 80868088的指令系統(tǒng)(位運(yùn)算、邏輯運(yùn)算)_第2頁
第3章 80868088的指令系統(tǒng)(位運(yùn)算、邏輯運(yùn)算)_第3頁
第3章 80868088的指令系統(tǒng)(位運(yùn)算、邏輯運(yùn)算)_第4頁
第3章 80868088的指令系統(tǒng)(位運(yùn)算、邏輯運(yùn)算)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

邏輯運(yùn)算和移位指令有兩類:邏輯運(yùn)算指令移位與循環(huán)指令位運(yùn)算指令類型指令指令功能表三位運(yùn)算指令列表邏輯運(yùn)算ANDd,sORd,sXORd,sNOTdTESTd,s

算術(shù)左移CF

0算術(shù)右移CF

邏輯左移CF

0邏輯右移CF0SALd,countSARd,countSHLd,countSHRd,count移位ddsddsddsddds,不送結(jié)果位運(yùn)算指令指令類型指令指令功能表三位運(yùn)算指令列表(續(xù))ROLd,countRORd,countRCRd,countRCLd,count循環(huán)左移CF

循環(huán)右移CF

帶進(jìn)位循環(huán)左移CF

CF循環(huán)帶進(jìn)位循環(huán)右移邏輯運(yùn)算指令共有5條:AND按位邏輯與OR按位邏輯或XOR按位邏輯異或TEST按位邏輯與,但不保存結(jié)果NOT按位取反

邏輯運(yùn)算指令A(yù)ND,OR和XOR指令

?

基本格式和功能指令格式:

AND(OR/XOR/TEST)d,s執(zhí)行的操作:

AND

(d)←(d)OR(s)

XOR

邏輯運(yùn)算指令A(yù)ND,OR和XOR指令

?

基本格式和功能常見邏輯運(yùn)算的規(guī)則如下列表格所示:與(AND):全1才1,有0就0或(OR):有1就1,全0才0異或(XOR):相同為0,相異為1

1

0

1

0

0

0

1

0AND

1

1

1

1

0

0

1

0OR

0

1

1

1

0

0

1

0XOR邏輯運(yùn)算指令A(yù)ND,OR和XOR指令

?

說明尋址方式:AND(OR,XOR,TEST)reg/mem,reg/mem

AND(OR,XOR,TEST)reg/mem,data說明:源S可以是通用寄存器、存儲器或立即數(shù);但d只能是通用寄存器或存儲器,不能為立即數(shù);而且d和s不能同時為存儲器操作數(shù)。邏輯運(yùn)算指令A(yù)ND,OR和XOR指令

?

說明測試指令TEST不將結(jié)果送回d,它只影響F寄存器;這4條指令均影響標(biāo)志位:SF、ZF、PF根據(jù)運(yùn)算結(jié)果設(shè)置相應(yīng)位;CF、OF總是置零;AF不確定。邏輯運(yùn)算指令NOT指令

?

基本格式和功能指令格式:

NOTd尋址方式:

NOTreg/mem邏輯運(yùn)算指令NOT指令

?功能&說明功能&說明:單操作數(shù)指令,對d進(jìn)行按位取反(0變1,1變0)操作;d可以是通用寄存器或存儲器操作數(shù);NOT指令對標(biāo)志寄存器各位均無影響;邏輯運(yùn)算指令?說明小結(jié):邏輯運(yùn)算指令都是按位進(jìn)行邏輯運(yùn)算的,可以對字節(jié)或字進(jìn)行邏輯運(yùn)算;邏輯運(yùn)算指令可用于組合、分離、屏蔽或設(shè)置某些位。邏輯運(yùn)算指令?例子例1:請分別寫出實現(xiàn)下列要求的指令:①使AL中高4位清零,低4位不變;②使AL中低4位清零,高4位不變;③使AL中最高位置1,其他位不變;④AL中低4位求反,其余各位不變。解:①ANDAL,0FH②ANDAL,0F0H③ORAL,80H④XORAL,0FH邏輯運(yùn)算指令?例子例2:請編制一程序段,將F寄存器中溢出位OF變反。解:程序如下:

PUSHFPOPAXXORAX,0800HPUSHAXPOPF邏輯運(yùn)算指令?例子例3:將AL清零,至少有以下幾種方法,它們有何不同?①MOVAL,00H②ANDAL,00H③XORAL,AL移位&循環(huán)指令共有以下8條:SHL(shiftlogicalleft)邏輯左移SAL(shiftarithmeticleft)算術(shù)左移SHR(shiftlogicalright)邏輯右移SAR(shiftarithmeticright)算術(shù)右移ROL(Rotateleft)循環(huán)左移ROR(Rotateright)循環(huán)右移RCL(Rotateleftthroughcarry)帶進(jìn)位循環(huán)左移RCR(Rotaterightthroughcarry)帶進(jìn)位循環(huán)右移移位&循環(huán)指令移位類指令的格式(詳見表三①②)

移位指令

d,Count移位類指令的尋址方式

移位指令

reg/mem,1/CL

移位&循環(huán)指令移位指令執(zhí)行的操作

(參見表三①)SHL,SAL和SHR(d)左(右)移Count位,移出的位進(jìn)入CF,移位造成的空位補(bǔ)0

SAR

(d)最高位不變,(d)右移Count位,移出的位進(jìn)入CF,移位造成的空位用最高位值填補(bǔ)。左右移位使乘,除2運(yùn)算變得簡單,算術(shù)右移可用于有符號數(shù)的除2運(yùn)算。移位&循環(huán)指令循環(huán)指令執(zhí)行的操作(詳見表三②)ROL和ROR(小循環(huán))

(d)循環(huán)左(右)移Count位,每移1位,移出的位從另一端進(jìn)入,同時進(jìn)入CF。

RCL和RCR(大循環(huán))

(d)循環(huán)左(右)移Count位,每移1位,CF從另一端進(jìn)入,移出的位進(jìn)入CF。移位&循環(huán)指令說明:各移位指令中的d可以是字或字節(jié),可以是寄存器或存儲器單元,但不能是立即數(shù)。指令中的Count指明移位的位數(shù),只能用兩種形式之一:1或CL帶進(jìn)位循環(huán)移位指令常用于多字節(jié)或多字的數(shù)據(jù)移位。移位&循環(huán)指令影響標(biāo)志位情況:移位指令根據(jù)移位結(jié)束后的結(jié)果修改CF、PF、ZF、SF和OF,而AF不確定;循環(huán)移位指令根據(jù)移位結(jié)束后結(jié)果僅修改CF和OF;如果移位/循環(huán)移位僅移一位,且移位前后操作數(shù)的最高位發(fā)生變化,那么OF置1,否則置0;如果移位/循環(huán)移位的位數(shù)大于1,則OF不確定。移位&循環(huán)指令例題例1:在AX中有符號數(shù)不大的情況下,利用算術(shù)移位指令進(jìn)行簡單的(AX)5/2運(yùn)算,可以用下述程序段:

MOVDX,AXSALAX,1;(AX)*2SALAX,1;(AX)*4ADDAX,DX;(AX)*5SARAX,1;(AX)*5/2移位&循環(huán)指令例題例2:由(DX):(AX)構(gòu)成的2個字?jǐn)?shù)據(jù)要左移2位,寫出實現(xiàn)此要求的指令序列。解:指令序列如下:

SALAX,1RCLDX,1SALAX,1RCLDX,1思考:用下列方法如何?

MOVCL,2

SALAX,CLRCLDX,CL移位&循環(huán)指令例題例3:將AX的高低8位換位,寫出指令序列。解:方法之一如下:

MOVCL,08HROLAX,CL方法二如下:

MOVCL,AHMOV

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論