微機(jī)原理第02章4_第1頁
微機(jī)原理第02章4_第2頁
微機(jī)原理第02章4_第3頁
微機(jī)原理第02章4_第4頁
微機(jī)原理第02章4_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第2 2章章第第2章:章:2.4 算術(shù)運(yùn)算類指令算術(shù)運(yùn)算類指令算術(shù)運(yùn)算類指令用來執(zhí)行二進(jìn)制的算術(shù)運(yùn)算術(shù)運(yùn)算類指令用來執(zhí)行二進(jìn)制的算術(shù)運(yùn)算:算:加減乘除加減乘除。這類指令會(huì)根據(jù)運(yùn)算結(jié)果影響這類指令會(huì)根據(jù)運(yùn)算結(jié)果影響狀態(tài)標(biāo)志狀態(tài)標(biāo)志,有時(shí)要利用某些標(biāo)志才能得到正確的結(jié)果;有時(shí)要利用某些標(biāo)志才能得到正確的結(jié)果;使用他們時(shí)請(qǐng)留心有關(guān)狀態(tài)標(biāo)志使用他們時(shí)請(qǐng)留心有關(guān)狀態(tài)標(biāo)志重點(diǎn)掌握重點(diǎn)掌握加法指令:加法指令:ADD、ADC、INC 減法指令:減法指令:SUB 、SBB、DEC、CMP、NEG第第2章:章:2.4.1 加法和減法指令加法和減法指令加法指令加法指令:ADD, ADC和和INC減法指令減法指令:

2、SUB, SBB, DEC, NEG和和CMP他們分別執(zhí)行字或字節(jié)的加法和減法運(yùn)算,他們分別執(zhí)行字或字節(jié)的加法和減法運(yùn)算,除除INC和和DEC不影響不影響CF標(biāo)志外,其他按定標(biāo)志外,其他按定義影響全部狀態(tài)標(biāo)志位義影響全部狀態(tài)標(biāo)志位操作數(shù)組合:操作數(shù)組合:運(yùn)算指令助記符運(yùn)算指令助記符 reg, imm/reg/mem運(yùn)算指令助記符運(yùn)算指令助記符 mem, imm/reg第第2章:章:1. 加和減指令加和減指令 ADD dest,src;加法:加法:destdestsrc;ADD指令使目的操作數(shù)加上源操作數(shù),指令使目的操作數(shù)加上源操作數(shù),和的結(jié)果送到目的操作數(shù)和的結(jié)果送到目的操作數(shù)SUB dest

3、,src;減法:減法:destdestsrc;SUB指令使目的操作數(shù)減去源操作數(shù),指令使目的操作數(shù)減去源操作數(shù),差的結(jié)果送到目的操作數(shù)差的結(jié)果送到目的操作數(shù)第第2章:例題章:例題2.7 加法加法mov ax,7348h;AX7348Hadd al,27h;AL48H27H6FH,AX736FH;OF0,SF0,ZF0,PF1,CF0add ax,3fffh;AX736FH3FFFHB36EH;OF1,SF1,ZF0,PF0,CF0第第2章:例題章:例題2.7 減法減法sub ah,0f0h;AHB3HF0HC3H,AXC36EH;OF0,SF1,ZF0,PF1,CF1mov word ptr2

4、00h,0ef00h;200HEF00H,標(biāo)志不變,標(biāo)志不變sub 200h,ax;200HEF00HC36EH2B92H;OF0,SF0,ZF0,PF0,CF0sub si,si;SI0;OF0,SF0,ZF1,PF1,CF0第第2章:章:2. 帶進(jìn)位加和減指令帶進(jìn)位加和減指令 ADC dest,src;加法:;加法:destdestsrcCF;ADC指令除完成指令除完成ADD加法運(yùn)算外,還要加法運(yùn)算外,還要加上進(jìn)位加上進(jìn)位CF,結(jié)果送到目的操作數(shù),結(jié)果送到目的操作數(shù)SBB dest,src;減法:減法:destdestsrcCF;SBB指令除完成指令除完成SUB減法運(yùn)算外,還要減法運(yùn)算外,

5、還要減去借位減去借位CF,結(jié)果送到目的操作數(shù),結(jié)果送到目的操作數(shù)第第2章:例章:例2.8 無符號(hào)雙字加法和減法無符號(hào)雙字加法和減法mov ax,7856h;AX7856Hmov dx,8234h;DX8234Hadd ax,8998h;AX01EEH,CF1adc dx,1234h;DX9469H,CF0sub ax,4491h;AXBD5DH,CF1sbb dx,8000h;DX1468H,CF0DX.AX8234 7856H1234 8998H8000 4491H1468 BD5DH第第2章:章:3. 比較指令比較指令CMP(compare)CMP dest,src;做減法運(yùn)算:;做減法運(yùn)

6、算:destsrc;CMP指令將目的操作數(shù)減去源操作數(shù),但指令將目的操作數(shù)減去源操作數(shù),但差值差值不回送不回送目的操作數(shù)目的操作數(shù)比較指令通過減法運(yùn)算影響比較指令通過減法運(yùn)算影響狀態(tài)標(biāo)志狀態(tài)標(biāo)志,用,用于比較兩個(gè)操作數(shù)的大小關(guān)系于比較兩個(gè)操作數(shù)的大小關(guān)系cmp ax,bxcmp al,100第第2章:章:4. 增量和減量指令增量和減量指令I(lǐng)NC reg/mem;增量(加;增量(加1):):reg/memreg/mem1DEC reg/mem;減量(減;減量(減1):):reg/memreg/mem1INC指令和指令和DEC指令是單操作數(shù)指令指令是單操作數(shù)指令與加法和減法指令實(shí)現(xiàn)的加與加法和減法

7、指令實(shí)現(xiàn)的加1和減和減1不同的是:不同的是:INC和和DEC不影響不影響CF標(biāo)志標(biāo)志inc si;sisi1dec byte ptr si;sisi1第第2章:章:5. 求補(bǔ)指令求補(bǔ)指令NEG(negtive)NEG reg/mem;reg/mem0reg/memNEG指令對(duì)操作數(shù)執(zhí)行指令對(duì)操作數(shù)執(zhí)行求補(bǔ)運(yùn)算求補(bǔ)運(yùn)算,即用零,即用零減去操作數(shù),然后結(jié)果返回操作數(shù)減去操作數(shù),然后結(jié)果返回操作數(shù)求補(bǔ)運(yùn)算也可以表達(dá)成:求補(bǔ)運(yùn)算也可以表達(dá)成:將操作數(shù)按位取將操作數(shù)按位取反后加反后加1NEG指令對(duì)標(biāo)志的影響與用零作減法的指令對(duì)標(biāo)志的影響與用零作減法的SUB指令一樣指令一樣NEG指令也是一個(gè)單操作數(shù)指令指

8、令也是一個(gè)單操作數(shù)指令第第2章:例題章:例題2.9 求補(bǔ)運(yùn)算求補(bǔ)運(yùn)算mov ax,0ff64hneg al;AL064H9CH,AXFF9CH;OF0SF1,ZF0,PF1,CF1sub al,9dh;AL9CH9DHFFH,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第第2章:章:2.4.2 符號(hào)擴(kuò)展指令符號(hào)擴(kuò)展指令符號(hào)擴(kuò)展是指用一個(gè)操作數(shù)的符號(hào)位(最高位)

9、符號(hào)擴(kuò)展是指用一個(gè)操作數(shù)的符號(hào)位(最高位)形成另一個(gè)操作數(shù),后一個(gè)操作數(shù)的高位是全形成另一個(gè)操作數(shù),后一個(gè)操作數(shù)的高位是全0(正數(shù))或全(正數(shù))或全1(負(fù)數(shù))(負(fù)數(shù))符號(hào)擴(kuò)展雖然使數(shù)據(jù)位數(shù)加長(zhǎng),但數(shù)據(jù)大小并沒符號(hào)擴(kuò)展雖然使數(shù)據(jù)位數(shù)加長(zhǎng),但數(shù)據(jù)大小并沒有改變,擴(kuò)展的高部分僅是低部分的符號(hào)擴(kuò)展有改變,擴(kuò)展的高部分僅是低部分的符號(hào)擴(kuò)展符號(hào)擴(kuò)展指令有兩條,用來將字節(jié)轉(zhuǎn)換為字,字符號(hào)擴(kuò)展指令有兩條,用來將字節(jié)轉(zhuǎn)換為字,字轉(zhuǎn)換為雙字轉(zhuǎn)換為雙字CBW;AL符號(hào)擴(kuò)展成符號(hào)擴(kuò)展成AXCWD;AX符號(hào)擴(kuò)展成符號(hào)擴(kuò)展成DX第第2章:例題章:例題2.10 符號(hào)擴(kuò)展符號(hào)擴(kuò)展mov al,64h;AL64H (機(jī)器數(shù))(

10、機(jī)器數(shù)) ,表示,表示10進(jìn)制數(shù)進(jìn)制數(shù)100(真值)(真值)cbw;將符號(hào)將符號(hào)0擴(kuò)展,擴(kuò)展,AX0064H,仍然表示,仍然表示100mov ax,0ff00h;AXFF00H,表示有符號(hào),表示有符號(hào)10進(jìn)制數(shù)進(jìn)制數(shù)256cwd;將符號(hào)位將符號(hào)位“1”擴(kuò)展,擴(kuò)展,DX.AXFFFFFF00H;仍然表示;仍然表示256第第2章:章:2.4.3 乘法和除法指令乘法和除法指令乘法指令分乘法指令分無符號(hào)無符號(hào)和和有符號(hào)有符號(hào)乘法指令乘法指令MUL reg/mem;無符號(hào)乘法;無符號(hào)乘法IMUL reg/mem;有符號(hào)乘法;有符號(hào)乘法除法指令分除法指令分無符號(hào)無符號(hào)和和有符號(hào)有符號(hào)除法指令除法指令DIV

11、 reg/mem;無符號(hào)除法;無符號(hào)除法IDIV reg/mem;有符號(hào);有符號(hào)除除法法第第2章:章:2.4.4 十進(jìn)制調(diào)整指令十進(jìn)制調(diào)整指令 十進(jìn)制數(shù)調(diào)整指令對(duì)二進(jìn)制運(yùn)算的結(jié)果進(jìn)十進(jìn)制數(shù)調(diào)整指令對(duì)二進(jìn)制運(yùn)算的結(jié)果進(jìn)行十進(jìn)制調(diào)整,以得到十進(jìn)制的運(yùn)算結(jié)果,行十進(jìn)制調(diào)整,以得到十進(jìn)制的運(yùn)算結(jié)果,以此實(shí)現(xiàn)十進(jìn)制以此實(shí)現(xiàn)十進(jìn)制BCDBCD碼運(yùn)算碼運(yùn)算80888088指令系統(tǒng)支持兩種指令系統(tǒng)支持兩種BCDBCD碼調(diào)整運(yùn)算碼調(diào)整運(yùn)算q壓縮壓縮BCD碼碼就是通常的就是通常的8421碼;它用碼;它用4個(gè)二進(jìn)個(gè)二進(jìn)制位表示一個(gè)十進(jìn)制位,一個(gè)字節(jié)可以表示兩制位表示一個(gè)十進(jìn)制位,一個(gè)字節(jié)可以表示兩個(gè)十進(jìn)制位,即個(gè)十

12、進(jìn)制位,即0099q非壓縮非壓縮BCD碼碼用用8個(gè)二進(jìn)制位表示一個(gè)十進(jìn)制個(gè)二進(jìn)制位表示一個(gè)十進(jìn)制位,只用低位,只用低4個(gè)二進(jìn)制位表示一個(gè)十進(jìn)制位個(gè)二進(jìn)制位表示一個(gè)十進(jìn)制位09,高,高4位任意,通常默認(rèn)為位任意,通常默認(rèn)為0第第2章:編碼的比較章:編碼的比較真值(十進(jìn)制)真值(十進(jìn)制)864二進(jìn)制編碼二進(jìn)制編碼08H40H壓縮壓縮BCD碼碼08H64H非壓縮非壓縮BCD碼碼08H0604HASCII碼碼38H3634H壓縮壓縮BCD碼加減法調(diào)整指令碼加減法調(diào)整指令DAA DAS非壓縮非壓縮BCD碼加減乘除法調(diào)整指令碼加減乘除法調(diào)整指令A(yù)AA AAS AAM AAD第第2章:章:2.5 位操作類指

13、令位操作類指令 位操作類指令以位操作類指令以二進(jìn)制位二進(jìn)制位為基本單位進(jìn)行數(shù)據(jù)的為基本單位進(jìn)行數(shù)據(jù)的操作操作當(dāng)需要對(duì)字節(jié)或字?jǐn)?shù)據(jù)中的各個(gè)二進(jìn)制位操作時(shí),當(dāng)需要對(duì)字節(jié)或字?jǐn)?shù)據(jù)中的各個(gè)二進(jìn)制位操作時(shí),可以考慮采用位操作類指令可以考慮采用位操作類指令注意這些指令對(duì)標(biāo)志位的影響注意這些指令對(duì)標(biāo)志位的影響1. 邏輯運(yùn)算指令邏輯運(yùn)算指令A(yù)ND OR XOR NOT TEST2. 移位指令移位指令SHL SHR SAR3. 循環(huán)移位指令循環(huán)移位指令ROL ROR RCL RCR第第2章:章:2.5.1 邏輯運(yùn)算指令邏輯運(yùn)算指令雙操作數(shù)邏輯指令雙操作數(shù)邏輯指令A(yù)ND、OR、XOR和和TEST設(shè)置設(shè)置CFOF0

14、,根據(jù)結(jié)果設(shè)置,根據(jù)結(jié)果設(shè)置SF、ZF和和PF狀態(tài),而對(duì)狀態(tài),而對(duì)AF未定義;它們的操作未定義;它們的操作數(shù)組合與數(shù)組合與ADD、SUB等一樣:等一樣:運(yùn)算指令助記符運(yùn)算指令助記符 reg, imm/reg/mem運(yùn)算指令助記符運(yùn)算指令助記符 mem, imm/reg 單操作數(shù)邏輯指令單操作數(shù)邏輯指令NOT不影響標(biāo)志位,操不影響標(biāo)志位,操作數(shù)與作數(shù)與INC、DEC和和NEG一樣:一樣:NOT reg/mem第第2章:邏輯與指令章:邏輯與指令A(yù)ND對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯與運(yùn)算,結(jié)果送目的操作數(shù)對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯與運(yùn)算,結(jié)果送目的操作數(shù)AND dest,srcAND dest,src;destde

15、stdestdestsrcsrc 只有相只有相“與與”的兩位的兩位都是都是1,結(jié)果才是,結(jié)果才是1;否;否則,則,“與與”的結(jié)果為的結(jié)果為0第第2章:邏輯或指令章:邏輯或指令OR對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯或運(yùn)算,結(jié)果送目的操作數(shù)對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯或運(yùn)算,結(jié)果送目的操作數(shù)OR dest,srcOR dest,src;destdestdestdestsrcsrc只要相只要相“或或”的兩位的兩位有一位是有一位是1,結(jié)果就是,結(jié)果就是1;否則,結(jié)果為;否則,結(jié)果為0第第2章:邏輯異或指令章:邏輯異或指令XOR對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯異或運(yùn)算,結(jié)果送目的操作數(shù)對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯異或運(yùn)算,結(jié)果送目的操作數(shù)XOR

16、 dest,srcXOR dest,src;destdestdestdestsrcsrc只有相只有相“異或異或”的兩的兩位不相同,結(jié)果才是位不相同,結(jié)果才是1;否則,結(jié)果為否則,結(jié)果為0第第2章:測(cè)試指令章:測(cè)試指令TEST對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯與運(yùn)算,結(jié)果并不送對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯與運(yùn)算,結(jié)果并不送目的操作數(shù),僅按目的操作數(shù),僅按AND指令影響標(biāo)志指令影響標(biāo)志TEST dest,srcTEST dest,src;destdestsrcsrc AND與與TEST指令的關(guān)系,指令的關(guān)系,同同SUB與與CMP指令的關(guān)系一樣指令的關(guān)系一樣第第2章:邏輯非指令章:邏輯非指令NOT對(duì)一個(gè)操作數(shù)執(zhí)行邏輯非運(yùn)

17、算對(duì)一個(gè)操作數(shù)執(zhí)行邏輯非運(yùn)算NOT reg/memNOT reg/mem;reg/memreg/memreg/memreg/mem 按位取反,原來按位取反,原來是是“0”的位變?yōu)榈奈蛔優(yōu)椤?”;原來是;原來是“1”的位變?yōu)榈奈蛔優(yōu)椤?”第第2章:例章:例2.6 邏輯運(yùn)算邏輯運(yùn)算mov 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,標(biāo)志不變,標(biāo)志不變第第2章:章: 例例2.17 邏輯運(yùn)算指

18、令的應(yīng)用邏輯運(yùn)算指令的應(yīng)用and bl,11110110b;BL中中D0和和D3清清0,其余位不變,其余位不變or bl,00001001b;BL中中D0和和D3置置1,其余位不變,其余位不變xor bl,00001001b;BL中中D0和和D3求反,其余位不變求反,其余位不變 AND指令可用于復(fù)位某些位(同指令可用于復(fù)位某些位(同0相與),不影響其他位相與),不影響其他位 OR指令可用于置位某些位(同指令可用于置位某些位(同1相或),不影響其他位相或),不影響其他位 XOR指令可用于求反某些位(同指令可用于求反某些位(同1相異或),不影響其他位相異或),不影響其他位第第2章:章:2.5.2

19、移位指令移位指令將操作數(shù)移動(dòng)一位或多位,分成邏輯移位將操作數(shù)移動(dòng)一位或多位,分成邏輯移位和算術(shù)移位,分別具有左移或右移操作和算術(shù)移位,分別具有左移或右移操作移位指令的移位指令的第一個(gè)操作數(shù)第一個(gè)操作數(shù)是指定的被移位是指定的被移位的操作數(shù),可以是寄存器或存儲(chǔ)單元;的操作數(shù),可以是寄存器或存儲(chǔ)單元;后后一個(gè)操作數(shù)一個(gè)操作數(shù)表示移位位數(shù):表示移位位數(shù):該操作數(shù)該操作數(shù)為為1,表示移動(dòng)一位,表示移動(dòng)一位該操作數(shù)該操作數(shù)為為CL,CL寄存器值表示移位位數(shù)寄存器值表示移位位數(shù) (移位位數(shù)(移位位數(shù)大于大于1只能只能CL表示表示)按照移入的位設(shè)置進(jìn)位標(biāo)志按照移入的位設(shè)置進(jìn)位標(biāo)志CF,根據(jù)移位,根據(jù)移位后的結(jié)

20、果影響后的結(jié)果影響SF、ZF、PF第第2章:邏輯左移指令章:邏輯左移指令SHLSHL reg/mem,1/CL;reg/mem左移左移1或或CL位位;最低位補(bǔ);最低位補(bǔ)0,最高位進(jìn)入,最高位進(jìn)入CF演示演示第第2章:邏輯右移指令章:邏輯右移指令SHRSHR reg/mem,1/CL;reg/mem右移右移1/CL位位;最高位補(bǔ);最高位補(bǔ)0,最低位進(jìn)入,最低位進(jìn)入CF演示演示第第2章:算術(shù)左移指令章:算術(shù)左移指令SALSAL reg/mem,1/CL;與;與SHL是同一條指令是同一條指令演示演示第第2章:算術(shù)右移指令章:算術(shù)右移指令SARSAR reg/mem,1/CL;reg/mem右移右移1

21、/CL位位;最高位不變,最低位進(jìn)入;最高位不變,最低位進(jìn)入CF演示演示第第2章:例章:例2.18 數(shù)據(jù)移位數(shù)據(jù)移位mov dx,6075h;DX01100000 01110101Bshl dx,1;DX11000000 11101010B;CF0,SF1、ZF0、PF0sar dx,1;DX11100000 01110101B;CF0,SF1、ZF0、PF0shr dx,1;DX01110000 00111010B;CF1,SF0、ZF0、PF1mov cl,4;CL4,標(biāo)志不變,標(biāo)志不變sar dx,cl;DX00000111 00000011B;CF1,SF0、ZF0、PF1第第2章:例章:例2.19 將將AL寄存器中的無符號(hào)數(shù)乘以寄存器中的無符號(hào)數(shù)乘以10 xor ah,ah;實(shí)現(xiàn);實(shí)現(xiàn)AH0,同時(shí)使,同時(shí)使CF0shl ax,1;AX2ALmov bx,ax;BXAX2ALshl ax,1;AX4ALshl ax,1;AX8ALadd ax,bx;AX8AL2AL10ALsub ah,ahand ah,0 邏輯左移一位相當(dāng)于無符號(hào)數(shù)乘以邏輯左移一位相當(dāng)于無符號(hào)數(shù)乘以2 邏輯右移一位相當(dāng)于無符號(hào)數(shù)除以邏輯右移一位相當(dāng)于無符號(hào)數(shù)除以2第第2章:章:2.5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論