微機(jī)原理及應(yīng)用 課件 5.22 邏輯運(yùn)算指令之測(cè)試指令_第1頁
微機(jī)原理及應(yīng)用 課件 5.22 邏輯運(yùn)算指令之測(cè)試指令_第2頁
微機(jī)原理及應(yīng)用 課件 5.22 邏輯運(yùn)算指令之測(cè)試指令_第3頁
微機(jī)原理及應(yīng)用 課件 5.22 邏輯運(yùn)算指令之測(cè)試指令_第4頁
微機(jī)原理及應(yīng)用 課件 5.22 邏輯運(yùn)算指令之測(cè)試指令_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

微機(jī)原理及應(yīng)用第五章8086指令系統(tǒng)第二十二講

邏輯運(yùn)算指令之測(cè)試指令下面我們來學(xué)習(xí)測(cè)試指令邏輯運(yùn)算指令之測(cè)試指令測(cè)試指令的操作碼是TEST它執(zhí)行的功能是與運(yùn)算的功能,但是它跟與運(yùn)算的區(qū)別是不將運(yùn)算的結(jié)果送回,而只是影響標(biāo)志位測(cè)試指令與運(yùn)算的功能TEST不將運(yùn)算的結(jié)果送回,只是影響標(biāo)志位區(qū)別它常常用來對(duì)位進(jìn)行測(cè)試,并且跟條件轉(zhuǎn)移指令一起使用請(qǐng)大家注意,測(cè)試指令的結(jié)果不會(huì)改變操作數(shù)的值,對(duì)位進(jìn)行測(cè)試條件轉(zhuǎn)移指令測(cè)試指令的結(jié)果不會(huì)改變操作數(shù)的值所以如果你想計(jì)算兩個(gè)數(shù)相與,但是又不想改變?nèi)魏我粋€(gè)操作數(shù)的話,可以考慮用測(cè)試指令計(jì)算兩個(gè)數(shù)相與且不改變?nèi)魏尾僮鲾?shù)測(cè)試指令我們來看一個(gè)例子比如,testal,02h這條指令測(cè)試的是AL的bit1這位的值、如果bit1這位為零的話,那么運(yùn)算結(jié)果為全0,ZF就為1;如果比特1這位為1的話,那么運(yùn)算結(jié)果不為全0,ZF就為0測(cè)試指令TESTAL,02H若D1=0,則ZF=1JZTHEREZF=1則轉(zhuǎn)移bit1bit1為1,運(yùn)算結(jié)果不為全0,ZF就為0下面這條指令的意思是,如果結(jié)果為零的話,也就是如果AL的bit1這位為0的話,程序跳轉(zhuǎn)there指示的位置繼續(xù)執(zhí)行否則,程序繼續(xù)執(zhí)行下一條指令測(cè)試指令TESTAL,02H若D1=0,則ZF=1JZTHEREZF=1則轉(zhuǎn)移bit1結(jié)果為零,程序跳轉(zhuǎn)there指示的位置繼續(xù)執(zhí)行下面我們?cè)倏匆粋€(gè)例子。這個(gè)例子跟我們?cè)谂c運(yùn)算中講的例子類似、它區(qū)別在判斷的這個(gè)環(huán)節(jié)、判斷的這個(gè)環(huán)節(jié)會(huì)判斷三個(gè)比特位,比特1,比特3,和比特5如果這位同時(shí)為1的話,才會(huì)輸出數(shù)據(jù),否則的話就重新讀入數(shù)據(jù)bit1bit3bit5判斷的環(huán)節(jié)會(huì)判斷三個(gè)bit位同時(shí)為1輸出數(shù)據(jù)否則重新讀入數(shù)據(jù)那我們可以在前面寫好的這個(gè)程序的基礎(chǔ)上去修改,輸入的部分和輸出的部分都不需要修改只修改判斷的部分就好初始化ANDAL,02HJZWAIT限定:用TEST指令寫TESTAL,02HJZWAITTESTAL,08HJZWAITTESTAL,20HJZWAIT

MOVDX,3F8HWAIT:INAL,DX讀入數(shù)據(jù)判斷數(shù)據(jù)MOVDX,38FHMOVAX,DATAOUTDX,AX輸出數(shù)據(jù)無需修改無需修改之前的程序只檢測(cè)了bit1這一位是否唯一,我們現(xiàn)在要判斷bit1,bit3和bit5是否同時(shí)為1,其實(shí)實(shí)現(xiàn)這個(gè)功能的指令還是蠻多的。如果限定使用測(cè)試指令來實(shí)現(xiàn)這個(gè)功能的話要用三句話來寫bit1是否為1判斷bit1,bit3和bit5是否同時(shí)為1限定使用測(cè)試指令來實(shí)現(xiàn)這個(gè)功能首先,要測(cè)試一下AL的比特一這位是否為零、如果ZF為1,說明AL的比特1這位為0,那么就跳轉(zhuǎn)到WAIT這里,重新讀入數(shù)據(jù),如果ZF為0,說明AL的比特1這位不為0,不為0的話,就再測(cè)試一下比特三這位AL的bit1是否為0ZF為1,說明AL的bit1為0重新讀入數(shù)據(jù)WAITAL的bit1是否為0ZF為0,說明AL的bit1不為0重新測(cè)試bit3如果ZF為1,說明AL的比特3這位為0,那么就跳轉(zhuǎn)到WAIT這里,重新讀入數(shù)據(jù),如果ZF為0,說明AL的比特3這位不為0,不為0的話,就再測(cè)試一下比特五這位MOV操作碼02H31H代碼段…CDHABH數(shù)據(jù)段AHALAX23102H23103HAL的bit3是否為0ZF為1,說明AL的bit3為0重新讀入數(shù)據(jù)WAITAL的bit3是否為0ZF為0,說明AL的bit3不為0重新測(cè)試bit5如果ZF為1,說明AL的比特5這位為0,那么久跳轉(zhuǎn)到WAIT這里,重新讀入數(shù)據(jù),如果ZF為0,說明AL的比特5這位不為0,不為0的話,就說明bit1,比特3和bit5這三位同時(shí)為1,可以繼續(xù)執(zhí)行輸出的操作了。AL的bit5是否為0ZF為1,說明AL的bit5為0重新讀入數(shù)據(jù)WAITAL的bit5是否為0ZF為0,說明AL的bit5不為0同時(shí)為1bit1bit3bit5執(zhí)行輸出大家來看,使用測(cè)試指令判斷三個(gè)位是否同時(shí)為1是不是有點(diǎn)繁瑣,那么如果我們不限定用測(cè)試指令來實(shí)現(xiàn)判斷的話,其實(shí)可以更簡(jiǎn)單

MOVDX,3F8H初始化WAIT:INAL,DXTESTAL,02HMOVDX,38FHMOVAX,DATAOUTDX,AXJZWAITTESTAL,08HJZWAITTESTAL,20HJZWAIT讀入數(shù)據(jù)輸出數(shù)據(jù)ANDAL,02HJZWAIT限定:用TEST指令寫判斷數(shù)據(jù)不限定用測(cè)試指令來實(shí)現(xiàn)判斷可以更簡(jiǎn)單如果用AND指令來實(shí)現(xiàn),我們就可以直接獲得與運(yùn)算的結(jié)果,

MOVDX,3F8H初始化WAIT:INAL,DX不限定MOVDX,38FHMOVAX,DATAOUTDX,AX讀入數(shù)據(jù)判斷數(shù)據(jù)輸出數(shù)據(jù)ANDAL,2AHXORAL,2AHJNZWAITANDAL,2AHCMPAL,2AHJNZWAIT直接獲得與運(yùn)算的結(jié)果例如,要判斷AL的bit1,bit3和bit5位是否同時(shí)為1,我們可以讓AL跟2AH相與,如果結(jié)果為2AH,說明AL的這三個(gè)比特位同時(shí)為1,就可以輸出數(shù)據(jù)了,否則就說明至少有一位不為1,這時(shí)就要回去重新讀數(shù)據(jù)

MOVDX,3F8H初始化WAIT:INAL,DX不限定MOVDX,38FHMOVAX,DATAOUTDX,AX讀入數(shù)據(jù)判斷數(shù)據(jù)輸出數(shù)據(jù)ANDAL,2AHXORAL,2AHJNZWAITANDAL,2AHCMPAL,2AHJNZWAITAL的bit1,bit3和bit5位是否同時(shí)為1結(jié)果為2AHbit位同時(shí)為1結(jié)果不為2AH至少一位不為1輸出數(shù)據(jù)重新取讀我們來看第一種寫法就是AL跟2AH相與,然后用比較指令去判斷結(jié)果是否為2Ah。

MOVDX,3F8H初始化WAIT:INAL,DX不限定MOVDX,38FHMOVAX,DATAOUTDX,AX讀入數(shù)據(jù)判斷數(shù)據(jù)輸出數(shù)據(jù)ANDAL,2AHXORAL,2AHJNZWAITANDAL,2AHCMPAL,2AHJNZWAIT用比較指令去判斷結(jié)果是否為2Ah如果結(jié)果是2AH的話,ZF為1,否則ZF為0。如果ZF為0,就跳轉(zhuǎn)到WAIT指向的位置去執(zhí)行否則就繼續(xù)執(zhí)行用比較指令去判斷結(jié)果是否為2Ah結(jié)果=0ZF=1結(jié)果0ZF=0WAIT繼續(xù)執(zhí)行同理,還有第二種寫法;就是用異或指令來判斷與運(yùn)算的結(jié)果是否為2AH;如果與運(yùn)算的結(jié)果為2Ah,那么跟2Ah再求異或的話,結(jié)果就為0,ZF就為1,否則結(jié)果不為0,ZF就為0;如果ZF為0,就跳轉(zhuǎn)到WAIT;如果ZF為1,就

溫馨提示

  • 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)論