版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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)算指令之與指令下面我們來(lái)學(xué)習(xí)邏輯與指令,邏輯與指令是雙操作數(shù)指令,它的操作碼是AND,邏輯運(yùn)算指令之與指令雙操作數(shù)指令操作碼:ANDdest,src它的功能是計(jì)算兩個(gè)操作數(shù)之間按位相與的結(jié)果,并將結(jié)果送入目的操作數(shù)中邏輯運(yùn)算指令之與指令雙操作數(shù)指令操作碼:ANDdest,src功能計(jì)算兩個(gè)操作數(shù)之間按位相與的結(jié)果將結(jié)果送入目的操作數(shù)中雙操作數(shù)指令操作碼:ANDdest,src功能計(jì)算兩個(gè)操作數(shù)之間按位相與的結(jié)果將結(jié)果送入目的操作數(shù)中它可以實(shí)現(xiàn)兩個(gè)八位操作數(shù)之間的相與運(yùn)算或是兩個(gè)16位操作數(shù)之間的相與運(yùn)算,兩個(gè)八位操作數(shù)之間的相與運(yùn)算兩個(gè)十六位操作數(shù)之間的相與運(yùn)算結(jié)果沒(méi)有進(jìn)位或借位,但是兩個(gè)操作數(shù)的字長(zhǎng)必須要相等進(jìn)位借位兩個(gè)八位操作數(shù)之間的相與運(yùn)算兩個(gè)十六位操作數(shù)之間的相與運(yùn)算雙操作數(shù)指令字長(zhǎng)相等與運(yùn)算指令主要有三種應(yīng)用場(chǎng)景,應(yīng)用場(chǎng)景1,計(jì)算兩個(gè)操作數(shù)按位相與的結(jié)果,比如ANDBL,[si],這條指令是計(jì)算BL與SI指向的兩個(gè)連續(xù)的內(nèi)存單元構(gòu)成的16位數(shù)據(jù)相與的結(jié)果應(yīng)用場(chǎng)景1計(jì)算兩個(gè)操作數(shù)按位相與的結(jié)果ANDBL,[SI]兩個(gè)內(nèi)存單元構(gòu)成16位數(shù)據(jù)相與第二個(gè)應(yīng)用場(chǎng)景是保留操作數(shù)的某幾位將其他位清0,這里基于的原理就是一個(gè)數(shù)跟1相與,結(jié)果還是它自己,跟0相加,結(jié)果為0所以,在這種應(yīng)用場(chǎng)景下,只需要設(shè)計(jì)一個(gè)立即數(shù),這個(gè)立即數(shù)在想要清零的那些位上為0,在其他的位上都為1應(yīng)用場(chǎng)景2保留操作數(shù)的某幾位,清零其他位一個(gè)數(shù)跟1相與,結(jié)果等于1一個(gè)數(shù)跟0相加,結(jié)果等于0立即數(shù)清零的位為0,其他位為1例如,ANDAL,0fh這條指令將AL的高四位清0,低四位保留ANDAL,0FH應(yīng)用場(chǎng)景2高四位清0,低四位保留保留操作數(shù)的某幾位,清零其他位,第三個(gè)應(yīng)用場(chǎng)景是在操作數(shù)不變的情況下使CF和OF位清零,這個(gè)應(yīng)用場(chǎng)景利用的是,與運(yùn)算的結(jié)果不管結(jié)果如何都會(huì)使CF和OF位清0應(yīng)用場(chǎng)景3操作數(shù)不變下使CF和OF位清零運(yùn)算結(jié)果:CF和OF位都會(huì)清0例如,ANDAX,AX,這條指令是求AX自己跟自己相與的結(jié)果,那就是0和0相與,1和1相與,結(jié)果保持不變,但是在計(jì)算完成后,CF和OF為0ANDAX,AX應(yīng)用場(chǎng)景30和0相與1和1相與結(jié)果不變操作數(shù)不變下使CF和OF位清零下面我們通過(guò)一個(gè)具體的例子來(lái)看一下,與運(yùn)算指令如何應(yīng)用,題目要求從地址為3f8h這個(gè)端口讀入一個(gè)字節(jié),如果這個(gè)數(shù)的比特一位為一,則可以從38h這個(gè)端口將data為首地址的一個(gè)字輸出“與”指令應(yīng)用從地址為3F8H端口中讀入一個(gè)字節(jié)數(shù),如果該數(shù)bit1位為1,則可從38FH端口將DATA為首地址的1個(gè)字輸出,否則就不能進(jìn)行數(shù)據(jù)傳送,請(qǐng)編寫(xiě)相應(yīng)的程序段。這個(gè)題目是,輸入輸出指令和與運(yùn)算指令的應(yīng)用其中,輸入數(shù)據(jù)是用輸入指令獲取的,獲取到數(shù)據(jù)以后,輸入指令輸出指令與運(yùn)算指令輸入數(shù)據(jù)“與”指令應(yīng)用從地址為3F8H端口中讀入一個(gè)字節(jié)數(shù),如果該數(shù)bit1位為1,則可從38FH端口將DATA為首地址的1個(gè)字輸出,否則就不能進(jìn)行數(shù)據(jù)傳送,請(qǐng)編寫(xiě)相應(yīng)的程序段。要用與運(yùn)算指令來(lái)判斷一下這個(gè)數(shù)據(jù)是否滿足條件,輸入指令輸出指令與運(yùn)算指令輸入數(shù)據(jù)是否滿足條件“與”指令應(yīng)用從地址為3F8H端口中讀入一個(gè)字節(jié)數(shù),如果該數(shù)bit1位為1,則可從38FH端口將DATA為首地址的1個(gè)字輸出,否則就不能進(jìn)行數(shù)據(jù)傳送,請(qǐng)編寫(xiě)相應(yīng)的程序段。,如果不能滿足條件的話,就再去這個(gè)端口取數(shù)據(jù),如果能滿足條件的話,就按題目的意思用輸出指令將一個(gè)數(shù)據(jù)輸出輸入指令輸出指令與運(yùn)算指令
不滿足條件:端口取數(shù)據(jù)滿足條件:輸出指令將數(shù)據(jù)輸出“與”指令應(yīng)用從地址為3F8H端口中讀入一個(gè)字節(jié)數(shù),如果該數(shù)bit1位為1,則可從38FH端口將DATA為首地址的1個(gè)字輸出,否則就不能進(jìn)行數(shù)據(jù)傳送,請(qǐng)編寫(xiě)相應(yīng)的程序段?;谶@個(gè)思路,我們可以畫(huà)一下流程圖,流程圖畫(huà)好以后,我們將指令填寫(xiě)在相應(yīng)的流程處,即可完成這個(gè)程序分析題目
畫(huà)流程圖
寫(xiě)程序分析題目
畫(huà)流程圖
寫(xiě)程序流程思路下面我們來(lái)畫(huà)一下這個(gè)程序的流程圖,首先,是要從指定的端口讀入數(shù)據(jù)拿到數(shù)據(jù)以后,要判斷一下它的bit1位是否為1,其次,如果為1,從另一個(gè)指定的端口輸出數(shù)據(jù),如果不為1,就重新讀數(shù)據(jù),這就是整個(gè)流程
畫(huà)流程圖開(kāi)始從3F8H端口讀入數(shù)據(jù)此數(shù)據(jù)的bit1是否為1從38FH端口將DATA為首地址的字輸出YN超過(guò)FFHIN指令流程畫(huà)完了,我們來(lái)看一下,第一步讀入數(shù)據(jù),要用IN指令,由于給定的端口是3F8H,超過(guò)了FFH,因此要先把這個(gè)端口傳送到DX中,再?gòu)腄X中讀入數(shù)據(jù)
畫(huà)流程圖開(kāi)始從3F8H端口讀入數(shù)據(jù)此數(shù)據(jù)的bit1是否為1從38FH端口將DATA為首地址的字輸出YN端口:3F8H傳送DX讀入數(shù)據(jù)OUT指令最后一步是輸出數(shù)據(jù),要用OUT指令,同樣,由于給定的端口也超過(guò)了FFH,因此也要先把端口號(hào)傳送到DX中,再?gòu)腄X中輸出數(shù)據(jù)中間判斷條件這一步,是判斷數(shù)據(jù)的bit1位是否為1,我們要知道最低位是比特0位,所以bit1位其實(shí)就是次最低位,IN指令
畫(huà)流程圖開(kāi)始從3F8H端口讀入數(shù)據(jù)此數(shù)據(jù)的bit1是否為1從38FH端口將DATA為首地址的字輸出YN超過(guò)FFH端口:3F8H傳送DX輸出數(shù)據(jù)最低位:比特0位次最低位:比特1位AND指令OUT指令最后一步是輸出數(shù)據(jù),要用OUT指令,同樣,由于給定的端口也超過(guò)了FFH,因此也要先把端口號(hào)傳送到DX中,再?gòu)腄X中輸出數(shù)據(jù)中間判斷條件這一步,是判斷數(shù)據(jù)的bit1位是否為1,我們要知道最低位是比特0位,所以bit1位其實(shí)就是次最低位,IN指令
畫(huà)流程圖開(kāi)始從3F8H端口讀入數(shù)據(jù)此數(shù)據(jù)的bit1是否為1從38FH端口將DATA為首地址的字輸出YNAND指令那么與次數(shù)據(jù)相與的立即數(shù),我們可以設(shè)計(jì)成02H,當(dāng)兩者相與的結(jié)果為0時(shí),說(shuō)明數(shù)據(jù)的bit1位為0,當(dāng)兩者相與的結(jié)果為1時(shí),說(shuō)明數(shù)據(jù)的bit1為1IN指令
畫(huà)流程圖開(kāi)始從3F8H端口讀入數(shù)據(jù)此數(shù)據(jù)的bit1是否為1從38FH端口將DATA為首地址的字輸出YN次數(shù)據(jù)立即數(shù)結(jié)果為0時(shí),bit1位為0結(jié)果為1時(shí),bit1位為1好,下面我們來(lái)看具體的程序是怎么寫(xiě)的,一般程序會(huì)有初始化的部分,用來(lái)設(shè)置內(nèi)存單元中存儲(chǔ)的初值等等具體程序一般程序的初始化部分具體程序一般程序的初始化部分向下箭頭內(nèi)存單元中存儲(chǔ)的初值1小時(shí)前回復(fù)(0)
內(nèi)存單元中存儲(chǔ)的初值但是這個(gè)程序中沒(méi)有設(shè)置初始值的要求,那么初始化的部分就可以不寫(xiě)具體程序一般程序的初始化部分內(nèi)存單元中存儲(chǔ)的初值程序沒(méi)設(shè)置初始值要求,初始化部分可不寫(xiě)下面來(lái)填寫(xiě)讀入數(shù)據(jù)的部分,先用MOV指令將3F8h傳送到DX中,再用IN指令從DX讀入數(shù)據(jù)到AL中,因?yàn)轭}目要求對(duì)入一個(gè)字節(jié),所以讀入到AL中即可。程序編寫(xiě)初始化部分讀入數(shù)據(jù)部分判斷數(shù)據(jù)部分輸出數(shù)據(jù)部分MOVDX,3F8HWAIT:INAL,DXMOV指令將3F8h傳送到DX中IN指令從DX讀入數(shù)據(jù)到AL中下面來(lái)填寫(xiě)判斷的部分,將AL跟02H相與,如果結(jié)果為零,就重新讀入數(shù)據(jù),如果結(jié)果不為0,就繼續(xù)執(zhí)行。程序編寫(xiě)初始化部分讀入數(shù)據(jù)部分判斷數(shù)據(jù)部分輸出數(shù)據(jù)部分MOVDX,3F8HWAIT:INAL,DXANDAL,02HJZWAIT相與結(jié)果為0,重新讀入數(shù)據(jù)結(jié)果不為0,繼續(xù)執(zhí)行這里的JZ是跳轉(zhuǎn)指令,判斷運(yùn)算結(jié)果是否為0,如果為0的話,就跳轉(zhuǎn)到WAIT的位置,開(kāi)始執(zhí)行。如果運(yùn)算結(jié)果不為0,就繼續(xù)執(zhí)行下一條指令程序編寫(xiě)初始化部分讀入數(shù)據(jù)部分判斷數(shù)據(jù)部分輸出數(shù)據(jù)部分MOVDX,3F8HWAIT:INAL,DXANDAL,02HJZWAIT跳轉(zhuǎn)指令結(jié)果為0,跳轉(zhuǎn)到WAIT位置,開(kāi)始執(zhí)行
結(jié)果不為0,繼續(xù)執(zhí)行下一條指令下面來(lái)填寫(xiě)輸出的部分,用MOV指令將38Fh傳送到DX中,再用MOV指令DATA開(kāi)始的兩個(gè)連續(xù)單元的內(nèi)存?zhèn)魉偷紸X中,最后用OUT指令將AX的內(nèi)容輸出到DX指示的端口中。程序編寫(xiě)初始化部分讀入數(shù)據(jù)部分判斷數(shù)據(jù)部分
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 精準(zhǔn)醫(yī)療中心人員聘用合同模板
- 婚紗攝影店電梯銷售合同
- 冷藏租賃協(xié)議:化妝品冷藏專用
- 商業(yè)步行街?jǐn)偽蛔赓U協(xié)議
- 低碳環(huán)保項(xiàng)目施工合同
- 財(cái)務(wù)渠道拓展財(cái)務(wù)總監(jiān)招聘協(xié)議
- 博物館工程商品混凝土施工合同
- 玩具企業(yè)會(huì)計(jì)聘用合同
- 地下通道腳手架施工協(xié)議范本
- 服裝出口業(yè)務(wù)員招聘合同模板
- 山東省政府采購(gòu)專家復(fù)審考試題庫(kù)
- 《“歪腦袋”木頭樁》閱讀測(cè)試
- GB/T 3246.2-2000變形鋁及鋁合金制品低倍組織檢驗(yàn)方法
- 主要農(nóng)作物(糧食作物)課件
- 百詞斬-定語(yǔ)從句課件-(;)
- 新舊公司法對(duì)照表
- 三年級(jí)上冊(cè)英語(yǔ)課件-Unit3 Look at me-人教(PEP) (6)(共30張PPT)
- 西方音樂(lè)史課程大綱
- 2022-《參與感:小米口碑營(yíng)銷內(nèi)部手冊(cè)》
- 三級(jí)醫(yī)院醫(yī)療設(shè)備配置標(biāo)準(zhǔn)
- 合法離婚協(xié)議書(shū)(2篇)
評(píng)論
0/150
提交評(píng)論