版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
微機原理及應用第五章8086指令系統(tǒng)第二十講邏輯運算指令之與指令下面我們來學習邏輯與指令,邏輯與指令是雙操作數(shù)指令,它的操作碼是AND,邏輯運算指令之與指令雙操作數(shù)指令操作碼:ANDdest,src它的功能是計算兩個操作數(shù)之間按位相與的結果,并將結果送入目的操作數(shù)中邏輯運算指令之與指令雙操作數(shù)指令操作碼:ANDdest,src功能計算兩個操作數(shù)之間按位相與的結果將結果送入目的操作數(shù)中雙操作數(shù)指令操作碼:ANDdest,src功能計算兩個操作數(shù)之間按位相與的結果將結果送入目的操作數(shù)中它可以實現(xiàn)兩個八位操作數(shù)之間的相與運算或是兩個16位操作數(shù)之間的相與運算,兩個八位操作數(shù)之間的相與運算兩個十六位操作數(shù)之間的相與運算結果沒有進位或借位,但是兩個操作數(shù)的字長必須要相等進位借位兩個八位操作數(shù)之間的相與運算兩個十六位操作數(shù)之間的相與運算雙操作數(shù)指令字長相等與運算指令主要有三種應用場景,應用場景1,計算兩個操作數(shù)按位相與的結果,比如ANDBL,[si],這條指令是計算BL與SI指向的兩個連續(xù)的內存單元構成的16位數(shù)據(jù)相與的結果應用場景1計算兩個操作數(shù)按位相與的結果ANDBL,[SI]兩個內存單元構成16位數(shù)據(jù)相與第二個應用場景是保留操作數(shù)的某幾位將其他位清0,這里基于的原理就是一個數(shù)跟1相與,結果還是它自己,跟0相加,結果為0所以,在這種應用場景下,只需要設計一個立即數(shù),這個立即數(shù)在想要清零的那些位上為0,在其他的位上都為1應用場景2保留操作數(shù)的某幾位,清零其他位一個數(shù)跟1相與,結果等于1一個數(shù)跟0相加,結果等于0立即數(shù)清零的位為0,其他位為1例如,ANDAL,0fh這條指令將AL的高四位清0,低四位保留ANDAL,0FH應用場景2高四位清0,低四位保留保留操作數(shù)的某幾位,清零其他位,第三個應用場景是在操作數(shù)不變的情況下使CF和OF位清零,這個應用場景利用的是,與運算的結果不管結果如何都會使CF和OF位清0應用場景3操作數(shù)不變下使CF和OF位清零運算結果:CF和OF位都會清0例如,ANDAX,AX,這條指令是求AX自己跟自己相與的結果,那就是0和0相與,1和1相與,結果保持不變,但是在計算完成后,CF和OF為0ANDAX,AX應用場景30和0相與1和1相與結果不變操作數(shù)不變下使CF和OF位清零下面我們通過一個具體的例子來看一下,與運算指令如何應用,題目要求從地址為3f8h這個端口讀入一個字節(jié),如果這個數(shù)的比特一位為一,則可以從38h這個端口將data為首地址的一個字輸出“與”指令應用從地址為3F8H端口中讀入一個字節(jié)數(shù),如果該數(shù)bit1位為1,則可從38FH端口將DATA為首地址的1個字輸出,否則就不能進行數(shù)據(jù)傳送,請編寫相應的程序段。這個題目是,輸入輸出指令和與運算指令的應用其中,輸入數(shù)據(jù)是用輸入指令獲取的,獲取到數(shù)據(jù)以后,輸入指令輸出指令與運算指令輸入數(shù)據(jù)“與”指令應用從地址為3F8H端口中讀入一個字節(jié)數(shù),如果該數(shù)bit1位為1,則可從38FH端口將DATA為首地址的1個字輸出,否則就不能進行數(shù)據(jù)傳送,請編寫相應的程序段。要用與運算指令來判斷一下這個數(shù)據(jù)是否滿足條件,輸入指令輸出指令與運算指令輸入數(shù)據(jù)是否滿足條件“與”指令應用從地址為3F8H端口中讀入一個字節(jié)數(shù),如果該數(shù)bit1位為1,則可從38FH端口將DATA為首地址的1個字輸出,否則就不能進行數(shù)據(jù)傳送,請編寫相應的程序段。,如果不能滿足條件的話,就再去這個端口取數(shù)據(jù),如果能滿足條件的話,就按題目的意思用輸出指令將一個數(shù)據(jù)輸出輸入指令輸出指令與運算指令
不滿足條件:端口取數(shù)據(jù)滿足條件:輸出指令將數(shù)據(jù)輸出“與”指令應用從地址為3F8H端口中讀入一個字節(jié)數(shù),如果該數(shù)bit1位為1,則可從38FH端口將DATA為首地址的1個字輸出,否則就不能進行數(shù)據(jù)傳送,請編寫相應的程序段。基于這個思路,我們可以畫一下流程圖,流程圖畫好以后,我們將指令填寫在相應的流程處,即可完成這個程序分析題目
畫流程圖
寫程序分析題目
畫流程圖
寫程序流程思路下面我們來畫一下這個程序的流程圖,首先,是要從指定的端口讀入數(shù)據(jù)拿到數(shù)據(jù)以后,要判斷一下它的bit1位是否為1,其次,如果為1,從另一個指定的端口輸出數(shù)據(jù),如果不為1,就重新讀數(shù)據(jù),這就是整個流程
畫流程圖開始從3F8H端口讀入數(shù)據(jù)此數(shù)據(jù)的bit1是否為1從38FH端口將DATA為首地址的字輸出YN超過FFHIN指令流程畫完了,我們來看一下,第一步讀入數(shù)據(jù),要用IN指令,由于給定的端口是3F8H,超過了FFH,因此要先把這個端口傳送到DX中,再從DX中讀入數(shù)據(jù)
畫流程圖開始從3F8H端口讀入數(shù)據(jù)此數(shù)據(jù)的bit1是否為1從38FH端口將DATA為首地址的字輸出YN端口:3F8H傳送DX讀入數(shù)據(jù)OUT指令最后一步是輸出數(shù)據(jù),要用OUT指令,同樣,由于給定的端口也超過了FFH,因此也要先把端口號傳送到DX中,再從DX中輸出數(shù)據(jù)中間判斷條件這一步,是判斷數(shù)據(jù)的bit1位是否為1,我們要知道最低位是比特0位,所以bit1位其實就是次最低位,IN指令
畫流程圖開始從3F8H端口讀入數(shù)據(jù)此數(shù)據(jù)的bit1是否為1從38FH端口將DATA為首地址的字輸出YN超過FFH端口:3F8H傳送DX輸出數(shù)據(jù)最低位:比特0位次最低位:比特1位AND指令OUT指令最后一步是輸出數(shù)據(jù),要用OUT指令,同樣,由于給定的端口也超過了FFH,因此也要先把端口號傳送到DX中,再從DX中輸出數(shù)據(jù)中間判斷條件這一步,是判斷數(shù)據(jù)的bit1位是否為1,我們要知道最低位是比特0位,所以bit1位其實就是次最低位,IN指令
畫流程圖開始從3F8H端口讀入數(shù)據(jù)此數(shù)據(jù)的bit1是否為1從38FH端口將DATA為首地址的字輸出YNAND指令那么與次數(shù)據(jù)相與的立即數(shù),我們可以設計成02H,當兩者相與的結果為0時,說明數(shù)據(jù)的bit1位為0,當兩者相與的結果為1時,說明數(shù)據(jù)的bit1為1IN指令
畫流程圖開始從3F8H端口讀入數(shù)據(jù)此數(shù)據(jù)的bit1是否為1從38FH端口將DATA為首地址的字輸出YN次數(shù)據(jù)立即數(shù)結果為0時,bit1位為0結果為1時,bit1位為1好,下面我們來看具體的程序是怎么寫的,一般程序會有初始化的部分,用來設置內存單元中存儲的初值等等具體程序一般程序的初始化部分具體程序一般程序的初始化部分向下箭頭內存單元中存儲的初值1小時前回復(0)
內存單元中存儲的初值但是這個程序中沒有設置初始值的要求,那么初始化的部分就可以不寫具體程序一般程序的初始化部分內存單元中存儲的初值程序沒設置初始值要求,初始化部分可不寫下面來填寫讀入數(shù)據(jù)的部分,先用MOV指令將3F8h傳送到DX中,再用IN指令從DX讀入數(shù)據(jù)到AL中,因為題目要求對入一個字節(jié),所以讀入到AL中即可。程序編寫初始化部分讀入數(shù)據(jù)部分判斷數(shù)據(jù)部分輸出數(shù)據(jù)部分MOVDX,3F8HWAIT:INAL,DXMOV指令將3F8h傳送到DX中IN指令從DX讀入數(shù)據(jù)到AL中下面來填寫判斷的部分,將AL跟02H相與,如果結果為零,就重新讀入數(shù)據(jù),如果結果不為0,就繼續(xù)執(zhí)行。程序編寫初始化部分讀入數(shù)據(jù)部分判斷數(shù)據(jù)部分輸出數(shù)據(jù)部分MOVDX,3F8HWAIT:INAL,DXANDAL,02HJZWAIT相與結果為0,重新讀入數(shù)據(jù)結果不為0,繼續(xù)執(zhí)行這里的JZ是跳轉指令,判斷運算結果是否為0,如果為0的話,就跳轉到WAIT的位置,開始執(zhí)行。如果運算結果不為0,就繼續(xù)執(zhí)行下一條指令程序編寫初始化部分讀入數(shù)據(jù)部分判斷數(shù)據(jù)部分輸出數(shù)據(jù)部分MOVDX,3F8HWAIT:INAL,DXANDAL,02HJZWAIT跳轉指令結果為0,跳轉到WAIT位置,開始執(zhí)行
結果不為0,繼續(xù)執(zhí)行下一條指令下面來填寫輸出的部分,用MOV指令將38Fh傳送到DX中,再用MOV指令DATA開始的兩個連續(xù)單元的內存?zhèn)魉偷紸X中,最后用OUT指令將AX的內容輸出到DX指示的端口中。程序編寫初始化部分讀入數(shù)據(jù)部分判斷數(shù)據(jù)部分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 財務部年終報告開創(chuàng)新局面引領新風尚
- 手工藝行業(yè)衛(wèi)生衛(wèi)生控制
- 2025-2030全球電子后視鏡系統(tǒng)行業(yè)調研及趨勢分析報告
- 2025-2030全球聯(lián)合收割機皮帶行業(yè)調研及趨勢分析報告
- 2025-2030全球3D 打印陶瓷絲行業(yè)調研及趨勢分析報告
- 2025年全球及中國智能睡眠盒行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球IP65工業(yè)顯示器行業(yè)調研及趨勢分析報告
- 2025-2030全球機器人用立體攝像頭行業(yè)調研及趨勢分析報告
- 2025-2030全球不銹鋼面板安裝顯示器行業(yè)調研及趨勢分析報告
- 2025-2030全球全液壓解耦系統(tǒng)行業(yè)調研及趨勢分析報告
- 中國儲備糧管理集團有限公司蘭州分公司招聘筆試真題2024
- 第1課 隋朝統(tǒng)一與滅亡 課件(26張)2024-2025學年部編版七年級歷史下冊
- 提高金剛砂地坪施工一次合格率
- 【歷史】唐朝建立與“貞觀之治”課件-2024-2025學年統(tǒng)編版七年級歷史下冊
- 產(chǎn)業(yè)園區(qū)招商合作協(xié)議書
- 2024年廣東省公務員錄用考試《行測》真題及答案解析
- 2025新譯林版英語七年級下單詞默寫表
- 盾構標準化施工手冊
- 天然氣脫硫完整版本
- 中歐班列課件
- 光伏十林業(yè)可行性報告
評論
0/150
提交評論