第十一章標(biāo)志寄存器_第1頁(yè)
第十一章標(biāo)志寄存器_第2頁(yè)
第十一章標(biāo)志寄存器_第3頁(yè)
第十一章標(biāo)志寄存器_第4頁(yè)
第十一章標(biāo)志寄存器_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、cmp指令下面我們?cè)賮?lái)看一下如果用cmp來(lái)進(jìn)行有符號(hào)數(shù)比較時(shí),我們要注意哪些標(biāo)志位!我們以cmp ah,bh為例進(jìn)行說(shuō)明: 如果(ah)=(bh) 則(ah)-(bh)=0,所以:ZF=1; 如果(ah)(bh) 則(ah)-(bh) 0,所以:ZF=0; 所以,我們根據(jù)cmp指令執(zhí)行后ZF的值,就可以知道兩個(gè)數(shù)據(jù)是否相等。 cmp指令我們繼續(xù)看,如果(ah)(bh)則可能發(fā)生什么情況呢?對(duì)于有符號(hào)數(shù)運(yùn)算,在 (ah)(bh) 情況下,(ah)-(bh)顯然可能引起SF=1,即結(jié)果為負(fù)。cmp指令比如:(ah) = 1,(bh) = 2:則(ah)-(bh)=0FFH,0FFH 為 -1 的補(bǔ)

2、碼,因?yàn)榻Y(jié)果為負(fù),所以SF=1。(ah)=0FEH,(bx)=0FFH:則(ah)-(bh)=(-2)-(-1)=0FFH,因?yàn)榻Y(jié)果為負(fù),所以SF=1。 cmp指令通過(guò)上面的例子,我們是不是可以得到這樣的結(jié)論:cmp 操作對(duì)象1,操作對(duì)象2 指令執(zhí)行后,SF=1,就說(shuō)明操作對(duì)象1操作對(duì)象2? 當(dāng)然不是。我們?cè)倏聪旅孢@個(gè)例子。cmp指令(ah)=22H,(bh)=0A0H:則(ah)-(bh)=34-(-96)=130=82H,82H是 -126的補(bǔ)碼,所以SF=1。這里雖然SF=1,但是并不能說(shuō)明(ah)-96。cmp指令兩個(gè)有符號(hào)數(shù)A 和B 相減,得到的是負(fù)數(shù),那么可以肯定AB,這個(gè)思路沒(méi)有

3、錯(cuò)誤;關(guān)鍵在于我們根據(jù)什么來(lái)斷定得到的是一個(gè)負(fù)數(shù)。CPU將 cmp 指令得到的結(jié)果記錄在flag的相關(guān)標(biāo)志位中。 cmp指令我們可以根據(jù)指令執(zhí)行后,相關(guān)標(biāo)志位的值來(lái)判斷比較的結(jié)果。單純地考察SF 的值不可能知道結(jié)果的正負(fù)。因?yàn)镾F 記錄的只是可以在計(jì)算機(jī)中存放的相應(yīng)位數(shù)的結(jié)果的正負(fù)。比如add ah, al執(zhí)行后,SF記錄的是ah中的8位二進(jìn)制信息所表示的數(shù)據(jù)的正負(fù)。cmp指令所得到的相應(yīng)結(jié)果的正負(fù),并不能說(shuō)明,運(yùn)算所應(yīng)該得到的結(jié)果的正負(fù)。這是因?yàn)樵谶\(yùn)算的過(guò)程中可能發(fā)生溢出。如果有這樣的情況發(fā)生,那么,SF的值就不能說(shuō)明任何問(wèn)題。 cmp指令如果沒(méi)有溢出發(fā)生的話(huà),那么,實(shí)際結(jié)果的正負(fù)和邏輯上真

4、正結(jié)果的正負(fù)就一致了。所以,我們應(yīng)該在考察SF(得知實(shí)際結(jié)果的正負(fù))的同時(shí)考察OF(得知有沒(méi)有溢出),就可以得知邏輯上真正結(jié)果的正負(fù),同時(shí)就可以知道比較的結(jié)果。下面,我們以cmp ah,bh為例,總結(jié)一下CPU執(zhí)行cmp指令后,SF和OF的值是如何來(lái)說(shuō)明比較的結(jié)果的。cmp指令(1)如果SF=1,而OF=0OF=0,說(shuō)明沒(méi)有溢出,邏輯上真正結(jié)果的正負(fù)=實(shí)際結(jié)果的正負(fù);因SF=1,實(shí)際結(jié)果為負(fù),所以邏輯上真正的結(jié)果為負(fù),所以(ah)(bh)。 cmp指令(3)如果SF=0,而OF=1OF=1 ,說(shuō)明有溢出,邏輯上真正結(jié)果的正負(fù)實(shí)際結(jié)果的正負(fù);簡(jiǎn)單分析一下,就可以看出,如果因?yàn)橐绯鰧?dǎo)致了實(shí)際結(jié)果為

5、正,那么邏輯上真正的結(jié)果必然為負(fù)。這樣,SF=0,OF = 1 ,說(shuō)明了(ah)(bh)。 cmp指令(4)如果SF=0,而OF=0OF=0,說(shuō)明沒(méi)有溢出,邏輯上真正結(jié)果的正負(fù)=實(shí)際結(jié)果的正負(fù);因SF=0,實(shí)際結(jié)果非負(fù),所以邏輯上真正的結(jié)果必然非負(fù)。所以(ah)(bh)。 cmp指令上面,我們深入討論了cmp指令在進(jìn)行有符號(hào)數(shù)和無(wú)符號(hào)數(shù)比較時(shí),對(duì)flag 相關(guān)標(biāo)志位的影響,和CPU如何通過(guò)相關(guān)的標(biāo)志位來(lái)表示比較的結(jié)果。在學(xué)習(xí)中,要注意領(lǐng)會(huì)8086CPU這種工作機(jī)制的設(shè)計(jì)思想。實(shí)際上,這種設(shè)計(jì)思想對(duì)于各種處理機(jī)來(lái)說(shuō)是普遍的。檢測(cè)比較結(jié)果的條件轉(zhuǎn)移指令下面的內(nèi)容中我們將學(xué)習(xí)一些根據(jù)cmp指令的比較

6、結(jié)果(即,cmp指令執(zhí)行后,相關(guān)標(biāo)志位的值)進(jìn)行工作的指令。它們檢測(cè)的是哪些標(biāo)志位呢?就是被cmp指令影響的那些,表示比較結(jié)果的標(biāo)志位。這些條件轉(zhuǎn)移指令通常都和cmp相配合使用,就好像 call 和 ret 指令通常相配合使用一樣。檢測(cè)比較結(jié)果的條件轉(zhuǎn)移指令因?yàn)?cmp 指令可以同時(shí)進(jìn)行兩種比較,無(wú)符號(hào)數(shù)比較和有符號(hào)數(shù)比較,所以根據(jù) cmp 指令的比較結(jié)果進(jìn)行轉(zhuǎn)移的指令也分為兩種,即:根據(jù)無(wú)符號(hào)數(shù)的比較結(jié)果進(jìn)行轉(zhuǎn)移的條件轉(zhuǎn)移指令,它們檢測(cè)ZF、CF的值;和根據(jù)有符號(hào)數(shù)的比較結(jié)果進(jìn)行轉(zhuǎn)移的條件轉(zhuǎn)移指令,它們檢測(cè) SF、OF和 ZF的值。 檢測(cè)比較結(jié)果的條件轉(zhuǎn)移指令檢測(cè)比較結(jié)果的條件轉(zhuǎn)移指令這些指令比較常用,它們都很好記憶,它們的第一個(gè)字母都是j,表示jump;后面的: e:表示equal; ne:表示not equal; b:表示below;nb:表示not below; a:表示above;na:表示not above。檢測(cè)比較結(jié)果的條件轉(zhuǎn)移指令注意觀(guān)察一下它們所檢測(cè)的標(biāo)志位,都是cmp指令進(jìn)行無(wú)符號(hào)數(shù)比較時(shí)候,記錄比較結(jié)果的標(biāo)志位。比如je,檢測(cè) ZF位,當(dāng) ZF=1的時(shí)候進(jìn)行轉(zhuǎn)移,如果在 je 前面使用

溫馨提示

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

評(píng)論

0/150

提交評(píng)論