43第4章算術(shù)邏輯運算類ppt課件_第1頁
43第4章算術(shù)邏輯運算類ppt課件_第2頁
43第4章算術(shù)邏輯運算類ppt課件_第3頁
43第4章算術(shù)邏輯運算類ppt課件_第4頁
43第4章算術(shù)邏輯運算類ppt課件_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第4 4章章算術(shù)運算類指令用來執(zhí)行二進制的算術(shù)運算術(shù)運算類指令用來執(zhí)行二進制的算術(shù)運算:加減乘除。算:加減乘除。這類指令會根據(jù)運算結(jié)果影響狀態(tài)標志,這類指令會根據(jù)運算結(jié)果影響狀態(tài)標志,有時要利用某些標志才能得到正確的結(jié)果;有時要利用某些標志才能得到正確的結(jié)果;使用他們時請留心有關(guān)狀態(tài)標志使用他們時請留心有關(guān)狀態(tài)標志重點掌握重點掌握加法指令:加法指令:ADDADD、ADCADC、INC INC 減法指令:減法指令:SUB SUB 、SBBSBB、DECDEC、CMPCMP、NEGNEG4.3.2 4.3.2 算術(shù)運算類指令算術(shù)運算類指令算術(shù)運算類指令算術(shù)運算類指令加法指令加法指令:ADD, A

2、DC:ADD, ADC和和INCINC減法指令減法指令:SUB, SBB, DEC, NEG:SUB, SBB, DEC, NEG和和CMPCMP他們分別執(zhí)行字或字節(jié)的加法和減法運算,他們分別執(zhí)行字或字節(jié)的加法和減法運算,除除INCINC和和DECDEC不影響不影響CFCF標志外,其他按定義標志外,其他按定義影響全部狀態(tài)標志位影響全部狀態(tài)標志位操作數(shù)組合:操作數(shù)組合:運算指令助記符運算指令助記符 reg, imm/reg/memreg, imm/reg/mem運算指令助記符運算指令助記符 mem, imm/regmem, imm/reg4.3.2.1 4.3.2.1 加法和減法指令加法和減法指

3、令ADD dest,src;加法:;加法:destdestsrc;ADD指令使目的操作數(shù)加上源操作數(shù),指令使目的操作數(shù)加上源操作數(shù),和的結(jié)果送到目的操作數(shù)和的結(jié)果送到目的操作數(shù)SUB dest,src;減法:;減法:destdestsrc;SUB指令使目的操作數(shù)減去源操作數(shù),指令使目的操作數(shù)減去源操作數(shù),差的結(jié)果送到目的操作數(shù)差的結(jié)果送到目的操作數(shù)1. 1. 加和減指令加和減指令MOV AX,7348H;AX7348HADD AL,27H;AL48H27H6FH,AX736FH;OF0,SF0,ZF0,PF1,CF0ADD AX,3fffH;AX736FH3FFFHB36EH;OF1,SF1,

4、ZF0,PF0,CF0例例4 4 加法加法SUB AH,0F0H;AHB3HF0HC3H,AXC36EH;OF0,SF1,ZF0,PF1,CF1MOV word ptr200H,0EF00H;200HEF00H,標志不變,標志不變SUB 200H,AX;200HEF00HC36EH2B92H;OF0,SF0,ZF0,PF0,CF0SUB SI,SI ;SI0;OF0,SF0,ZF1,PF1,CF0例例5 5 減法減法ADC dest,src;加法:;加法:destdestsrcCF;ADC指令除完成指令除完成ADD加法運算外,還加法運算外,還要加上進位要加上進位CF,結(jié)果送到目的操作數(shù),結(jié)果送

5、到目的操作數(shù)SBB dest,src;減法:;減法:destdestsrcCF;SBB指令除完成指令除完成SUB減法運算外,還減法運算外,還要減去借位要減去借位CF,結(jié)果送到目的操作數(shù),結(jié)果送到目的操作數(shù)2. 2. 帶進位加和減指令帶進位加和減指令MOV AX,7856H;AX7856HMOV DX,8234H;DX8234HADD AX,8998H;AX01EEH,CF1ADC DX,1234H;DX9469H,CF0SUB AX,4491H;AXBD5DH,CF1SBB DX,8000H;DX1468H,CF0例例6 6 無符號雙字加法和減法無符號雙字加法和減法CMP dest,src ;

6、做減法運算:;做減法運算:destsrc;CMP指令將目的操作數(shù)減去源操作數(shù),指令將目的操作數(shù)減去源操作數(shù),但差值不回送目的操作數(shù)但差值不回送目的操作數(shù)比較指令通過減法運算影響狀態(tài)標志,用于比較指令通過減法運算影響狀態(tài)標志,用于比較兩個操作數(shù)的大小關(guān)系,后面跟轉(zhuǎn)移比較兩個操作數(shù)的大小關(guān)系,后面跟轉(zhuǎn)移指令指令判 斷 兩 個 無 符 號 數(shù) 大 小 用判 斷 兩 個 無 符 號 數(shù) 大 小 用 J C / J N C 或或JA/JNBE或或JB/JNAE指令指令判 斷 兩 個 帶 符 號 數(shù) 大 小 用判 斷 兩 個 帶 符 號 數(shù) 大 小 用 JG/JNLE或或JL/JNGE3. 3. 比較指令

7、比較指令CMPCMPcomparecompare)INC reg/mem;增量加;增量加1):):reg/memreg/mem1DEC reg/mem;減量減;減量減1):):reg/memreg/mem1INC指令和指令和DEC指令是單操作數(shù)指令指令是單操作數(shù)指令與加法和減法指令實現(xiàn)的加與加法和減法指令實現(xiàn)的加1和減和減1不同的是:不同的是:INC和和DEC不影響不影響CF標志標志INC SI;SISI1DEC byte ptr SI ;SISI14. 4. 增量和減量指令增量和減量指令例例7 7 比較指令比較指令CMPCMPcomparecompare)NEG reg/mem ;reg/m

8、em0reg/memNEG指令對操作數(shù)執(zhí)行求補運算,即用零減去指令對操作數(shù)執(zhí)行求補運算,即用零減去操作數(shù),然后結(jié)果返回操作數(shù)操作數(shù),然后結(jié)果返回操作數(shù)求補運算可表達成:將操作數(shù)按位取反后加求補運算可表達成:將操作數(shù)按位取反后加1NEG指令對標志的影響與用零作減法的指令對標志的影響與用零作減法的SUB指指令一樣令一樣NEG指令也是一個單操作數(shù)指令指令也是一個單操作數(shù)指令NEG指令執(zhí)行的結(jié)果一般總是使指令執(zhí)行的結(jié)果一般總是使CF1除非操除非操作數(shù)為作數(shù)為0時時CF05. 5. 求補指令求補指令NEGNEGnegtivenegtive)MOV AX,0FF64HNEG AL;AL064H9CH,AX

9、FF9CH;OF0SF1,ZF0,PF1,CF1SUB AL,9DH;ALFFH,AXFFFFH;OF0,SF1,ZF0,PF1,CF1NEG AX;AX0FFFFH0001H;OF0,SF0,ZF0,PF0,CF1DEC AL;AL01H10,AX0000H;OF0,SF0,ZF1,PF1,CF1NEG AX;AX000;OF0,SF0,ZF1,PF1,CF0例例8 8 求補運算求補運算十進制數(shù)調(diào)整指令對二進制運算的結(jié)果進十進制數(shù)調(diào)整指令對二進制運算的結(jié)果進行十進制調(diào)整,以得到十進制的運算結(jié)果,行十進制調(diào)整,以得到十進制的運算結(jié)果,以此實現(xiàn)十進制以此實現(xiàn)十進制BCDBCD碼運算碼運算8086

10、8086指令系統(tǒng)支持兩種指令系統(tǒng)支持兩種BCDBCD碼調(diào)整運算碼調(diào)整運算壓縮壓縮BCDBCD碼就是通常的碼就是通常的84218421碼;它用碼;它用4 4個二個二進制位表示一個十進制位,一個字節(jié)可以進制位表示一個十進制位,一個字節(jié)可以表示兩個十進制位,即表示兩個十進制位,即00009999非壓縮非壓縮BCDBCD碼用碼用8 8個二進制位表示一個十進個二進制位表示一個十進制位,只用低制位,只用低4 4個二進制位表示一個十進制個二進制位表示一個十進制位位0 09 9,高,高4 4位為位為0 04.3.2.2 4.3.2.2 十進制調(diào)整指令十進制調(diào)整指令十進制調(diào)整指令十進制調(diào)整指令乘法指令分無符號和

11、有符號乘法指令乘法指令分無符號和有符號乘法指令 MUL reg/mem;無符號乘法;無符號乘法 IMUL reg/mem;有符號乘法;有符號乘法AL或或AX與另一個操作數(shù)相乘,結(jié)果送到與另一個操作數(shù)相乘,結(jié)果送到AL和和AH兩個字節(jié)兩個字節(jié)相乘),或送到相乘),或送到AX和它的擴展部分和它的擴展部分DX兩個字相兩個字相乘)乘)除法指令分無符號和有符號除法指令除法指令分無符號和有符號除法指令 DIV reg/mem;無符號除法;無符號除法 IDIV reg/mem;有符號除法;有符號除法字節(jié)除法:字節(jié)除法:AX源操作數(shù)源操作數(shù)8位),商在位),商在AL中,余中,余數(shù)在數(shù)在AH中中字除法:字除法:

12、DX,AX 源操作數(shù)源操作數(shù)16位),商在位),商在AX中,中,余數(shù)余數(shù)DX中中4.3.2.3 4.3.2.3 乘法和除法指令乘法和除法指令真值十進制)真值十進制)864二進制編碼二進制編碼08H 40H壓縮壓縮BCD碼碼08H 64H非壓縮非壓縮BCD碼碼 08H 0604HASCII碼碼38H 3634H壓縮壓縮BCD碼加減法調(diào)整指令碼加減法調(diào)整指令DAA DAS非壓縮非壓縮BCD碼加減法調(diào)整指令碼加減法調(diào)整指令AAA AAS AAM AAD編碼的比較編碼的比較位操作類指令以二進制位為基本單位進行數(shù)據(jù)的位操作類指令以二進制位為基本單位進行數(shù)據(jù)的操作操作當需要對字節(jié)或字數(shù)據(jù)中的各個二進制位操

13、作時,當需要對字節(jié)或字數(shù)據(jù)中的各個二進制位操作時,可以考慮采用位操作類指令可以考慮采用位操作類指令注意這些指令對標志位的影響注意這些指令對標志位的影響1. 邏輯運算指令邏輯運算指令AND OR XOR NOT TEST2. 移位指令移位指令SHL SHR SAR SAL3. 循環(huán)移位指令循環(huán)移位指令ROL ROR RCL RCR4.3.3 4.3.3 邏輯運算指令邏輯運算指令雙操作數(shù)邏輯指令雙操作數(shù)邏輯指令AND、OR、XOR和和TEST,根據(jù)結(jié)果設置根據(jù)結(jié)果設置SF、ZF和和PF狀態(tài),而對狀態(tài),而對AF未未定義;指令的執(zhí)行使定義;指令的執(zhí)行使CFOF0 :運算指令助記符運算指令助記符 reg

14、, imm/reg/mem運算指令助記符運算指令助記符 mem, imm/reg 單操作數(shù)邏輯指令單操作數(shù)邏輯指令NOT不影響標志位:不影響標志位:NOT reg/mem4.3.3.1 4.3.3.1 邏輯運算指令邏輯運算指令對兩個操作數(shù)執(zhí)行邏輯與運算,結(jié)果送目的操作數(shù)對兩個操作數(shù)執(zhí)行邏輯與運算,結(jié)果送目的操作數(shù)AND dest,srcAND dest,src;destdestsrcdestdestsrc 只有相只有相“與的兩位都與的兩位都是是1,結(jié)果才是,結(jié)果才是1;否則,;否則,“與的結(jié)果為與的結(jié)果為01. 1. 邏輯與指令邏輯與指令ANDAND對兩個操作數(shù)執(zhí)行邏輯或運算,結(jié)果送目的操作數(shù)

15、對兩個操作數(shù)執(zhí)行邏輯或運算,結(jié)果送目的操作數(shù)OR dest,srcOR dest,src;destdestsrcdestdestsrc只要相只要相“或的兩位或的兩位有一位是有一位是1 1,結(jié)果就是,結(jié)果就是1 1;否則,結(jié)果為否則,結(jié)果為0 02. 2. 邏輯或指令邏輯或指令OROR對兩個操作數(shù)執(zhí)行邏輯異或運算,結(jié)果送目的操作數(shù)對兩個操作數(shù)執(zhí)行邏輯異或運算,結(jié)果送目的操作數(shù)XOR dest,srcXOR dest,src;destdestsrcdestdestsrc只有相只有相“異或的兩異或的兩位不相同,結(jié)果才是位不相同,結(jié)果才是1 1;否則,結(jié)果為否則,結(jié)果為0 03. 3. 邏輯異或指令邏

16、輯異或指令XORXOR對兩個操作數(shù)執(zhí)行邏輯與運算,結(jié)果并不送對兩個操作數(shù)執(zhí)行邏輯與運算,結(jié)果并不送目的操作數(shù),僅按目的操作數(shù),僅按ANDAND指令影響標志指令影響標志TEST dest,srcTEST dest,src;destsrcdestsrc AND與與TEST指令的關(guān)系,指令的關(guān)系,同同SUB與與CMP指令的關(guān)系一樣指令的關(guān)系一樣4. 4. 測試指令測試指令TESTTEST對一個操作數(shù)執(zhí)行邏輯非運算對一個操作數(shù)執(zhí)行邏輯非運算NOT reg/memNOT reg/mem;reg/memreg/memreg/memreg/mem 按位取反,原來是按位取反,原來是“0的位變?yōu)榈奈蛔優(yōu)椤?”;

17、原來是原來是“1的位變的位變?yōu)闉椤?”5. 5. 邏輯非指令邏輯非指令NOTNOTMOV AL,75H;AL75HAND AL,32H;AL30H;CFOF0, SF0,ZF0,PF1OR AL,71H ;AL71H;CFOF0,SF0,ZF0,PF1XOR AL,0F1H;AL80H;CFOF0,SF1,ZF0,PF0NOT AL;AL7FH,標志不變,標志不變例例9 9 邏輯運算邏輯運算AND BL,11110110B;BL中中D0和和D3清清0,其余位不變,其余位不變OR BL,00001001B;BL中中D0和和D3置置1,其余位不變,其余位不變XOR BL,00001001B;BL中

18、中D0和和D3求反,其余位不變求反,其余位不變 AND指令可用于復位某些位同指令可用于復位某些位同0相與),不影響其他位相與),不影響其他位 OR指令可用于置位某些位同指令可用于置位某些位同1相或),不影響其他位相或),不影響其他位 XOR指令可用于求反某些位同指令可用于求反某些位同1相異或),不影響其他位相異或),不影響其他位例例10 10 邏輯運算指令的應用邏輯運算指令的應用將操作數(shù)移動一位或多位,分成邏輯移位將操作數(shù)移動一位或多位,分成邏輯移位和算術(shù)移位,分別具有左移或右移操作和算術(shù)移位,分別具有左移或右移操作移位指令的第一個操作數(shù)是指定的被移位移位指令的第一個操作數(shù)是指定的被移位的操作

19、數(shù),可以是寄存器或存儲單元;后的操作數(shù),可以是寄存器或存儲單元;后一個操作數(shù)表示移位位數(shù):一個操作數(shù)表示移位位數(shù):該操作數(shù)為該操作數(shù)為1 1,表示移動一位,表示移動一位該操作數(shù)為該操作數(shù)為CLCL,CLCL寄存器值表示移位位數(shù)寄存器值表示移位位數(shù) (移位位數(shù)大于(移位位數(shù)大于1 1只能用只能用CLCL表示)表示)按照移入的位設置進位標志按照移入的位設置進位標志CFCF,根據(jù)移位,根據(jù)移位后的結(jié)果影響后的結(jié)果影響SFSF、ZFZF、PFPF4.3.3.2 4.3.3.2 移位指令移位指令SHL reg/mem,1/CL;reg/mem左移左移1或或CL位位;最低位補;最低位補0,最高位進入,最高

20、位進入CF演示演示1. 1. 邏輯左移指令邏輯左移指令SHLSHLSHR reg/mem,1/CL;reg/mem右移右移1/CL位位;最高位補;最高位補0,最低位進入,最低位進入CF演示演示2. 2. 邏輯右移指令邏輯右移指令SHRSHRSAL reg/mem,1/CL;與;與SHL是同一條指令是同一條指令演示演示3. 3. 算術(shù)左移指令算術(shù)左移指令SALSALSAR reg/mem,1/CL;reg/mem右移右移1/CL位位;最高位不變,最低位進入;最高位不變,最低位進入CF演示演示4. 4. 算術(shù)右移指令算術(shù)右移指令SARSARMOV DX,6075H;DX01100000 01110

21、101BS H L D X , 1; D X 11 0 0 0 0 0 0 11101010B;CF0,SF1、ZF0、PF0S A R D X , 1; D X 111 0 0 0 0 0 01110101B;CF0,SF1、ZF0、PF0S H R D X , 1; D X 0 111 0 0 0 0 00111010B;CF1,SF0、ZF0、PF1MOV CL,4;CL4,標志不變,標志不變S A R D X , C L; D X 0 0 0 0 0 111 00000011B;CF1,SF0、ZF0、PF1例例11 11 數(shù)據(jù)移位數(shù)據(jù)移位XOR AH,AH;實現(xiàn);實現(xiàn)AH0,同時使,同時使CF0SHL AX,1;AX2ALMOV BX,AX;BXAX2ALSHL AX,1;AX4ALSHL AX,1;AX8ALADD AX,BX;AX8AL2AL10ALSUB AH,AHAND AH,0 邏輯左移一位相當于無符號數(shù)乘以邏輯左移一位相當于無符號數(shù)乘以2 邏輯右移一位相當于無符號數(shù)除以邏輯右移一位相當于無符號數(shù)除以2例例13 13 將將ALAL寄存器中的無符號數(shù)乘以寄存器中的無符號數(shù)乘以1010循環(huán)移位指令類似移位指令,但要將

溫馨提示

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

評論

0/150

提交評論