《算術(shù)邏輯運(yùn)算類》PPT課件.ppt
《《算術(shù)邏輯運(yùn)算類》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《算術(shù)邏輯運(yùn)算類》PPT課件.ppt(49頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第4章 算術(shù)和邏輯運(yùn)算指令 算術(shù)運(yùn)算類指令用來(lái)執(zhí)行二進(jìn)制的算術(shù)運(yùn)算 加減乘除 這類指令會(huì)根據(jù)運(yùn)算結(jié)果影響狀態(tài)標(biāo)志 有時(shí)要利用某些標(biāo)志才能得到正確的結(jié)果 使用他們時(shí)請(qǐng)留心有關(guān)狀態(tài)標(biāo)志重點(diǎn)掌握加法指令 ADD ADC INC減法指令 SUB SBB DEC CMP NEG 4 3 2算術(shù)運(yùn)算類指令 算術(shù)運(yùn)算類指令 可處理 不帶符號(hào) 帶符號(hào)的8 16位二進(jìn)制數(shù)不帶符號(hào)的壓縮型 2位BCD碼 非壓縮型 一位BCD碼 高4位補(bǔ)0 十進(jìn)制數(shù) 對(duì)于加法和減法指令 帶符號(hào)和不帶符號(hào)的加減運(yùn)算的操作過(guò)程無(wú)區(qū)別 可用同一條加法 減法指令完成 對(duì)于乘法除法運(yùn)算 運(yùn)算過(guò)程完全不同 分別設(shè)有不帶符號(hào)和帶符號(hào)的乘法除法的指令 對(duì)于十進(jìn)制運(yùn)算 先采用二進(jìn)制運(yùn)算指令 后進(jìn)行十進(jìn)制調(diào)整的方式來(lái)實(shí)現(xiàn) 加法指令 ADD ADC和INC減法指令 SUB SBB DEC NEG和CMP他們分別執(zhí)行字或字節(jié)的加法和減法運(yùn)算 除INC和DEC不影響CF標(biāo)志外 其他按定義影響全部狀態(tài)標(biāo)志位操作數(shù)組合 運(yùn)算指令助記符reg imm reg mem運(yùn)算指令助記符mem imm reg 4 3 2 1加法和減法指令 ADDdest src 加法 dest dest src ADD指令使目的操作數(shù)加上源操作數(shù) 和的結(jié)果送到目的操作數(shù)SUBdest src 減法 dest dest src SUB指令使目的操作數(shù)減去源操作數(shù) 差的結(jié)果送到目的操作數(shù) 1 加和減指令 MOVAX 7348H AX 7348HADDAL 27H AL 48H 27H 6FH AX 736FH OF 0 SF 0 ZF 0 PF 1 CF 0ADDAX 3fffH AX 736FH 3FFFH B36EH OF 1 SF 1 ZF 0 PF 0 CF 0 例4加法 SUBAH 0F0H AH B3H F0H C3H AX C36EH OF 0 SF 1 ZF 0 PF 1 CF 1MOVwordptr 200H 0EF00H 200H EF00H 標(biāo)志不變SUB 200H AX 200H EF00H C36EH 2B92H OF 0 SF 0 ZF 0 PF 0 CF 0SUBSI SI SI 0 OF 0 SF 0 ZF 1 PF 1 CF 0 例5減法 ADCdest src 加法 dest dest src CF ADC指令除完成ADD加法運(yùn)算外 還要加上進(jìn)位CF 結(jié)果送到目的操作數(shù)SBBdest src 減法 dest dest src CF SBB指令除完成SUB減法運(yùn)算外 還要減去借位CF 結(jié)果送到目的操作數(shù) 2 帶進(jìn)位加和減指令 MOVAX 7856H AX 7856HMOVDX 8234H DX 8234HADDAX 8998H AX 01EEH CF 1ADCDX 1234H DX 9469H CF 0SUBAX 4491H AX BD5DH CF 1SBBDX 8000H DX 1468H CF 0 例6無(wú)符號(hào)雙字加法和減法 CMPdest src 做減法運(yùn)算 dest src CMP指令將目的操作數(shù)減去源操作數(shù) 但差值不回送目的操作數(shù)比較指令通過(guò)減法運(yùn)算影響狀態(tài)標(biāo)志 用于比較兩個(gè)操作數(shù)的大小關(guān)系 后面跟轉(zhuǎn)移指令判斷兩個(gè)無(wú)符號(hào)數(shù)大小用JC JNC或JA JNBE或JB JNAE指令判斷兩個(gè)帶符號(hào)數(shù)大小用JG JNLE或JL JNGE 3 比較指令CMP compare INCreg mem 增量 加1 reg mem reg mem 1DECreg mem 減量 減1 reg mem reg mem 1INC指令和DEC指令是單操作數(shù)指令與加法和減法指令實(shí)現(xiàn)的加1和減1不同的是 INC和DEC不影響CF標(biāo)志 INCSI SI SI 1DECbyteptr SI SI SI 1 4 增量和減量指令 例7比較指令CMP compare 若自BLOCK開始的內(nèi)存緩沖區(qū)中 有100個(gè)帶符號(hào)字?jǐn)?shù)據(jù) 要找出其中的最大數(shù) 把它存到MAX單元中 MOVBX OFFSETBLOCKMOVAX BX INCBXINCBXMOVCX 99AGAIN CMPAX BX JGNEXTMOVAX BX NEXT INCBX INCBXDECCXJNZAGAINMOVMAX AXHLT NEGreg mem reg mem 0 reg memNEG指令對(duì)操作數(shù)執(zhí)行求補(bǔ)運(yùn)算 即用零減去操作數(shù) 然后結(jié)果返回操作數(shù)求補(bǔ)運(yùn)算可表達(dá)成 將操作數(shù)按位取反后加1NEG指令對(duì)標(biāo)志的影響與用零作減法的SUB指令一樣NEG指令也是一個(gè)單操作數(shù)指令NEG指令執(zhí)行的結(jié)果一般總是使CF 1除非操作數(shù)為0時(shí)CF 0 5 求補(bǔ)指令NEG negtive MOVAX 0FF64HNEGAL AL 0 64H 9CH AX FF9CH OF 0SF 1 ZF 0 PF 1 CF 1SUBAL 9DH AL FFH AX FFFFH OF 0 SF 1 ZF 0 PF 1 CF 1NEGAX AX 0 FFFFH 0001H OF 0 SF 0 ZF 0 PF 0 CF 1DECAL AL 01H 1 0 AX 0000H OF 0 SF 0 ZF 1 PF 1 CF 1NEGAX AX 0 0 0 OF 0 SF 0 ZF 1 PF 1 CF 0 例8求補(bǔ)運(yùn)算 十進(jìn)制數(shù)調(diào)整指令對(duì)二進(jìn)制運(yùn)算的結(jié)果進(jìn)行十進(jìn)制調(diào)整 以得到十進(jìn)制的運(yùn)算結(jié)果 以此實(shí)現(xiàn)十進(jìn)制BCD碼運(yùn)算8086指令系統(tǒng)支持兩種BCD碼調(diào)整運(yùn)算壓縮BCD碼就是通常的8421碼 它用4個(gè)二進(jìn)制位表示一個(gè)十進(jìn)制位 一個(gè)字節(jié)可以表示兩個(gè)十進(jìn)制位 即00 99非壓縮BCD碼用8個(gè)二進(jìn)制位表示一個(gè)十進(jìn)制位 只用低4個(gè)二進(jìn)制位表示一個(gè)十進(jìn)制位0 9 高4位為0 4 3 2 2十進(jìn)制調(diào)整指令 十進(jìn)制調(diào)整指令 DAA DAS指令 十進(jìn)制調(diào)整指令它跟在ADD ADC或SUB SBB之后 功能是將AL中十進(jìn)制數(shù)相加 減后的結(jié)果進(jìn)行校正 產(chǎn)生一個(gè)組合的十進(jìn)制和 差 仍保留在AL中 AAA AAS指令 十進(jìn)制調(diào)整指令它跟在ADD ADC或SUB SBB之后 對(duì)AL中兩個(gè)未組合的十進(jìn)制數(shù)相加 減后的結(jié)果進(jìn)行校正 產(chǎn)生一個(gè)未組合的十進(jìn)制和 差 仍保留在AL中 乘法指令分無(wú)符號(hào)和有符號(hào)乘法指令MULreg mem 無(wú)符號(hào)乘法IMULreg mem 有符號(hào)乘法AL或AX與另一個(gè)操作數(shù)相乘 結(jié)果送到AL和AH 兩個(gè)字節(jié)相乘 或送到AX和它的擴(kuò)展部分DX 兩個(gè)字相乘 除法指令分無(wú)符號(hào)和有符號(hào)除法指令DIVreg mem 無(wú)符號(hào)除法IDIVreg mem 有符號(hào)除法字節(jié)除法 AX 源操作數(shù) 8位 商在AL中 余數(shù)在AH中字除法 DX AX 源操作數(shù) 16位 商在AX中 余數(shù)DX中 4 3 2 3乘法和除法指令 真值 十進(jìn)制 864二進(jìn)制編碼08H40H壓縮BCD碼08H64H非壓縮BCD碼08H0604HASCII碼38H3634H 壓縮BCD碼加減法調(diào)整指令DAADAS非壓縮BCD碼加減法調(diào)整指令A(yù)AAAASAAMAAD 編碼的比較 位操作類指令以二進(jìn)制位為基本單位進(jìn)行數(shù)據(jù)的操作當(dāng)需要對(duì)字節(jié)或字?jǐn)?shù)據(jù)中的各個(gè)二進(jìn)制位操作時(shí) 可以考慮采用位操作類指令注意這些指令對(duì)標(biāo)志位的影響1 邏輯運(yùn)算指令A(yù)NDORXORNOTTEST2 移位指令SHLSHRSARSAL3 循環(huán)移位指令ROLRORRCLRCR 4 3 3邏輯運(yùn)算指令 雙操作數(shù)邏輯指令A(yù)ND OR XOR和TEST 根據(jù)結(jié)果設(shè)置SF ZF和PF狀態(tài) 而對(duì)AF未定義 指令的執(zhí)行使CF OF 0 運(yùn)算指令助記符reg imm reg mem運(yùn)算指令助記符mem imm reg單操作數(shù)邏輯指令NOT不影響標(biāo)志位 NOTreg mem 4 3 3 1邏輯運(yùn)算指令 對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯與運(yùn)算 結(jié)果送目的操作數(shù) ANDdest src dest dest src 只有相 與 的兩位都是1 結(jié)果才是1 否則 與 的結(jié)果為0 1 邏輯與指令A(yù)ND 對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯或運(yùn)算 結(jié)果送目的操作數(shù) ORdest src dest dest src 只要相 或 的兩位有一位是1 結(jié)果就是1 否則 結(jié)果為0 2 邏輯或指令OR 對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯異或運(yùn)算 結(jié)果送目的操作數(shù) XORdest src dest dest src 只有相 異或 的兩位不相同 結(jié)果才是1 否則 結(jié)果為0 3 邏輯異或指令XOR 對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯與運(yùn)算 結(jié)果并不送目的操作數(shù) 僅按AND指令影響標(biāo)志 TESTdest src dest src AND與TEST指令的關(guān)系 同SUB與CMP指令的關(guān)系一樣 4 測(cè)試指令TEST 對(duì)一個(gè)操作數(shù)執(zhí)行邏輯非運(yùn)算 NOTreg mem reg mem reg mem 按位取反 原來(lái)是 0 的位變?yōu)?1 原來(lái)是 1 的位變?yōu)?0 5 邏輯非指令NOT MOVAL 75H AL 75HANDAL 32H AL 30H CF OF 0 SF 0 ZF 0 PF 1ORAL 71H AL 71H CF OF 0 SF 0 ZF 0 PF 1XORAL 0F1H AL 80H CF OF 0 SF 1 ZF 0 PF 0NOTAL AL 7FH 標(biāo)志不變 例9邏輯運(yùn)算 ANDBL 11110110B BL中D0和D3清0 其余位不變ORBL 00001001B BL中D0和D3置1 其余位不變XORBL 00001001B BL中D0和D3求反 其余位不變 AND指令可用于復(fù)位某些位 同0相與 不影響其他位 OR指令可用于置位某些位 同1相或 不影響其他位 XOR指令可用于求反某些位 同1相異或 不影響其他位 例10邏輯運(yùn)算指令的應(yīng)用 將操作數(shù)移動(dòng)一位或多位 分成邏輯移位和算術(shù)移位 分別具有左移或右移操作移位指令的第一個(gè)操作數(shù)是指定的被移位的操作數(shù) 可以是寄存器或存儲(chǔ)單元 后一個(gè)操作數(shù)表示移位位數(shù) 該操作數(shù)為1 表示移動(dòng)一位該操作數(shù)為CL CL寄存器值表示移位位數(shù) 移位位數(shù)大于1只能用CL表示 按照移入的位設(shè)置進(jìn)位標(biāo)志CF 根據(jù)移位后的結(jié)果影響SF ZF PF 4 3 3 2移位指令 SHLreg mem 1 CL reg mem左移1或CL位 最低位補(bǔ)0 最高位進(jìn)入CF 演示 1 邏輯左移指令SHL SHRreg mem 1 CL reg mem右移1 CL位 最高位補(bǔ)0 最低位進(jìn)入CF 演示 2 邏輯右移指令SHR SALreg mem 1 CL 與SHL是同一條指令 演示 3 算術(shù)左移指令SAL SARreg mem 1 CL reg mem右移1 CL位 最高位不變 最低位進(jìn)入CF 演示 4 算術(shù)右移指令SAR MOVDX 6075H DX 0110000001110101BSHLDX 1 DX 1100000011101010B CF 0 SF 1 ZF 0 PF 0SARDX 1 DX 1110000001110101B CF 0 SF 1 ZF 0 PF 0SHRDX 1 DX 0111000000111010B CF 1 SF 0 ZF 0 PF 1MOVCL 4 CL 4 標(biāo)志不變SARDX CL DX 0000011100000011B CF 1 SF 0 ZF 0 PF 1 例11數(shù)據(jù)移位 XORAH AH 實(shí)現(xiàn)AH 0 同時(shí)使CF 0SHLAX 1 AX 2 ALMOVBX AX BX AX 2 ALSHLAX 1 AX 4 ALSHLAX 1 AX 8 ALADDAX BX AX 8 AL 2 AL 10 AL 邏輯左移一位相當(dāng)于無(wú)符號(hào)數(shù)乘以2邏輯右移一位相當(dāng)于無(wú)符號(hào)數(shù)除以2 例13將AL寄存器中的無(wú)符號(hào)數(shù)乘以10 循環(huán)移位指令類似移位指令 但要將從一端移出的位返回到另一端形成循環(huá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)右移循環(huán)移位指令的操作數(shù)形式與移位指令相同 按指令功能設(shè)置進(jìn)位標(biāo)志CF 但不影響SF ZF PF AF標(biāo)志 演示 演示 演示 演示 4 3 3 3循環(huán)移位指令 將DX AX中32位數(shù)值左移一位SHLAX 1RCLDX 1 32位數(shù)據(jù)移位 32位無(wú)符號(hào)數(shù) DX AX 右移一位32位無(wú)符號(hào)數(shù) DX AX 循環(huán)右移一位32位無(wú)符號(hào)數(shù) DX AX 左移一位 例12把數(shù)字ASCII碼轉(zhuǎn)換為BCD碼 若是奇數(shù)個(gè)ASCII碼 則把地址最低位的一個(gè)轉(zhuǎn)換為BCD碼 高4位為0 然后把剩下的偶數(shù)個(gè)數(shù)按統(tǒng)一的方法處理 每?jī)蓚€(gè)ASCII碼轉(zhuǎn)換成一個(gè)壓縮的BCD碼 且地址高的放在高四位 流程圖 MOVSI OFFSETASCBUFMOVDI OFFSETBCDBUFMOVCX COUNT 個(gè)數(shù)CXRORCX 1JNCNEXT 為偶數(shù) C 0即最低位為0 轉(zhuǎn)NEXTROLCX 1 為奇數(shù) 則恢復(fù)原值MOVAL SI 取第一個(gè)數(shù)ALINCSIANDAL 0FH 屏蔽高4位MOV DI AL 送存儲(chǔ)器 由ASCII碼轉(zhuǎn)換為BCD碼 INCDIDECCXRORCX 1 CX 2NEXT MOVAL SI 取數(shù)ALINCSIANDAL 0FHMOVBL ALMOVAL SI INCSIPUSHCXMOVCL 4 由ASCII碼轉(zhuǎn)換為BCD碼 SALAL CLPOPCXADDAL BLMOV DI ALINCDILOOPNEXT DECCXJNZNEXT HLT 由ASCII碼轉(zhuǎn)換為BCD碼 練習(xí) 將AL的D3和D4位清零 其余位不變將AL的D3和D4位置1 其余位不變內(nèi)存單元MEN存放著一個(gè)8位的數(shù)據(jù) 將它的高4位與低4位互換將BCD碼轉(zhuǎn)換成ASCII碼 SHL和SAL指令的功能 SHR指令的功能 SAR指令的功能 ROL指令的功能 ROR指令的功能 RCL指令的功能 RCR指令的功能- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 算術(shù)邏輯運(yùn)算類 算術(shù) 邏輯運(yùn)算 PPT 課件
鏈接地址:http://www.hcyjhs8.com/p-8675582.html