欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      微機(jī)原理與接口技術(shù)(樓順天編著)課后第八章習(xí)題答案[推薦5篇]

      時間:2019-05-14 14:17:30下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《微機(jī)原理與接口技術(shù)(樓順天編著)課后第八章習(xí)題答案》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《微機(jī)原理與接口技術(shù)(樓順天編著)課后第八章習(xí)題答案》。

      第一篇:微機(jī)原理與接口技術(shù)(樓順天編著)課后第八章習(xí)題答案

      第8章 中斷系統(tǒng)與可編程中斷控制器8259A

      1.什么叫中斷?8086微機(jī)系統(tǒng)中有哪幾種不同類型的中斷?

      答:在CPU執(zhí)行程序的過程中,由于某個事件的發(fā)生,CPU暫停當(dāng)前正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行處理該事件的一個中斷服務(wù)程序,待中斷服務(wù)程序執(zhí)行完成后,CPU再返回到原被中斷的程序繼續(xù)執(zhí)行。這個過程稱為中斷。

      8086微機(jī)系統(tǒng)中有3種中斷: 1)外部可屏蔽中斷。2)外部不可屏蔽中斷。3)內(nèi)部中斷

      2.什么是中斷類型?它有什么用處?

      答:通常用若干位二進(jìn)制編碼來給中斷源編號,該編號稱為中斷類型號。8086微處理器用8位二進(jìn)制碼表示一個中斷類型,有256個不同的中斷。這些中斷可以劃分為內(nèi)部中斷、外部不可屏蔽中斷、外部可屏蔽中斷三類。

      用處:使CPU識別中斷源,從而能正確地轉(zhuǎn)向該中斷源對應(yīng)的中斷服務(wù)程序入口。3.什么是中斷嵌套?使用中斷嵌套有什么好處?對于可屏蔽中斷,實(shí)現(xiàn)中斷嵌套的條件是 什么?

      答:微處理器在處理低級別中斷的過程中,如果出現(xiàn)了級別高的中斷請求,微處理器停止執(zhí)行低級中斷的處理程序而去優(yōu)先處理高級中斷,等高級中斷處理完畢后,再接著執(zhí)行低級的未處理完的程序,這種中斷處理方式成為中斷嵌套。

      使用中斷嵌套的好處是能夠提高中斷響應(yīng)的實(shí)時性。對于某些對實(shí)時性要求較高的操作,必須賦予較高的優(yōu)先級和采取中斷嵌套的方式,才能保證系統(tǒng)能夠及時響應(yīng)該中斷請求。

      對于可屏蔽中斷,實(shí)現(xiàn)中斷嵌套的條件有:(1)微處理器處于中斷允許狀態(tài)(IF=1)(2)中斷請求的優(yōu)先級高于正在執(zhí)行的中斷處理程序的優(yōu)先級。(3)中斷請求未被8259屏蔽。(4)沒有不可屏蔽中斷請求和總線請求。

      4.什么是中斷向量?中斷類型號為1FH的中斷向量為2345H:1234H,畫圖說明它在中斷向 量表中的存放位臵。

      答:中斷向量為每個中斷服務(wù)子程序的入口地址,為32位(16位的偏移地址和16位的段地址),在中斷向量表中占用4個地址單元。在8086CPU組成的計算機(jī)系統(tǒng)中,采用最低的1024個地址單元(稱為0頁)來存儲中斷向量。這1024個地址單元成為中斷向量表。因此,中斷類型號位1FH的中斷向量,在中斷向量表中的存儲位臵為1FH×4=07CH。中斷類型號為1FH的中斷向量在中斷向量表中的存放位臵如圖8.1所示。

      圖8.1 中斷類型號為1FH的中斷向量在中斷向量表中的存放位臵

      5.中斷向量表的功能是什么?敘述CPU利用中斷向量表轉(zhuǎn)入中斷服務(wù)程序的過程。答:中斷向量表是用來存放中斷向量的。是中斷類型號與它對應(yīng)的中斷服務(wù)程序入口地址之間的換算表。

      1)CPU獲得中斷類型號n后,將當(dāng)前PSW、CS和IP的內(nèi)容依次壓入堆棧,保存斷點(diǎn)的狀態(tài)和斷點(diǎn)地址,以便返回時恢復(fù)。2)將PSW中的IF位和TF位清0,關(guān)閉中斷。

      3)把地址為4×n和4×n+1兩個單元的16位數(shù)作為中斷服務(wù)程序入口的偏移地址臵入IP,把地址為4×n+2和4×n+3兩個單元的16位數(shù)作為中斷服務(wù)程序入口的段地址臵入CS。4)轉(zhuǎn)入中斷服務(wù)程序。6.敘述可屏蔽中斷的響應(yīng)過程。

      答:在IF位為1情況下,從INTR端加入中斷請求信號開始,到進(jìn)入中斷服務(wù)程序?yàn)橹顾?jīng)過的一系列操作,稱為可屏蔽中斷的響應(yīng)過程。首先等待當(dāng)前指令結(jié)束后,進(jìn)入中斷響應(yīng)周期。然后,從微處理器外部的中斷控制邏輯獲得中斷類型號。隨后把當(dāng)前的PSW、CS和IP的內(nèi)容依次壓入堆棧,接著清除PSW中的IF位和TF位為0。最后把中斷服務(wù)程序的入口地址臵入IP和CS。至此,完成了可屏蔽中斷的響應(yīng)過程,開始進(jìn)入中斷服務(wù)程序。

      7.簡要敘述8259A內(nèi)部IRR、IMR、ISR三個寄存器的作用。

      答:IRR:中斷請求寄存器,用來鎖存外部設(shè)備送來的IR7~IR0中斷請求信號。當(dāng)外部中斷請求線IRi有中斷請求時,IRR中與之對應(yīng)的第i位被臵1。該寄存器內(nèi)容可以被微處理器讀出。

      IMR:用于設(shè)臵中斷請求的屏蔽信號。此寄存器第i位被臵1時,與之對應(yīng)的外部中斷請求線IRi被屏蔽,不能向微處理器發(fā)出INT信號。

      ISR:用于記錄當(dāng)前正在被服務(wù)的所有中斷級,包括尚未服務(wù)完而中途被更高優(yōu)先級打斷的中斷級。若微處理器響應(yīng)了IRi中斷請求,則ISR中與之對應(yīng)的第i位臵1。中斷處理結(jié)束前,要用指令清除這一位。

      8.中斷控制器8259A的初始化編程是如何開始的?

      答:初始化編程就是指對ICW(初始化命令字)的初始化,對ICW的初始化有一定的順序,必須從ICW1開始。對中斷控制器8259A的初始化編程次序如圖8.2所示。初始化ICW1地址A0=0初始化ICW2地址A0=1N是級聯(lián)嗎?Y初始化ICW3地址A0=1NIC4=1?Y初始化ICW1地址A0=1

      圖8.2 對中斷控制器8259A的初始化編程次序

      9.設(shè)某微機(jī)系統(tǒng)需要管理64級中斷,問組成該中斷機(jī)構(gòu)時需 片8259A。

      解:一片8259可控制8級中斷,第1片通過級聯(lián)8片8259可將中斷擴(kuò)充至64級。所以組成該中斷機(jī)構(gòu)共需9片8259。

      10.完全嵌套的優(yōu)先級排序方式的規(guī)則是什么?如何設(shè)臵這種方式?

      答:在全嵌套方式下,中斷優(yōu)先級的級別是固定的,即IR0優(yōu)先級最高,IR1~IR6逐級次之,IR7最低。如果對8259A進(jìn)行初始化后沒有設(shè)臵其他優(yōu)先級別,那么8259A就按全嵌套方式工作。

      11.如果設(shè)備D1、D2、D3、D4、D5按完全嵌套優(yōu)先級排列規(guī)則。設(shè)備D1的優(yōu)先級最高,D5最低。在下列中斷請求下,給出各設(shè)備的中斷處理程序的次序(假設(shè)所有的中斷處理程序開始后就有STI指令,并在中斷返回之前發(fā)出結(jié)束命令)

      (1)設(shè)備3和4同時發(fā)出中斷請求;

      (2)設(shè)備3和4同時發(fā)出中斷請求,并在設(shè)備3的中斷處理程序完成之前,設(shè)備2發(fā)出中斷請求;

      (3)設(shè)備1、3、5同時發(fā)出中斷請求,在設(shè)備3的中斷處理程序完成之前,設(shè)備2發(fā)出中斷請求。

      解:(1)設(shè)備3和4同時發(fā)出中斷請求;

      中斷處理次序?yàn)椋篋3→D4,示意圖如圖8.3(a)所示。

      主程序D3,D4同時請求D3服務(wù)程序STID4服務(wù)程序STI3置ISR1ISR3清零ISR4置1IRETIRETISR4清零

      圖8.3(a)設(shè)備3和4同時發(fā)出中斷請求的中斷處理程序的次序示意圖

      (2)設(shè)備3和4同時發(fā)出中斷請求,并在設(shè)備3的中斷處理程序完成之前,設(shè)備2發(fā)出中斷請求;

      中斷處理次序?yàn)椋?D3→D2→D3→D4,示意圖如圖8.3(b)所示。

      D3,D4同時請求D2請求D3服務(wù)程序STID2服務(wù)程序STI主程序I置1SR312置RSIISR3清零ISR4置1ISR2清零IRETIRETD4服務(wù)程序STIISR4清零IRET

      圖8.3(b)中斷處理程序的次序示意圖(3)設(shè)備1、3、5同時發(fā)出中斷請求,在設(shè)備3的中斷處理程序完成之前,設(shè)備2發(fā)出中斷請求。

      中斷處理次序?yàn)椋篋1→D3→D2→D3→D5,示意圖如圖8.3(c)所示。

      D1,D3,D5同時請求D2請求D1服務(wù)程序STID3服務(wù)程序STID2服務(wù)程序STI主程序11置RSIISR1清零IRETIRETISR3置1ISR3清零ISR2清零IRETISR5置1D5服務(wù)程序STIISR5清零IRET 圖8.3(c)中斷處理程序的次序示意圖

      12.8259A是怎樣進(jìn)行中斷優(yōu)先權(quán)管理的?

      答:8259A 利用優(yōu)先權(quán)處理器來識別和管理中斷請求信號的優(yōu)先級別。當(dāng)幾個中斷請求信號同時出現(xiàn)時,優(yōu)先權(quán)處理器根據(jù)控制邏輯規(guī)定的優(yōu)先權(quán)級別和IMR的內(nèi)容來判斷這些請求信號的最高優(yōu)先級。微處理器響應(yīng)中斷請求時,把優(yōu)先權(quán)最高的IRR中的“1”送入ISR.。當(dāng)8259A正在為某一級中斷服務(wù)時,若又出現(xiàn)新的中斷請求,則由優(yōu)先權(quán)處理器判斷新出現(xiàn)的中斷請求的級別是否高于正在處理的那一級。若是,則進(jìn)入多重中斷處理。

      13.特殊全嵌套方式有什么特點(diǎn)?它的使用場合是什么? 答:多片8259級聯(lián)時,主片必須工作在特殊全嵌套方式下。

      假設(shè)從片工作在全嵌套方式下,先后收到了兩次中斷請求,而且第二次中斷請求有較高的優(yōu)先級,那么該從片就會兩次通過INT引腳向上一級申請中斷。如果主片采用全嵌套方式,則它不會響應(yīng)來自同一引腳的第二次中斷請求。而采用特殊全嵌套方式后,就會響應(yīng)該請求。14.向8259A發(fā)送“中斷結(jié)束”命令有什么作用?8259A有哪幾種中斷結(jié)束方式?分析各自 的利弊。

      答:向8259A發(fā)送“中斷結(jié)束”命令,使相應(yīng)的中斷級在ISR中的相應(yīng)位清“0”,表示該中斷處理已經(jīng)結(jié)束。

      8259A有自動中斷結(jié)束方式(AEOI)和非自動中斷結(jié)束方式(EOI)。(1)自動中斷結(jié)束方式(AEOI)。

      在這種方式下,系統(tǒng)一旦進(jìn)入中斷響應(yīng),8259A就在第二個中斷響應(yīng)周期INTA信號的后沿,自動將ISR中被響應(yīng)中斷級的對應(yīng)位清“0”。這是一種最簡單的中斷結(jié)束處理方式,可以通過初始化命令來設(shè)定,但這種方式只能用在系統(tǒng)中只有一個8259A,且多個中斷不會嵌套的情況。

      (2)非自動中斷結(jié)束方式(EOI)。

      在這種工作方式下,從中斷服務(wù)程序返回前,必須在程序里向8259A輸出一個中斷結(jié)束命令(EOI),把ISR對應(yīng)位清“0”。具體做法有一般的中斷結(jié)束方式和特殊的中斷結(jié)束EOI命令。這種方式可用于系統(tǒng)中有多個8259A或多個中斷中有嵌套的情況,但這種方式要比自動中斷結(jié)束方式復(fù)雜。而且在這種方式下,如果在程序里忘記了將ISR對應(yīng)位清零,那么,8259A在一般情況下將不再響應(yīng)這個中斷以及比它級別低的中斷請求。

      15.初始化8259A時設(shè)臵為非自動結(jié)束方式,則在中斷服務(wù)程序即將結(jié)束時必須設(shè)臵什么操 作命令?不設(shè)臵這種命令會發(fā)生什么現(xiàn)象?如果初始化時設(shè)臵為自動結(jié)束方式時,還需要設(shè)臵這種操作嗎?

      答:必須發(fā)送中斷結(jié)束命令,即向操作控制字OCW2的EOI位寫1。如果不設(shè)臵這種命令,則該中斷服務(wù)程序結(jié)束后,CPU將無法響應(yīng)優(yōu)先級比它低的中斷請求以及它自身的下一次中斷請求。若初始化為自動結(jié)束方式,則不需設(shè)臵這種操作。

      16.在哪些情況下需用CLI指令關(guān)中斷?在哪些情況下需用STI指令開中斷? 答:

      ① 關(guān)于有前綴的指令,前綴包括段寄存器前綴(例如指令MOV AX , CS:VAR)、重復(fù)前綴(例如指令 REP MOVSB)、和LOCK 前綴。應(yīng)明確的是,指令前綴并不是一個獨(dú)立的指令,只是指令的一部分,所以不允許在前綴碼和指令碼之間響應(yīng)中斷,所以應(yīng)在這條指令前臵CLI(關(guān)中斷)指令,在這條指令后臵STI(開中斷)指令。② 對于目的地址是段寄存器的MOV 和POP 指令(除CS外),本條指令后不允許響應(yīng)中斷,而是還要執(zhí)行一條指令結(jié)束后才能響應(yīng)中斷,這時可以在指令前加CLI,指令后加STI。

      ③ 需要進(jìn)行中斷嵌套時,由于微處理器在響應(yīng)中斷時已將IF清零,所以一定要在中斷處理程序中加開中斷指令,才有可能進(jìn)行中斷嵌套。

      17.某系統(tǒng)中有兩片8259A,從片的請求信號連主片的IR2引腳,設(shè)備A中斷請求信號連從

      片IR5引腳。說明設(shè)備A在一次I/O操作完成后通過兩片8259A向8086申請中斷,8086微處理器通過兩片8259A響應(yīng)中斷,進(jìn)入設(shè)備A的中斷服務(wù)程序,發(fā)送中斷結(jié)束命令,返回斷點(diǎn)的全過程。

      答:設(shè)備A在一次I/O操作完成后在8259A從片中斷請求輸入端IR5上產(chǎn)生中斷請求,中斷請求被鎖存在8259A從片IRR中,并經(jīng)IMR“屏蔽”,其結(jié)果送給優(yōu)先權(quán)電路判優(yōu)??刂七壿嫿邮罩袛嗾埱?,向8259A主片IR2引腳輸出INT信號,中斷請求被鎖存在8259A主片IRR中,并經(jīng)IMR“屏蔽”,其結(jié)果送給優(yōu)先權(quán)電路判優(yōu)??刂七壿嫿邮罩袛嗾埱?,向CPU輸出INT信號。CPU從INTR引腳接受8259A主片的INT信號,進(jìn)入連續(xù)兩個INTA 周期。優(yōu)先權(quán)電路設(shè)臵ISR中的對應(yīng)位,在收到第一個INTA 信號后,8259A主片把當(dāng)前申請中斷的8259A從片的ID代碼010,通過CAS0~CAS2送到相應(yīng)的8259A從片。相應(yīng)地8259A從片在收到第二個INTA 信號時,將中斷類型號N送到數(shù)據(jù)線上。

      8086CPU獲得中斷類型號N后,在N×4和N×4+2對應(yīng)的中斷向量表單元獲取中斷向量分別臵入IP和CS,從此進(jìn)入設(shè)備A的中斷服務(wù)程序。

      在中斷服務(wù)程序結(jié)束前(即執(zhí)行IRET指令前),應(yīng)分別向從片8259和主片8259發(fā)送EOI中斷結(jié)束命令,然后執(zhí)行IRET指令,返回斷點(diǎn)。

      18.某8086系統(tǒng)用3片8259A級聯(lián)構(gòu)成中斷系統(tǒng),主片中斷類型號從10H開始。從片的中 斷申請連主片的IR4和IR6引腳,它們的中斷類型號分別從20H、30H開始。主、從片均采用上升沿觸發(fā),非自動中斷結(jié)束方式。且主片采用特殊全嵌套方式,從片采用完全嵌套方式。請編寫他們的初始化程序。

      答:設(shè)8259A主片的端口地址為20H(A0=0)和 21H(A1=1),第一個8259A從片的端口地址為50H(A0=0)和 51H(A1=1),第二個8259A從片的端口地址為0A0H(A0=0)和 0A1H(A1=1),初始化程序如下: 主片:

      MOV AL,00010001B;ICW1:邊沿觸發(fā),級聯(lián)

      OUT 20H,AL

      MOV AL,00010000B;ICW2:中斷類型號10H~17H

      OUT 21H,AL

      MOV AL,01010000B;ICW3:IR4和IR6連有從片

      OUT 21H,AL

      MOV AL,00010001B;ICW4:特殊全嵌套,非緩沖,非自動中斷結(jié)束

      OUT 21H,AL 從片1:

      MOV AL,00010001B;ICW1:邊沿觸發(fā),級聯(lián)

      OUT 50H,AL

      MOV AL,00100000B;ICW2:中斷類型號20H~27H

      OUT 51H,AL

      MOV AL,00000100B;ICW3:INT引腳連主片IROUT 51H,AL

      MOV AL,00000001B;ICW4:完全嵌套,非緩沖,非自動中斷結(jié)束

      OUT 51H,AL 從片二:

      MOV AL,00010001B;ICW1:邊沿觸發(fā),級聯(lián)

      OUT 0A0H,AL

      MOV AL,00110000B;ICW2:中斷類型號30H~37H

      OUT 0A1H,AL

      MOV AL,00000110B;ICW3:INT引腳連主片IR6

      OUT 0A1H,AL

      MOV AL,00000001B;ICW4:完全嵌套,非緩沖,非自動中斷結(jié)束

      OUT 0A1H,AL 19.設(shè)8259A的端口地址為50H(A0=0)和51H(A1=1),請給下面的8259A初始化程序加上 注釋,說明各命令字的含義。

      MOV

      AL,13H OUT

      50H,AL MOV

      AL,08H OUT

      51H,AL MOV

      AL,0BH OUT

      51H,AL 解:

      MOV

      AL,13H OUT

      50H,AL

      ;初始化ICW1,設(shè)臵為邊沿觸發(fā),單片工作 MOV

      AL,08H OUT

      51H,AL;ICW

      2;中斷類型號的高5位為00001B,即中斷類型號為08H~0FH MOV

      AL,0BH OUT

      51H,AL;初始化ICW4,一般全嵌套緩沖方式,中斷非自動結(jié)束 20.設(shè)8259A端口地址為20H和21H,怎樣發(fā)送清除ISR3的命令? 答:8259A可通過設(shè)臵操作控制字位。的值為23H,發(fā)送中斷結(jié)束命令(EOI命令),來清除ISR的指定

      用低位端口地址(即A0=0)進(jìn)行操作,因此可編程如下:

      MOV AL,23H MOV 20H,AL 21.根據(jù)中斷過程的要求設(shè)計的一個中斷系統(tǒng),大致需要考慮哪些問題? 答:1)設(shè)計必要的中斷源,確定它們提出的中斷請求的方式。

      2)編寫初始化程序。根據(jù)急迫程度的不同,規(guī)定好中斷源的優(yōu)先級別,以確定當(dāng)幾個中斷源同時請求時,處理機(jī)能有一個先后響應(yīng)次序。3)當(dāng)處理機(jī)響應(yīng)中斷后,需要把被中斷程序的現(xiàn)場、斷點(diǎn)保護(hù)起來,以便中斷處理結(jié)束后能返回原程序。4)中斷服務(wù)程序設(shè)計。5)恢復(fù)現(xiàn)場,返回原程序。

      22.給定(SP)=0100H,(SS)=0300H,(PSW)=0240H,以及存儲單元的內(nèi)容(00020H)=0040H,(00022H)=0100H,在段地址為0900H及偏移地址為00A0H的單元中有一條中斷指令I(lǐng)NT 8,試問執(zhí)行INT 8指令后,SP、SS、IP、PSW的內(nèi)容是什么?棧頂?shù)娜齻€字是什么? 答:執(zhí)行INT8之后,(SP)=00FAH,(SS)=0300H,(IP)=0040H,(PSW)=0040H。由于INT8為雙字節(jié)指令,所以棧頂?shù)娜齻€字從上到下分別是 00A2H,0900H,0240H。23.中斷服務(wù)程序結(jié)束時,用RETF指令代替IRET指令能否返回主程序?這樣做存在什么 問題?

      答:可以。但這樣做存在問題。IRET指令執(zhí)行時將出棧IP,CS和PSW的值,而RETF指令只出棧IP,CS的值,因而若中斷服務(wù)程序中改變了標(biāo)志位,用RETF指令返回在主程序中將無法恢復(fù)標(biāo)志位的值。尤其是在中斷服務(wù)程序中關(guān)中斷后(IF=0),用RETF指令將無法重新開中斷,從而導(dǎo)致中斷服務(wù)結(jié)束后CPU不能再響應(yīng)其他可屏蔽中斷。

      第二篇:微機(jī)原理與接口技術(shù)課后習(xí)題答案(朱紅)

      第一章習(xí)題答案

      一、選擇題

      1.十進(jìn)制數(shù) 66 轉(zhuǎn)換成二進(jìn)制數(shù)為_______。

      A.11000010 B.01100110 C.11100110 D.01000010

      答案:D

      2.十進(jìn)制數(shù) 27.25 轉(zhuǎn)換成十六進(jìn)制數(shù)為_______。

      A.B1.4H B.1B.19H C.1B.4H D.33.4H 答案:C

      3.下列數(shù)中最小的是________。

      A.(101001)2 B.(52)8 C.(2B)16 D.(50)10 答案:A

      4.若一個數(shù)的 BCD 編碼為 00101001,則該數(shù)與______相等。

      A.41H B.121D C.29D D.29H 答案:C

      5.十進(jìn)制數(shù) 9874 轉(zhuǎn)換成 BCD 數(shù)為________。

      A.9874H B.4326H C.2692H D.6341H 答案:A

      6.BCD 數(shù) 64H 代表的真值為_______。

      A.100 B.64 C.-100 D.+100 答案:B

      7.十六進(jìn)制數(shù) 88H,可表示成下面幾種形式,錯誤的表示為_______。

      A.無符號十進(jìn)制數(shù) 136 B.帶符號十進(jìn)制數(shù)-120 C.壓縮型 BCD 碼十進(jìn)制數(shù) 88 D.8 位二進(jìn)制數(shù)-8 的補(bǔ)碼表示

      答案:D

      8.若[A]原=1011 1101,[B]反=1011 1101,[C]補(bǔ)=1011 1101,以下結(jié)論正確的是______。

      A.C 最大 B.A 最大 C.B 最大 D.A=B=C 答案:B

      9.8 位二進(jìn)制補(bǔ)碼表示的帶符號數(shù) 1000 0000B 和 1111 1111B 的十進(jìn)制數(shù)分別是____。A.128 和 255 B.128 和-1 C.-128 和 255 D.-128 和-1 答案:D

      10.微機(jī)中地址總線的作用是___________。

      A.用于選擇存儲器單元 B.用于選擇進(jìn)行信息傳輸?shù)脑O(shè)備 C.用于指定存儲器單元和 I/O 設(shè)備接口單元的選擇地址 D.以上選擇都不對

      答案:C

      11.計算機(jī)中表示地址使用____。

      A.無符號數(shù) B.原碼 C.反碼 D.補(bǔ)碼

      答案:A

      二、填空題

      1.計算機(jī)的主機(jī)由_______、控制器、主存儲器組成。

      答案:運(yùn)算器

      2._______確定了計算機(jī)的 5 個基本部件:輸入器、______、運(yùn)算器、_______和控制器,程 序和數(shù)據(jù)存放在______中,并采用二進(jìn)制數(shù)表示。

      答案:馮.諾依曼、輸出器 存儲器 存儲器 3.10110.10111B 的十六進(jìn)制數(shù)是_______,34.97H 的十進(jìn)制數(shù)是______,將 114.25 轉(zhuǎn)換為二 進(jìn)制數(shù)為_______。

      答案:16.B8H、52.6055、1110010.01 4.(640)10=(______)2=(________)16 答案:101000 0000 280 5.(256.375)10=(______)2=(________)16 答案:10000 0000.011 100.6

      6.(10111100.1101)2=(______)10=(________)16 答案:188.8125 BC.D

      7.二進(jìn)制數(shù) 1000 0001B 若為原碼,其真值為_____;若為反碼,其真值為_____;若為補(bǔ)碼,其真值為_____。

      答案:-1 -126 -127 8.一個 8 位的二進(jìn)制整數(shù),若采用補(bǔ)碼表示,且由 3 個“1”和 5 個“0”組成,則最小的十 進(jìn)制數(shù)為______。

      答案:-125 1000 0011

      9.在微機(jī)中,一個浮點(diǎn)數(shù)由_____和_____兩個部分構(gòu)成。

      答案:尾數(shù)和階碼

      10.若[X]原=[Y]反=[Z]補(bǔ)=90H,試用十進(jìn)制分別寫出其大小,X=_____;Y=_____;Z=_____。答案:-16 -111 -112

      三、問答題

      1.在計算機(jī)中為什么都采用二進(jìn)制數(shù)而不采用十進(jìn)制數(shù)?二進(jìn)制數(shù)有哪兩種縮寫形式? 答案:二進(jìn)制數(shù)具有運(yùn)算簡單、電路簡便可靠等多項(xiàng)優(yōu)點(diǎn)。計算機(jī)的邏輯器件均采用高低電平來表示。二進(jìn)制數(shù)的 0 和 1 正好和邏輯電平的高低相吻合,且二進(jìn)制數(shù)使用很方便,還能 節(jié)省元器件,4 個元器件的不同組合就能表示 16 個數(shù)。八進(jìn)制和十六進(jìn)制

      2.什么是程序計數(shù)器 PC?

      答案:CPU 內(nèi)部都有一個程序計數(shù)器 PC(或指令指針計數(shù)器 IP),用來存放將要從存儲器中 取出執(zhí)行的下一條指令所在存儲空間的位置(指向下一條將要執(zhí)行的指令)。它具有自動加 1 的功能。

      3.已知[X]補(bǔ)=1001 1101B,[Y]補(bǔ)=1100 1001B,[Z]補(bǔ)=0010 0110B,計算[X+Y]補(bǔ)=?,并指出是 否溢出;計算[X-Z]補(bǔ)=?,并指出是否溢出。

      答案:[X+Y]補(bǔ)=0110 0110 溢出 [X-Z]補(bǔ)=0111 0111 溢出

      4.將下列十六進(jìn)制數(shù)的 ASCII 碼轉(zhuǎn)換為十進(jìn)制數(shù)。

      (1)313035H(2)374341H(3)32303030H(4)38413543H 答案:103H=259 7CAH=1994 2000H=8192 8A5CH=35420 第二章習(xí)題答案

      一、選擇題

      1.8086/8088CPU 內(nèi)部有一個始終指示下條指令偏移地址的部件是_______。

      A.SP B.CS C.IP D.BP

      答案:C 2.指令隊(duì)列的作用是_________。

      A.暫存操作數(shù)地址 B.暫存操作數(shù) C.暫存指令地址 D.暫存預(yù)取指令

      答案:D

      3.8086/8088 下列部件中與地址形成無關(guān)的是______。

      A.ALU B.通用寄存器 C.指針寄存器 D.段寄存器

      答案:A 4.對于 8086,下列說法錯誤的是_______。

      A.段寄存器位于 BIU 中 B.20 位的物理地址是在 EU 部件中形成的 C.復(fù)位后 CS 的初值為 FFFFHD.指令隊(duì)列的長度為 6 個字節(jié)

      答案:B 5.8086/8088 中 ES、DI 分別屬于_______。

      A.EU、BIU B.EU、EU C.BIU、BIU D.BIU、EU 答案:D

      6.BIU 與 EU 工作方式的正確說法是_______。

      A.并行但不同步工作 B.同步工作 C.各自獨(dú)立工作 D.指令隊(duì)列滿時異步工作,空時同步工作

      答案:A

      7.在執(zhí)行轉(zhuǎn)移、調(diào)用和返回指令時,指令隊(duì)列中原有的內(nèi)容_______。

      A.自動清除 B.用軟件清除 C.不改變 D.自動清除或用軟件清除

      答案:A 8.下列說法中,正確的一條是______

      A.8086/8088 標(biāo)志寄存器共有 16 位,每一位都有含義。B.8088/8086 的數(shù)據(jù)總線都是 16 位。C.8086/8088 的邏輯段不允許段的重疊和交叉 D.8086/8088 的邏輯段空間最大為 64KB,實(shí)際應(yīng)用中可能小于 64KB。

      答案:D 9.8086/8088 工作于最大模式,是因?yàn)開____。

      A.可以擴(kuò)展存儲容量 B.可以擴(kuò)大 I/O 空間 C.可以構(gòu)成多處理器系統(tǒng) D.可以提高 CPU 主頻

      答案:C

      10.8088/8086 最大模式比最小模式在結(jié)構(gòu)上至少應(yīng)增加_____。

      A.中斷優(yōu)先級控制器 B.總線控制器 C.數(shù)據(jù)驅(qū)動器 D.地址鎖存器

      答案:B

      11.組成最大模式下的最小系統(tǒng),除 CPU、時鐘電路,ROM,RAM 及 I/O 接口外,至少需增 加的芯片類型為______。

      a.總線控制器 b.總線裁決器 c.地址鎖存器 d.總線驅(qū)動器 A.b,d B.a,b,c C.a,d D.a,c,d 答案 C 12.工作在最小模式時,對 CPU 而言,下列信號皆為輸入信號的是______。

      A.HOLD、、READY B.、、READY C.、HOLD、D.、HOLD、READY 答案:A

      13.在最小工作模式下,8088/8086CPU 在每個時鐘脈沖的______處,對 HOLD 引腳上的信號 進(jìn)行進(jìn)行檢測。A)上升沿 B)下降沿 C)結(jié)束位置 D)中間位置

      答案:A

      14.LOCK 引腳的功能是____。

      A.總線鎖定 B.地址鎖定 C.數(shù)據(jù)輸入鎖定 D.數(shù)據(jù)輸出鎖定

      答案:A

      15.與存儲器(或外設(shè))同步以及與協(xié)處理器同步的引腳信號依次為_______。

      A.READY、B.READY、HOLD C.、RESET D.、答案:A

      16.工作在最大模式時,下列信號皆為輸出信號的是_______。

      A.QS0、QS1、B.QS0、、C.QS1、、S0 D.、QS1、答案:A

      17.8086/8088 最大模式時,引腳有效時的正確含義是_____。

      A.能中斷 CPU 的工作 B.能進(jìn)行 DMA 操作 C.其它總線部件不能占有總線 D.暫停 CPU 的工作

      答案:C

      18.工作在最大模式時,經(jīng)總線控制器 8288 將對應(yīng) CPU 最小模式時的三個引腳狀態(tài)進(jìn)行組合,產(chǎn)生控制和命令信號,這三個引腳應(yīng)為________。

      答案:C 19.8088/8086 中,關(guān)于總線周期敘述不正確的是_______。

      A.總線周期通常由連續(xù)的 T1~T4 組成 B.在讀寫操作數(shù)時才執(zhí)行總線周期 C.總線周期允許插入等待狀態(tài) D.總線周期允許存在空閑狀態(tài)

      答案:B 20.在 8086 讀總線周期中,進(jìn)入 T3 后發(fā)現(xiàn) READY=0,需要插入等待狀態(tài),則在插入等待狀 態(tài)時其引腳的高地址 A19~A16_______。

      A.表示讀數(shù)據(jù)對應(yīng)的高 4 位的地址 B.表示 CPU 當(dāng)前工作狀態(tài) C.處于高阻狀態(tài) D.處于不定狀態(tài)

      答案:B

      21.設(shè) 8086/8088 工作于最小模式,在存儲器讀、寫周期中,總線 AD15~AD0 上數(shù)據(jù)開始有 效的時刻(不插入 Tw)分別是______。

      A.T2、T2 B.T2、T3 C.T3、T4 D.T3、T2 答案:D

      二、填空題

      1.8086/8088CPU 在結(jié)構(gòu)上由兩個獨(dú)立的處理單元_______和_______構(gòu)成,這兩個單元可以 _____工作,從而加快了程序的運(yùn)行速度。

      答案:EU BIU 并行

      2.8086 是 Intel 系列的 16 位處理器,從功能上,它分為兩個部分:即總線接口單元和執(zhí)行單 元。總線接口單元由_______、_______、_______、_______、_______等寄存器和 20 位地址 加法器和 6 字節(jié)指令隊(duì)列構(gòu)成。執(zhí)行單元有 4 個通用寄存器,即______;4 個專用寄存器,即____、_____、_____、______等寄存器和算術(shù)邏輯單元組成。

      答案:AX、BX、CX、DX SP、BP、DI、SI

      3.任何 CPU 都有一個寄存器存放程序運(yùn)行狀態(tài)的標(biāo)志信息,在 8086 中,該寄存器是_____。其中,根據(jù)運(yùn)算結(jié)果是否為零,決定程序分支走向的標(biāo)志位是____。答案:FR ZF 4.8086/8088CPU 中標(biāo)志寄存器的 3 個控制位是_____、_____、______。

      答案:DF IF TF

      5.邏輯地址 9B50H:2C00H 對應(yīng)的物理地址是______。

      答案:9E100H 6.在任何一個總線周期的 T1 狀態(tài),ALE 輸出_____。

      答案:高電平

      7.8086 有兩種工作模式,即最小模式和最大模式,它由______決定。最小模式的特點(diǎn)是 _______,最大模式的特點(diǎn)是________。

      答案: CPU 提供全部的控制信號 需要總線控制器 8288

      8.8086CPU 可訪問的存儲器的空間為 1MB,實(shí)際上分奇數(shù)存儲體和偶數(shù)存儲體兩部分,對于 奇數(shù)存儲體的選擇信號是________,對于偶數(shù)存儲體的選擇信號是_______,對于每個存儲 體內(nèi)的存儲單元的選擇信號是___________。

      答案: A0 A19~A1

      9.在 8086 的最小系統(tǒng),當(dāng),時,CPU 完成的操作是_______。

      答案:I/O 讀

      10.在最小模式下,執(zhí)行“OUT DX, AL”指令時,、、、的狀態(tài)分別是___。

      答案:0, 0, 1, 1

      11.8086CPU 從偶地址讀寫兩個字節(jié)時,需要_____個總線周期,從奇地址讀取兩個字節(jié)時,需要_____個總線周期。

      答案:1 2

      12.8086 在存取存儲器中以偶地址為起始地址的字時,,A0 的狀態(tài)分別是____。

      答案: 1 0 0

      13.8086 向內(nèi)存地址 1200BH 寫一個字節(jié)數(shù)據(jù)時,需要一個總線周期,在該總線周期的 T1 狀 態(tài),為______,A0 為_____。

      答案:0,1 14.假設(shè)某個總線周期需插入兩個 Tw 等待狀態(tài),則該總線周期內(nèi)對 READY 信號檢測的次數(shù) 是_______。

      答案:3

      15.8086CPU 上電復(fù)位后,CS=_____,IP=_____,DS=_____,標(biāo)志寄存器 FR=_____。答案:0FFFFH,0,0,0

      16.8088/8086 的復(fù)位信號至少要維持______個時鐘周期。

      答案:4

      17.8086CPU 工作在最小模式下,控制數(shù)據(jù)流方向的信號是____、____、____、____、____。

      答案:、、、、18.當(dāng)存儲器的讀出時間大于 CPU 所要求的時間時,為了保證 CPU 與存儲器的周期配合,就 要利用______信號,使 CPU 插入一個_____狀態(tài)。

      答案:準(zhǔn)備好(READY)等待(Tw)狀態(tài)

      19.當(dāng) 8086/8088 工作于最大模式時,QS1=1,QS0=0,其表示指令隊(duì)列的狀態(tài)為______。答案:隊(duì)列為空。

      20.在 T2、T3、Tw、T4 狀態(tài)時,S6 為_____,表示 8086/8088 當(dāng)前連在總線上。

      答案:低電平

      21.8086/8088 提供的能接受外中斷請求信號的引腳是_____和_____。兩種請求信號的主要不 同處在于是否可______。

      答案:INTR NMI 屏蔽

      22.一臺微機(jī)的 CPU,其晶振的主振頻率為 8MHz,二分頻后作為 CPU 的時鐘頻率。如果該 CPU 的一個總線周期含有四個時鐘周期,那么此總線周期是_____us。

      答案:0.125

      23.某微處理器的主頻為 20MHz,由 2 個時鐘周期組成一個機(jī)器周期,設(shè)平均 3 個機(jī)器周期 可完成一條指令,其時鐘周期和平均運(yùn)算速度分別為_____。

      答案:50ns,3.33MHz

      三、問答題

      1.8086/8088CPU 在結(jié)構(gòu)上由哪兩個獨(dú)立的處理單元構(gòu)成?這樣的結(jié)構(gòu)最主要的優(yōu)點(diǎn)是什 么?

      答案:在微機(jī)中,一條機(jī)器指令由操作數(shù)和操作碼構(gòu)成,再由若干指令構(gòu)成程序。微處理器 執(zhí)行一條指令的完整步驟需要兩個階段:取指和執(zhí)行。取指是從內(nèi)存中取出指令,執(zhí)行是分 析指令要求實(shí)現(xiàn)的功能,讀取所需的操作數(shù),執(zhí)行指令規(guī)定的操作。傳統(tǒng)的 8 位處理器采用 順序執(zhí)行的方式,各條指令的執(zhí)行按以上兩個階段交替執(zhí)行。也就是說,首先取一條指令,然后執(zhí)行該指令,之后再取下一條指令,再執(zhí)行,如此重復(fù),直到整個程序執(zhí)行完畢。在 8086 中,為了加快程序的執(zhí)行速度,采用了重疊執(zhí)行的方式,各條指令的執(zhí)行過程是重 疊進(jìn)行的。每條指令的執(zhí)行過程也包括取指和執(zhí)行兩個階段,但是相鄰兩條指令的執(zhí)行過程 有一部分是同時進(jìn)行的。在執(zhí)行一條指令時,可以同時取出下一條指令。在當(dāng)前指令執(zhí)行完 畢后,就可以立即執(zhí)行下一條指令。顯然,這種重疊執(zhí)行的方式大大加快了程序的執(zhí)行速度。為了實(shí)現(xiàn)指令的重疊執(zhí)行方式,8086/8088 微處理器內(nèi)部分為兩個獨(dú)立的功能部件:執(zhí)行單 元 EU 和總線接口單元 BIU,執(zhí)行單元 EU 專門負(fù)責(zé)指令的執(zhí)行,總線接口單元 BIU 是從內(nèi)存 指定區(qū)域取出指令送到指令隊(duì)列緩沖器的。和 BIU 兩個功能部件并行工作,執(zhí)行的 BIU EU EU 在前一時刻取出的指令,與此同時,BIU 又取出下一時刻要執(zhí)行的指令,由此能使大部分取 指令和執(zhí)行指令的操作重疊進(jìn)行,大大縮短了等待指令所需的時間,提高了微處理器的利用 率和整個系統(tǒng)的執(zhí)行速度。

      2.完成下列補(bǔ)碼運(yùn)算,并根據(jù)結(jié)果設(shè)置標(biāo)志 SF、ZF、CF 和 OF,指出運(yùn)算結(jié)果是否溢出。(1)00101101B+10011100B(2)01011101B-10111010B(3)876AH-0F32BH(4)10000000B+11111111B

      答案:(1)C9H SF=1 ZF=0 CF=0 OF=0 未溢出(2)01011101B-10111010B =01011101B+01000110B A3H SF=1 ZF=0 CF=1 OF=1 有溢 出 求-Y 的補(bǔ)碼,即正數(shù)-Y 的真值(3)876AH-0F32BH =876AH+0CD5H 943FH SF=1 ZF=0 CF=1 OF=0 未溢出(4)7FH SF=0 ZF=0 CF=1 OF=1 有溢出

      3.存儲器采用分段方法進(jìn)行組織有哪些好處?

      答案:8086 微處理器 CPU 中寄存器都是 16 位,16 位的地址只能訪問大小為 64KB 以內(nèi)的內(nèi) 存。8086 系統(tǒng)的物理地址由 20 根地址線形成,怎樣用 16 位數(shù)據(jù)處理能力實(shí)現(xiàn) 20 位地址的 尋址呢?要做到對 20 位地址空間進(jìn)行訪問,就需要兩部分地址,在 8086 系統(tǒng)中,就是由段 地址和偏移地址組成的。而這兩個地址都是 16 位,將這兩個地址采用相加的方式組成 20 位地址去訪問存儲器。在 8086 系統(tǒng)的地址形成中,當(dāng)段地址確定后,該段的尋址范圍就已經(jīng)確定,其容量不大于 64KB。同時,通過修改段寄存器的內(nèi)容,可達(dá)到邏輯段在整個 1MB 空間中浮動。各個邏輯 段之間可以緊密相連,可以中間有間隔,也可以相互重疊。采用段基址和偏移地址方式組成物理地址的優(yōu)點(diǎn)是: 滿足對 8086 系統(tǒng)的 1MB 存儲空間的訪 問,同時在大部分指令中只要提供 16 位的偏移地址即可。4.Intel 8086/8088 處理器芯片功能強(qiáng)大,但引腳數(shù)有限,為了建立其與外圍豐富的信息聯(lián)系,Intel8086/8088 處理器引腳采用了復(fù)用方式,說明其采用了何種復(fù)用方式?

      答案:8086CPU 采用雙列直插式的封裝形式,具有 40 條引腳。由于受到引腳數(shù)量的限制,8086 引腳安排采用了復(fù)用技術(shù)。它的復(fù)用方式有兩種:一是采用分時復(fù)用技術(shù),在不同的 時刻通過相同的引腳傳送不同的信息,從而減少了引腳的數(shù)量;二是采用了兩種工作方式,在不同的工作方式下,部分引腳具有兩種不同的引腳功能。

      5.8086CPU 是怎樣解決地址線和數(shù)據(jù)線的復(fù)用問題的?ALE 信號何時處于有效電平? 答案:為解決引腳少的問題,8086CPU 內(nèi)部采用一個多路開關(guān),使低 16 位地址線和 16 位數(shù) 據(jù)線共用引腳。因?yàn)楫?dāng) CPU 訪問存儲器或外設(shè)時,先要給出訪問單元的地址,然后才是讀 寫數(shù)據(jù),因此在時間上是可以區(qū)分的。在總線周期的第一個時鐘周期(T1 狀態(tài)),輸出低 16 位地址(記為 A15~A0),而在總線周期的其他時鐘周期內(nèi)傳送數(shù)據(jù)。當(dāng) CPU 處于“保持響 應(yīng)”狀態(tài)時,這些引腳處于高阻隔離狀態(tài)(即懸浮狀態(tài))。ALE 信號是地址鎖存信號。8086 在總線周期開始通過地址總線輸出地址的同時,通過該引腳 輸出一個正脈沖,其下降沿用于將地址信息寫入外部的地址鎖存器中。在任何一個總線周期 的第一個時鐘周期時,ALE 輸出有效電平以表示在當(dāng)前地址/數(shù)據(jù)復(fù)用總線上輸出的是地址 信息,ALE 作為鎖存信號,對地址進(jìn)行鎖存。ALE 端不能被浮空。

      6.8086/8088 系統(tǒng)用的時鐘發(fā)生器會產(chǎn)生哪些信號?

      答案:8284A 是一個專用的時鐘發(fā)生器,產(chǎn)生 4.77MHz 的標(biāo)準(zhǔn)時鐘信號 CLK。此時鐘信號作 為系統(tǒng)時鐘,并經(jīng) CLK 引腳直接送到 8086,作為微處理器的時鐘信號。同時 8284A 還對復(fù) 位和就緒信號實(shí)現(xiàn)內(nèi)部的時鐘同步,然后再輸出,實(shí)施對 8086 的控制。所以,8086/8088 系統(tǒng)用的時鐘發(fā)生器產(chǎn)生恒定的時鐘信號 CLK,復(fù)位信號 RESET,準(zhǔn)備就緒信號 READY。

      7.說明 8086CPU 的 READY 輸入信號和 信號的作用是什么?

      答案: READY 輸入信號實(shí)際上是由訪問的存儲器或外設(shè)發(fā)出的響應(yīng)信號,高電平有效。READY 信號有效時,表示內(nèi)存或外設(shè)準(zhǔn)備就緒,馬上就可以進(jìn)行一次數(shù)據(jù)傳輸。CPU 在每個總線周 期的 T3 狀態(tài)開始對 READY 信號開始進(jìn)行采樣。如果檢測到 READY 信號為低電平,則在 T3 狀態(tài)后插入等待狀態(tài) Tw,在 Tw 狀態(tài) CPU 也對 READY 信號進(jìn)行采用,若 READY 信號仍為低 電平,則會繼續(xù)插入等待狀態(tài) Tw,所以 Tw 狀態(tài)可以插入一個或多個,直到 READY 變?yōu)楦?電平,才進(jìn)入 T4 狀態(tài),完成數(shù)據(jù)傳輸過程,從而結(jié)束當(dāng)前總線周期。測試信號,低電平有效,信號是和指令 WAIT 結(jié)合起來使用的,CPU 執(zhí)行 WAIT 指令時,在 CPU 處于等待狀態(tài),當(dāng) 信號低電平時,等待狀態(tài)結(jié)束,CPU 繼續(xù)往下執(zhí)行被暫停的指令。

      第三章習(xí)題

      一、選擇題

      1.尋址方式指出了操作數(shù)的位置,一般來說_______。

      A.立即尋址給出了操作數(shù)的地址 B.寄存器直接尋址的操作數(shù)在寄存器內(nèi),而指令給出了存儲器 C.直接尋址直接給出了操作數(shù)本身 D.寄存器直接尋址的操作數(shù)包含在寄存器內(nèi),由指令指定寄存器的名稱 答案:D

      2.寄存器尋址方式中,操作數(shù)在_________。A.通用寄存器

      答案:A 3.寄存器間接尋址方式中,操作數(shù)在_________。

      A.通用寄存器

      答案:C

      4.下列指令中的非法指令是______。

      A.MOV [SI+BX], AX C.MOV [0260H], 2346H 答案:B

      5.設(shè)(SP)=0100H,(SS)=2000H,執(zhí)行 PUSH BP 指令后,棧頂?shù)奈锢淼刂肥莀____。A.200FEH 答案:A

      6.指令 LEA BX, TAB 執(zhí)行后,其結(jié)果是______。A.將 TAB 中內(nèi)容送 BX C.將 TAB 的偏移地址送 BX 答案:C

      7.下列正確的指令格式有______。A.MOV [BX], 1 答案:D

      8.設(shè)(AX)=C544H,在執(zhí)行指令 ADD AH,AL 之后,______。A.CF=0,OF=0 答案:C

      9.若 AL、BL 中是壓縮 BCD 數(shù),且在執(zhí)行 ADD AL, BL 之后,(AL)=0CH,CF=1,AF=0。再執(zhí)行 DAA 后,(AL)=_____。A.02H 答案:B

      10.執(zhí)行下列程序后 AL 的內(nèi)容為_____。MOV AL, 25H SUB AL, 71H DAS A.B4H B.43H C.54H D.67H B.12H C.62H D.72H B.CF=0,OF=1 C.CF=1,OF=0 D,CF=1,OF=1 B.MOV AL, 0345H C.MOV ES: PTR[CX], 3 D.XLAT B.將 TAB 的段基址送 BX D.將 TAB 所指單元的存儲內(nèi)容送 BX B.0102H C.20102H D.00FEH B.MOV CL, 280 D.MOV BX, [BX] B.堆棧 C.內(nèi)存單元 D.段寄存器 B.堆棧 C.內(nèi)存單元 D.段寄存器 答案:C

      11.下列四條指令中,需要使用 DX 寄存器的指令是______。

      A.MUL BX 答案:C 12.設(shè)(AL)=0E0H,(CX)=3,執(zhí)行 RCL AL, CL 指令后,CF 的內(nèi)容_______。A.0 答案:B 13.下列四條指令中,錯誤的是______。A.SHL AL, CX 答案: A

      14.串操作指令中,有 REP 前綴的串操作指令結(jié)束的條件是________。A.ZF=1 答案:D

      15.對于下列程序段: AGAIN: MOV AL, [SI] MOV ES:[DI], AL INC INC SI DI B.ZF=0 C.CX>0 D.CX=0 B.XCHG AL, BL C.MOV BX, [SI] D.AND AX, BX B.1 C.不變 D.變反 B.DIV BL C.IN AX, 20H D.OUT 20H, AL LOOP AGAIN 也可用指令_______完成同樣的功能。A.REP MOVSB 答案:A

      16.JMP WORD PTR [DI] 是________指令。A.段內(nèi)間接轉(zhuǎn)移 答案:A 17.條件轉(zhuǎn)移指令 JNE 的轉(zhuǎn)移條件是_______。A.ZF=1 答案:C

      18.下列指令中,影響標(biāo)志位的指令是_____。

      A.從存儲器取數(shù)指令

      答案:D

      19.假設(shè)外部設(shè)備的狀態(tài)字已經(jīng)讀入 AL 寄存器,其中最低位為 0,表示外部設(shè)備忙。為了判 斷外部設(shè)備是否忙而又不破壞其它狀態(tài)位,應(yīng)選用下列哪一組指令? A.C.RCR JZ AND JZ 答案:D

      20.假定一組相鄰字節(jié)的首地址在 BX 中,末地址在 DI 中,為了使下面的程序段能用來查找 出其中第一個非零字節(jié),并把它存放在 AL 中,在橫線處應(yīng)填入的指令是什么? SUB INC DI, BX DI AL, 01H Label AL, 01H Label D.B.CMP JZ TEST JZ AL, 00H Label AL, 01H

      Label B.條件轉(zhuǎn)移指令 C.壓棧指令 D.循環(huán)移位指令 B.CF=0 C.ZF=0 D.CF=1 B.段內(nèi)直接轉(zhuǎn)移 C.段間間接轉(zhuǎn)移 D.段間直接轉(zhuǎn)移 B.REP LODSB C.REP STOSB D.REPE SCASB MOV NEXT: CMP LOOP MOV 答案:C CX, DI INC BX BYTE PTR [BX], 0 NEXT AL, BYTE PTR [BX] B.SUB BX, BX C.DEC BX D.INC BX _________ A.MOV SI, CX

      二、填空題

      1.指令 MOV [BX+SI], AL 中的目的操作數(shù)使用______段寄存器,屬于______尋址方式。答案:數(shù)據(jù)段 基址加變址

      2.8086 微機(jī)中,_______寄存器存放的是當(dāng)前堆棧區(qū)的基地址。堆棧區(qū)的存取原則為_____,在 8086/8088 系統(tǒng)中,棧區(qū)最大容量為_____。若(CS)=2000H,(DS)=2500H,(SS)=3000H,(ES)=3500H,(SP)=0100H,(AX)=2FA6H,則這個棧區(qū)的物理地址的范圍為________,CPU 執(zhí)行 PUSH AX 指令后,棧頂?shù)刂窞開____,該棧頂單元存放的內(nèi)容為_______。

      答案:SS 先進(jìn)后出 64KB PUSH BX POPF 指令執(zhí)行完畢后,(SF, ZF, CF, OF)=______。答案:7531H,1,1,0,0

      4.假設(shè)(DS)=1000H,(ES)=0200H,(BP)=0100H,(DI)=0200H,(10200H)=11H,(10201H)=12H,執(zhí)行指令 LEA DX, [BP][DI]后,(DX)=_______。

      答案: 0300H 5.假定(DS)=4000H,(DI)=0100H,(40100H)=55H,(40101H)=AAH, 執(zhí)行指令 LEA BX, [DI] 后,BX 中的內(nèi)容是_______。

      答案:0100H

      6.如果 TABLE 為數(shù)據(jù)段 3400H 單元的符號名,其中存放的內(nèi)容為 0505H,當(dāng)執(zhí)行指令 MOV AX, TABLE 后,(AX)=_______;而執(zhí)行指令 LEA AX, TABLE 后,AX=______。答案:0505H,3400H 7.若(DS)=3000H,(SI)=2000H,(DI)=1000H,(AX)=2500H,(34000H)=00H,(34001H)=34H,(34002H)=00H,(34003H)=50H,變量 AREA 的值為 3000H,執(zhí)行指令 LDS SI, AREA[DI]后,SI 的內(nèi)容是_______,DS 的內(nèi)容是_______。

      答案:3400H,5000H 8.已知(AL)=2EH,(BL)=6CH,執(zhí)行 ADD AL, BL 之后,(AL)=_____,(BL)=______,ZF=_____,AF=______,OF=_______,PF=_____,CF=______。答案:9AH 6CH 0,1,1,1,0

      9.CPU 對兩個無符號 8 位二進(jìn)制數(shù)進(jìn)行加法運(yùn)算后,結(jié)果為 0EH,且標(biāo)志位 CF=1,OF=1,SF=0,其結(jié)果應(yīng)為十進(jìn)制數(shù)______。

      答案:270

      10.8086CPU 執(zhí)行 SUB AH, AL 后結(jié)果為(AH)=85H,OF=1,CF=1。若 AH、AL 中為帶符號 30000H~300FFH 300FEH A6H 3.若(BX)=42DAH,則下列指令段數(shù),則指令執(zhí)行前_______寄存器中的數(shù)大。

      答案:AH

      11.若(AX)=7531H,(BX)=42DAH,則 CMP AX, BX 指令執(zhí)行后,(AX)=_____,(SF, ZF, CF, OF)=_______。

      答案:42DAH 1,0,0,0

      12.設(shè)(AL)=1010 0000B,則執(zhí)行 NEG AL 后,(AL)=________;設(shè)(AL)=1000 0000B,則執(zhí)行 NEG AL 后,(AL)=________。

      答案:60H 80H

      13.假定(AX)=96H,(BX)=65H, 依次執(zhí)行 ADD AX, BX 指令和 DAA 指令后,(AL)=___。答案:61H

      14.執(zhí)行下列指令序列后,(AH)=____,(AL)=_____,CF=____,AF=____。MOV AX, 0106H MOV BL, 08H SUB AL, BL AAS 答案:(AL)=08H,(AH)=0,CF=AF=1

      15.設(shè)(AL)=98H,(BL)=12H,(AX)=_______(OF)=_______(CF)=_______ 而執(zhí)行指令 IMUL BL 后,(AX)=_______(OF)=_______(CF)=_______ 答案:0AB0H 0F8B0H MUL AAM 答案:02H 17.CBW 指令是將_____的符號擴(kuò)展到_____中,如果(AL)=0A4H,則執(zhí)行 CBW 指令后,(AX)=______。

      答案:AL XOR DEC MOV XCHG NEG AH 0FFA4H

      18.執(zhí)行下列程序段后,給出指定寄存器的內(nèi)容。AX, AX AX BX, 6378H AX, BX BX BL 1 1 1.1 若執(zhí)行指令 MUL BL 后,16.已知(AL)=6,(BL)=7, 執(zhí)行下述指令后,(AL)=______ AX 和 BX 寄存器的內(nèi)容為_______。答案:6378H 和 0001H

      19.執(zhí)行下列指令后: MOV MOV ROL DEC MOV MUL HLT AX, 1234H CL, 4 AX, CL AX CX, 4 CX 寄存器 AH 的值是______,AL 的值是 _____。

      答案:8DH 00H

      20.假設(shè)(DX)=10111001B,(CL)=03H,CF=1,執(zhí)行 SHL DL, CL 后,(DX)=_____。答案:10111001000B

      21.下列指令段執(zhí)行完畢后,(SI)=_______,(DI)=______。STD MOV AX, 2500H MOV DS, AX MOV BX, 3500H MOV ES, AX MOV SI, 1500H MOV DI, 0400H MOV CX, 3 REP MOVSB 答案:14FDH 22.假設(shè) ES 段中有一個字符串?12FG3LM5C?,其名為 ARRAY。下面的程序段執(zhí)行后 CX的值是______。REPNE SCASB 24.已知(SS)=3000H,(SP)=0100H,執(zhí)行下列程序后,(SP)=_______。

      答案:5

      23.假設(shè)(DS)=2000H,(BX)=1256H,(SI)=528FH,位移量 TABLE=20A1H,(232F7H)=80H,(232F8H)=32H,(264E5H)=50H,(264E6H)=24H: 執(zhí)行指令 執(zhí)行指令 執(zhí)行指令

      答案:1256H

      3280H

      2450H 24.答案:00FEH 25.已知(IP)=1000H,(SP)=2000H,(BX)=283FH, 指令 CALL WORD PTR [BX] 的機(jī)器代碼是 FF17H, 試問執(zhí)行該指令后,內(nèi)存單元 1FFEH 中的內(nèi)容是______。

      答案:02H

      三、問答題 1.設(shè) DS=1000H,ES=3000H,SS=4000H,SI=00A0H,BX=0700H,BP=0070H,執(zhí)行指令為 MOV AX, [BX+5]。(1)指令使用的是何種尋址方式?(2)源數(shù)據(jù)的邏輯地址和物理地址分別是多少?(3)若源數(shù)據(jù)為 1234H,則執(zhí)行指令后上述各寄存器的內(nèi)容是什么?

      答案:基址尋址,基址寄存器是 BX,源操作數(shù)在數(shù)據(jù)段中,源操作數(shù)的邏輯地址是: EA=BX+5=0700H+5=0705H 源操作數(shù)的物理地址是:10705H 若源數(shù)據(jù)為 1234H,則執(zhí)行指令后,AX 中的內(nèi)容就為 1234H,其余寄存器的內(nèi)容不變。

      2.分別說明下列指令的源操作數(shù)和目的操作數(shù)各采用什么尋址方式,并寫出指令中存儲器操 作數(shù)的物理地址的計算公式。(1)MOV AX, 2408H(2)MOV BX, [SI](3)MOV [BP+100H],AX(4)MOV [BX+DI], '$'(5)MOV DX, ES:[BX+SI]

      答案:(1)立即尋址,(AX)=2408H(2)寄存器尋址,物理地址:10H×(DS)+EA=10H×(DS)+(SI)(3)寄存器尋址,物理地址:10H×(SS)+(BP)+0100H(4)基址加變址尋址,物理地址:10H×(DS)+(BX)+(DI)(5)基址加變址,帶有段超越前綴,物理地址:10H×(ES)+(BX)+(SI)3.寫出能完成下述操作的指令。

      (1)將立即數(shù) 1234H 送至 DS 寄存器。

      (2)將存儲單元 3000H 和內(nèi)容送至 4000H 單元。

      (3)將累加器 AX 與寄存器 CX 中的內(nèi)容對調(diào)。

      答案:(1)MOV AX, 1234H MOV DS, AX(2)MOV AX, [3000H] MOV [4000H], AX(3)XCHG AX, CX

      4.編程:將數(shù)據(jù)段中以 BX 為偏移地址的連續(xù) 4 單元的內(nèi)容顛倒過來。

      答案: MOV AL, [BX] XCHG AL, [BX+3] MOV [BX], AL MOV AL,[BX+1] XCHG AL, [BX+2] MOV [BX+1], AL 5.已知(DS)=091DH,(SS)=(1E4AH),(AX)=1224H,(BX)=0024H,(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,(09214H)=085BH,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。試問下列指令或指令段執(zhí)行后結(jié)果如何?(1)MOV CL, [BX+20H](2)MOV [BP][DI], CX(3)LEA BX, [BX+20H][SI] MOV AX, [BX+2](4)LDS SI, [BX][DI] MOV BX,[SI](5)XCHG CX, [BX+32H] XCHG [BX+20H][SI], AX 答案:(1)CL=5BH(2)(1E4F6H)=5678H(3)(AX)=1E40H(4)(BX)=091DH

      (5)(AX)=5678H,(09226H)=1224H 6.十六進(jìn)制 0~9,A~F 對應(yīng)的 ASCII 碼為 30H~39H,41H~46H,依次放在內(nèi)存以 TABLE 開始的區(qū)域,將 AL 中某一位十六進(jìn)制數(shù)×H 轉(zhuǎn)換為對應(yīng)的 ASCII 碼,請編寫程序段。

      答案: LEA BX, TABLE MOV AL, ××H XLAT

      7.將 AX 寄存器清零有 4 種方法,試寫出這 4 條指令。

      答案:MOV AX, 00H SUB AX, AX AND AX, 00H XOR AX, AX

      8.使用一條邏輯運(yùn)算指令實(shí)現(xiàn)下列要求:(1)使 AL 高 4 位不變,低 4 位為 0。(2)使 AL 最高位置 1,后 7 位不變。(3)使 AL 中的 bit3、bit4 變反,其余位不變。(4)測試判斷 CL 中的 bit2、bit5、bit7 是否都為 1。

      答案:(1)AND AL, 0F0H(2)OR AL, 80H(3)XOR AL 18H(4)TEST AL, 0A4H

      9.試分析下面的程序段完成什么功能。

      MOV CL, 4 SHL AX, CL SHL BL, CL MOV AL, BL SHR DH, CL OR AL, DH

      答案:將 AX 中間 8 位,BX 的低 4 位,DX 的高 4 位組成一個新字存放在 AX 中。

      10.若要將源串 100 個字節(jié)數(shù)據(jù)傳送到目標(biāo)串單元中去,設(shè)源串首址的偏移地址為 2500H,目標(biāo)串首址的偏移地址為 1400H,請編寫程序?qū)崿F(xiàn)以下功能。(1)完成源串到目標(biāo)串的搬移。(2)比較兩串是否完全相同,若兩串相同,則 BX 寄存器內(nèi)容為 0;若兩串不同,則 BX 指向 源串中第一個不相同字節(jié)的地址,且該字節(jié)的內(nèi)容保留在 AL 的寄存器中。

      答案:(1)CLD MOV CX, 100 MOV SI, 2500H MOV DI, 1400H REP MOVSB(2)CLD MOV CX, 100 MOV SI, 2500 MOV DI, 1400 REPE CMPSB JZ EQQ DEC SI MOV BX, SI MOV AL, [SI] JMP STOP EQQ: MOV BX, 0 STOP: HLT

      11.下列指令段的功能是: 從內(nèi)存 2000H:0A00H 開始的 2KB 內(nèi)存單元清零。請?jiān)谙铝锌崭裰?填入合適的指令,程序指令完成后 DI 的內(nèi)容是多少。CLD MOV AX, 2000H _________ _________ XOR AL, AL _________ _________ HLT 答案:MOV ES,AX MOV DI, 0A00H XOR AL,AL MOV CX, 800H REP STOSB HLT

      第四章習(xí)題答案

      一、選擇題

      1.下列描述正確的是_______。

      A.匯編語言源程序可直接運(yùn)行 B.匯編語言屬于低級語言 C.匯編程序是用匯編語言編寫的程序,運(yùn)行速度高,閱讀方便,屬于面向用戶的程序語言。D.匯編語言可以移植

      答案:B

      2.分析下面的程序,變量 VAR2 的偏移地址是______。DATA SEGMENT ORG 2 VAR1 DB 2,3,4 ORG $+3 VAR2 DW 1234H DATA ENDS A.02H B.04H C.05H D.08H 答案:D

      3.為了使 MOV AX, VAR 指令執(zhí)行后,寄存器中的內(nèi)容為 4142H,AX 下面哪一種數(shù)據(jù)定義會產(chǎn) 生不正確的結(jié)果?

      A.VAR DW 4142H B.VAR DW 16706 C.VAR DB 42H, 41H D.VAR DW ‘AB’ 答案:C

      4.下列偽指令中______是正確的。

      A.ERR1:DW 99 B.ERR2 DB 25*60 C.COUNT EQU 20 D.ONE DB ONE 答案:C 5.執(zhí)行下列指令后,寄存器 CL 的值是_______。STR1DW ?AB? STR2DB 16 DUP(?)CNT EQU $-STR1 MOV CX, CNT MOV AX, STR1 HLT A.10H B.12H C.0EH D.0FH 答案:B

      二、填空題

      1.匯編語言的調(diào)試過程如下:建立以______為擴(kuò)展名的源文件;生成以______為擴(kuò)展名的目 標(biāo)文件;生成以______為擴(kuò)展名的可執(zhí)行文件;使用 DEBUG 調(diào)試程序,調(diào)試可執(zhí)行目標(biāo)程 序。

      答案:.asm.obj.exe 2.執(zhí)行下列指令后,(AX)=______,(BL)=_______。A DW ?EF? B DB ?ABCDEF? MOV AX, A MOV BL, B[3] HLT 答案:4546H 44H 3.執(zhí)行下面程序段后,AL 中的內(nèi)容是______。BUF DW 1234H, 5678H, 0001H MOV BX, OFFSET BUF MOV AL, 2 XLAT 答案:78H

      4.若符號定義語句如下,則 L=_______。BUF1 DB 1, 2, ?12? BUF2 DB 0 L EQU BUF2-BUF1 答案:4

      5.執(zhí)行下列程序段后,BX 寄存器間址單元的內(nèi)容是______。ORG 1FFFH DB 4FH, 50H, 51H MOV BX, 1FFFH INC [BX] INC BX DEC [BX] 答案:4FH

      6.對于下面的數(shù)據(jù)定義,各條 MOV 指令單獨(dú)執(zhí)行后,請?zhí)畛溆嘘P(guān)寄存器的內(nèi)容: TABLE1 DB ? TABLE2 DW 20 DUP(?)TABLE3 DB ?ABCD?......MOV AX, TYPE TABLE1;(AX)=___ MOV BX, TYPETABLE2;(BX)=____ MOV CX, LENGTH TABLE2;(CX)=_____ MOV DX, SIZE TABLE2;(DX)=_____ MOV SI, LENGTH TABLE3;(SI)=_______ 答案:1 2 20 40 1

      7.下面是多字節(jié)加法程序,第一個數(shù)是 8A0BH,第二個數(shù)是 D705H。請?zhí)顚懗稣_結(jié)果。DATA SEGNEBT FIRST DB _____, _____, 0H SECOND DB _____,______ DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV CX, _____ MOV SI, 0 _________ NEXT: MOV AL, SECOND[SI] ADC FIRST[SI], AL INC SI LOOP NEXT MOV AL, 0 ADC AL, ______ MOV FIRST[SI], AL MOV AH, 4CH INT 21H CODE ENDS END START 答案:0BH 8AH 05H D7H 2 CLC 0

      8.下面程序的功能是求有符號數(shù)中絕對值最小的數(shù),并將最小絕對值存放在 DAT2 字節(jié)中,填空使程序正確實(shí)現(xiàn)此功能。程序執(zhí)行后,DAT2 單元中的內(nèi)容是______。DATA SEGMENT DAT1 DB 65H, 88H, 20H, 0F6H N EQU $-DAT1 DAT2 DB ? DATA ENDS CODE SEGMENT _________________ START: MOV AX, DATA __________ LEA SI, DAT1 MOV CX, N-1 MOV AL, [SI] TEST AL, 80H JZ LP0 NEG AL LP0: MOV DAT2, AL LP1: _________ MOV BL, [SI] TEST BL, 80H JZ LP2 NEG BL LP2: ________ JB LP3 MOV DAT2, BL MOV AL, BL LP3: ________ MOV AH, 4CH INT 21H CODE ENDS END START 答案: ASSUME DS:DATA, SS:STACK, CS:CODE MOV DS, AX INC SI CMP DAT2, BL LOOP LP1 DAT2 單元中的內(nèi)容:0AH

      9.填空說明在下列程序段執(zhí)行過程中相應(yīng)寄存器中的值。假設(shè)程序執(zhí)行前 DS=3000H,SS=2000H,SP=3000H,AX=4567H,BX=1234H,CX=6789H。AND BX, 00FFH CALL MYSUB NOP;SP=________;AX=_______;BX=_______ PROC PUSH AX PUSH BX PUSH CX SUB AX, BX;SP=______ POP CX POP AX POP BX NOP;SP=______ RET MYSUB ENDP

      答案:3000H 0034H 4567H 2FF8H 2FFEH 10.完善程序。BUFFER 單元開始放置一個數(shù)據(jù)塊,BUFFER 單元存放預(yù)計數(shù)據(jù)塊的長度為 20H,BUFFER+1 單元存放的是實(shí)際從鍵盤輸入的字符串的長度,BUFFER+2 開始存放的是從鍵盤 從 接收的字符,請將這些從鍵盤接收的字符再在屏幕上顯示出來。MOV DX, OFFSET BUFFER MOV AH, _______ INT 21H;讀入字符串 LEA DX, ______ MOV AL, ______;實(shí)際讀入的字符串的字符個數(shù) MOV AH, 0 ADD BX, AX MOV AL, ____ MOV [BX+1], AL MOV AH, _____ INC DX;確定顯示字符串的首址 INT 21H MOV AH, _____;系統(tǒng)返回 DOS INT 21H 答案:0AH BUFFER+1 [BX] '$'或 24H 9 4CH

      三、問答題

      1.變量和標(biāo)號有哪些屬性?它們的區(qū)別是什么?

      答案:變量、標(biāo)號還有常量是匯編語言中使用的操作數(shù),是 3 種基本的數(shù)據(jù)項(xiàng)。變量和標(biāo)號 都有段屬性、偏移屬性和類型屬性 3 種屬性,但含義不同。變量通常指存放在存儲單元中的值,在程序的運(yùn)行中是可以修改的。所有的變量都具有 3 個屬性。(1)段屬性:指變量所在段的段基址,此值必須在一個段寄存器中。(2)偏移屬性:指變量所在地址與所在段的段首地址之間的地址偏移字節(jié)數(shù)。(3)類型屬性:指變量中每個元素所包含的字節(jié)數(shù)。標(biāo)號是可執(zhí)行指令語句的地址的符號表示,它可作為轉(zhuǎn)移指令和調(diào)用指令 CALL 的目標(biāo)操作 HLT MYSUB 數(shù),以確定程序轉(zhuǎn)向的目標(biāo)地址,它也具有 3 個屬性:(1)段屬性:指標(biāo)號所在段的段基址。標(biāo)號的段是它所出現(xiàn)的那個代碼段,由 CS 指示。(2)偏移屬性:指標(biāo)號所在地址與所在段的段首地址之間的地址偏移字節(jié)數(shù)。(3)類型屬性:標(biāo)號的類型屬性指在轉(zhuǎn)移指令中標(biāo)號可轉(zhuǎn)移的距離,也稱距離屬性。NEAR 和 FAR 2.指出下列偽指令語句中的錯誤:(1)DATA DB 395(2)PRGM SEG …… PRGM ENDS(3)ALPHA EQU BETA(4)COUNT EQU 100 COUNT EQU 65(5)GOON DW 10DUP(?)…… JMP GOON

      答案:(1)字節(jié)變量,范圍在 0~255(2)定義段的偽指令為 SEGMENT(3)BETA 必須先定義(4)EQU 不能重復(fù)定義,在下一次定義前必須用 PURGE 撤消(5)轉(zhuǎn)移指令必須轉(zhuǎn)移到指令上,不允許轉(zhuǎn)移到數(shù)據(jù)變量上。

      3.一數(shù)據(jù)段如下: DATA SEGMENT PARA 'DATA' AT 46H QA EQU 255 QA1=QA GT 3000 QA2=0FFFH QA3 EQU QA2 XOR 255 QA4=88 MOD 5 QA5=88H SHR 2 QA6 EQU QA3/16+15 ORG 1060H G1 DB 32, QA, 98/2, NOT 25 G2 DW 0FF6H, OFFSET G2 G3 DW 3DUP(5)G4 DW SEG G1 SA EQU LENGTH G3 SB EQU SIZE G3 SC=TYPE G3 ORG 1200H F1 EQU THIS WORD F2 DB 11H, 22H, 33H, 44H FF DD 12345H DATA ENDS

      (1)寫出每個符號所對應(yīng)的值(2)畫出內(nèi)存分配圖(3)執(zhí)行下列指令后,對應(yīng)的寄存器的值為多少 MOV AX, WORE PTR FF AND AX, 0FFH MOV BX, WORD PTR G1 MOV BX, 255 AND 0FH ADD AX, OFFSET F2 MOV BX, F1

      答案:(1)DATA SEGMENT PARA 'DATA' AT 46H QA EQU 255;QA=255 QA1=QA GT 3000;255 大于 3000,命題假,QA1=0 QA2=0FFFH;QA2=0FFFH QA3 EQU QA2 XOR 255;QA3=0FFFH⊕0FFH=0F00H QA4=88 MOD 5;QA4=3 QA5=88H SHR 2;QA5=22H QA6 EQU QA3/16+15;QA6=10FH ORG 1060H G1 DB 32, QA, 98/2, NOT 25 G2 DW 0FF6H, OFFSET G2 G3 DW 3DUP(5)G4 DW SEG G1 SA EQU LENGTH G3;SA=3 SB EQU SIZE G3;SB=3×2=6 SC=TYPE G3;SC=2 ORG 1200H F1 EQU THIS WORD;F1 的偏移地址為 1200H,類型為字 F2 DB 11H, 22H, 33H, 44H FF DD 12345H DATA ENDS(2)內(nèi)存分配: DS:1060HG1 20H FFH 31H E6H DS:1064HG2 F6H 0FH 64H 10H DS:1068HG3 05H 00H 05H 00H 05H 00H DS:106EHG4 46H 00H …… …… DS:1200HF2 11H 22H 33H 44H DS:1204HFF 45H 23H 01H 00H(3)存儲器的值: MOV AX, WORE PTR FF;AX=2345H AND AX, 0FFH;AX=0045H MOV BX, WORD PTR G1;BX=0FF20H MOV BX, 255 AND 0FH;BX=000FH ADD AX, OFFSET F2;AX=1245H MOV BX, F1;BX=2211H

      4.以下程序的執(zhí)行結(jié)果是_______。A DB ?1234? B DW 5 DUP(2,3 DUP(0))C DW ?AB?,?C?,?D? L1: MOV AL, TYPE B MOV BL, LENGTH B MOV AH, SIZE A MOV BH, SIZE C MOV CL, TYPEL1 MOV CH, SIZE B

      答案:AX=0102H, BX=0205H CX=0AFFH

      5.有下列數(shù)據(jù)段,寫出數(shù)據(jù)段中 MAX、VAL1、VAL2、LEND 符號所對應(yīng)的值。DATA SEGMENT MAX EQU 0FFFH VAL1 EQU MAX MOD 10H VAL2 EQU VAL1*2 BUFF DB 1,2,3,'123' EBUFF DB ? LEND EQU EBUFF-BUFF DATA ENDS 答案: MAX=0FFFH VAL1=000FH VAL2=001EH LEND 6 6.現(xiàn)有程序如下: DATA SEGMENT A DB 23 B DB 0F0H C DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV AL, A CMP AL, B JZ L JG M MOV C,-1 JMP EXIT L: MOV C, 0 JMP EXIT M: MOV C, 1 EXIT: MOV AH, 4CH INT 21H CODE ENDS END START 請回答:(1)該程序完成什么功能?(2)程序運(yùn)行完后,C 中的內(nèi)容是什么?

      答案:判斷兩個有符號數(shù),若 A=B,則 C=0;若 A>B,則 C=1;若 A

      (1)程序執(zhí)行后,RESULT 單元的內(nèi)容為多少?

      (2)程序完成的功能是什么?

      (3)該程序所占的數(shù)據(jù)區(qū)為多少個字節(jié)?

      DATA SEGMENT FEN DB 85,-90, 64,-120, 95, 77, 88, 120, 60, 83 COUNT EQU $-FEN RESULT DB ? DATA ENDS STACK SEGMENT PARA STACK DB 100 DUP(?)STACK ENDS CODE SEGMENT ASSUME CS:CODE, DATA:DATA, SS:STACK START: MOV AX,DATA MOV DS, AX MOV SI, OFFSET FEN MOV CX, COUNT DEC CX MOV AL, [SI] MOV RESULT ,AL TEST AL, 80H JZ LOP NEG AL LOP: INC SI MOV BL, [SI] TEST BL, 80H JZ NEXT NEG BL NEXT: CMP AL, BL JAE NEXT1 MOV AL, BL MOV BL, [SI] MOV RESULT , BL NEXT1: LOOP LOP CODE NOP MOV AH, 4CH INT 21H ENDS END START

      答案:(1)-120(2)將絕對值最大的數(shù)放入 RESULT 單元中

      (3)11 字節(jié)

      9.定理:從 1 開始的連續(xù) n 個奇數(shù)之和等于 n2,如 1+3+5=32=9。設(shè):在數(shù)據(jù)區(qū)有字節(jié)變量 N(0≤N≤255)。試按此定理編寫程序求 N2 并將結(jié)果存放于字變量 RESULT 中。答案: STACK SEGMENT PARA STACK DW 100 DUP(?)STACK ENDS DATA SEGMENT N DB 5 RESULT DW ? DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS:DATA, SS:STACK START: MOV AX, DATA MOV DS, AX MOV AH, 0 MOV AL, N MOV CX, AX MOV BX, 0 MOV DX, 1 LOOP1: ADD BX, DX ADD DX, 2 LOOP LOOP1 MOV RESULT, BX MOV AH, 4CH INT 21H CODE ENDS END START 第六章習(xí)題

      一、選擇題

      1.I/O 單獨(dú)編址方式下,從端口讀入數(shù)據(jù)可使用_____。

      A.MOV B.OUT C.IN D.XCHG 答案:C 2.可用作簡單輸入接口電路的是______。

      A.譯碼器 B.鎖存器 C.方向器 D.三態(tài)緩沖器

      答案:D

      3.CPU 與 I/O 設(shè)備之間傳送的信號有______。

      A.控制信息 B.狀態(tài)信息 C.數(shù)據(jù)信息 D.以上三種都有

      答案:D 4.從硬件角度而言,采用硬件最少的數(shù)據(jù)傳送方式是______。

      A.DMA 控制 B.無條件傳送 C.查詢傳送 D.中斷傳送

      答案:B 5.從輸入設(shè)備向內(nèi)存輸入數(shù)據(jù)時,若數(shù)據(jù)不需經(jīng)過 CPU,其 I/O 數(shù)據(jù)傳送方式是____。

      A.程序查詢方式 B.中斷方式 C.DMA 方式 D.直接傳送方式

      答案:C

      6.主機(jī)與外設(shè)信息傳送的方式分別為查詢方式、中斷方式、DMA 方式。相比之下,中斷方 式的主要優(yōu)點(diǎn)是_______。

      A.接口電路簡單、經(jīng)濟(jì),只需少量的硬件 B.數(shù)據(jù)傳輸?shù)乃俣茸羁?C.CPU 的時間利用率高 D.能實(shí)時響應(yīng) I/O 設(shè)備的設(shè)備的輸入輸出請求

      答案:D

      7.在微機(jī)系統(tǒng)中,為了提高 CPU 系統(tǒng)數(shù)據(jù)總線的驅(qū)動能力,可采用_____。

      A.譯碼器 B.多路轉(zhuǎn)換器 C.雙向三態(tài)緩沖器 D.采樣保持器

      答案:C

      8.執(zhí)行“IN AL, DX”指令后,進(jìn)入 AL 寄存器的數(shù)據(jù)來自_____。

      A.立即數(shù) B.存儲器 C.寄存器 D.外設(shè)端口

      答案:D

      二、問答題

      1.CPU 與外設(shè)進(jìn)行數(shù)據(jù)傳送時,為什么需要 I/O 接口電路?I/O 接口電路的功能有哪些? 答案:CPU 與外部設(shè)備進(jìn)行信息交換,是在控制信號的作用下通過數(shù)據(jù)總線來完成的。外部 設(shè)備的種類不同,對信息傳送的要求也不同,這就給計算機(jī)和外設(shè)之間的信息交換帶來以下 一些問題:(1)速度不匹配:CPU 速度高,外設(shè)的速度低。不同的外設(shè)速度差異大,如硬盤速度高,每秒能傳送兆位數(shù)量級,串行打印機(jī)每秒鐘只能打印百位字符,而鍵盤的速度則更慢。(2)信號不匹配:CPU 的信號為數(shù)字信號,數(shù)據(jù)采集輸入的是模擬信號,需要對外部信號 進(jìn)行模/數(shù)轉(zhuǎn)換,才能被計算機(jī)處理;同樣,計算機(jī)輸出的是數(shù)字信號,需要輸出模擬信號 時,必須要通過數(shù)/模轉(zhuǎn)換。(3)信號格式不匹配:計算機(jī)接收和處理的是并行數(shù)據(jù),而有些外部設(shè)備的信號為串行數(shù) 據(jù),這就需要使用接口電路進(jìn)行串行數(shù)據(jù)和并行數(shù)據(jù)轉(zhuǎn)換。(4)另外為了提高 CPU 的傳輸效率,需要利用接口電路對外設(shè)進(jìn)行控制。作為連接 CPU 和外設(shè)的接口電路,它具有以下功能:(1)數(shù)據(jù)的寄存和緩沖功能 為了解決 CPU 和外部設(shè)備速度不匹配的問題,接口電路內(nèi)部設(shè)置有數(shù)據(jù)寄存器或具有 RAM 功能的數(shù)據(jù)緩沖區(qū),使之成為 CPU 和外設(shè)進(jìn)行數(shù)據(jù)交換的中轉(zhuǎn)站。無論輸入還是輸出數(shù)據(jù),傳輸?shù)臄?shù)據(jù)首先進(jìn)入緩沖區(qū),輸入數(shù)據(jù)時等待 CPU 發(fā)出接收指令,輸出數(shù)據(jù)時等待外設(shè)發(fā) 出的輸出信號。(2)信號轉(zhuǎn)換功能為了解決 CPU 和外設(shè)之間信號電平不一致的問題,可以通過設(shè)置電平轉(zhuǎn)換接口電路來解決,如采用 MAX232 等芯片實(shí)現(xiàn)電平轉(zhuǎn)換。為了解決 CPU 和外設(shè)之間串并行數(shù)據(jù)不匹配的問題,CPU 輸出數(shù)據(jù)時,設(shè)置并變串接口電 路;CPU 輸入數(shù)據(jù)時,設(shè)置串變并接口電路。為了解決外設(shè)模擬量傳輸?shù)膯栴},設(shè)置模/數(shù)轉(zhuǎn)換(A/D)電路或數(shù)/模轉(zhuǎn)換(D/A)電路。(3)端口選擇功能 CPU 通過接口電路對外部設(shè)備進(jìn)行控制,具體和哪一個外設(shè)進(jìn)行數(shù)據(jù)交換,首先要選通相應(yīng) 的接口電路,而這一過程是通過地址選通來實(shí)現(xiàn)的,即接口電路有其獨(dú)有的地址空間。不同 的接口電路占用的地址是不同的,占有的地址個數(shù)也是不同的。有的占有兩個地址,有的占 有 4 個地址等,以對應(yīng)不同的外設(shè)。一般來說,接口電路的片選信號由高位地址信號來產(chǎn)生,接口電路內(nèi)部的選擇由低位地址來決定。CPU 的地址信號是一組單向的信號線,它們總是由 CPU 發(fā)出,因此 CPU 發(fā)出不同的地址信號就選擇了相應(yīng)的接口電路,也就選通了相應(yīng)的外 部設(shè)備。(4)接收和執(zhí)行 CPU 的指令 CPU 的地址信號發(fā)出后,被選通的接口電路,根據(jù) CPU 的讀、寫等指令輸入輸出數(shù)據(jù)信號 或輸出控制信號。(5)中斷管理功能 為了提高 CPU 的效率,使得外設(shè)工作時,不影響 CPU 的執(zhí)行,需要利用中斷控制芯片來連 接多個外設(shè)。只有當(dāng)外設(shè)需要 CPU 進(jìn)行處理,才會通過中斷控制器,給 CPU 發(fā)送中斷請求 信號,CPU 接到該信號后,在滿足相應(yīng)中斷允許的條件下,停止執(zhí)行當(dāng)前程序,轉(zhuǎn)而去執(zhí)行 中斷服務(wù)程序,即處理外設(shè)事物。在這里接口電路就是中斷控制器,用來管理這些需要 CPU 中斷的外部設(shè)備。

      2.計算機(jī)對 I/O 接口電路的編址有哪些方法?8086/8088 CPU 采用哪種編址方法?

      答案:當(dāng)接口電路的地址和存儲單元的地址相同時,稱為獨(dú)立編址,也稱 I/O 映射方式;當(dāng) 接口電路的地址和存儲單元的地址不同時,稱為統(tǒng)一編址,也稱存儲器映射方式。獨(dú)立編址

      3.CPU 與外設(shè)間進(jìn)行數(shù)據(jù)傳送有哪幾種方式?簡述各種方式的工作原理。

      答案:無條件傳送方式是最簡單的傳送方式,該方式應(yīng)用于始終處于準(zhǔn)備好狀態(tài)的外設(shè),即 CPU 輸入或輸出數(shù)據(jù)時不需要查詢外設(shè)的工作狀態(tài),任何時候都可以輸入輸出。查詢傳送方式在傳送數(shù)據(jù)前,CPU 需要查詢當(dāng)前外設(shè)的狀態(tài),當(dāng)查詢到當(dāng)前外設(shè)準(zhǔn)備好,即 處于空閑狀態(tài)時,CPU 就可以通過數(shù)據(jù)線和外設(shè)進(jìn)行輸入輸出的操作; 當(dāng)查詢到外設(shè)當(dāng)前的 狀態(tài)為忙時,則等待,并繼續(xù)查詢,直到外設(shè)準(zhǔn)備好,再傳送數(shù)據(jù)。

      4.假設(shè)一接口電路的地址信號為 A0,片選端為,占用兩個地址,分別是 20H 和 21H,試 利用 74LS138 譯碼器設(shè)計譯碼電路,并畫出硬件電路設(shè)計圖。片選地址 片內(nèi)地址 接口電路地址 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 0 0 1 0 0 0 0 0 20H 1 21H 5.若要求 74LS138 輸出的譯碼地址為 0200H~0207H,0208H~020FH,……,0238H~023FH 等 8 組,可用于選通 8 個 I/O 芯片,試畫出 74LS138 與 8086 最小系統(tǒng)連接圖。片外地址 內(nèi)部地址 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 第1片 1 第2片 1 第3片 1 第4片 1 第5片 1 第6片 1 第7片 1 第8片 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 200H 207H 0 208H 20FH 0 210H 217H 0 218H 21FH 0 220H 227H 0 228H 22FH 0 230H 237H 0 238H 23FH

      第七章習(xí)題

      一、選擇題

      1.在程序控制傳送方式中,_______可提高系統(tǒng)的工作效率。A.無條件傳送 B.查詢傳送 C.中斷傳送 D.以上均可

      答案:C

      2.在 8086 的中斷中,只有______需要硬件提供中斷類型碼。

      A.外部中斷 B.可屏蔽中斷 C.不可屏蔽中斷 D.內(nèi)部中斷

      答案:B

      3.在中斷響應(yīng)周期,CPU 從數(shù)據(jù)總線上獲取______。

      A.中斷向量的偏移地址 B.中斷向量 C.中斷向量的段地址 D.中斷類型碼

      答案:D

      4.執(zhí)行 INT n 指令或響應(yīng)中斷時,CPU 保護(hù)現(xiàn)場的次序是______。

      A.FLAGS 寄存器(FR)先入棧,其次是 CS,最后是 IP B.CS 在先,其次是 IP,最后 FR 入棧

      C.FR 在先,其后一次是 IP,CS D.IP 在先,其次是 CS,最后 FR 答案:A

      5.在 PC/XT 中,NMI 中斷的中斷向量在中斷向量表中的位置_______。

      A.是由程序指定的 B.是由 DOS 自動分配的 C.固定在 0008H 開始的 4 個字節(jié)中 D.固定在中斷向量表的表首 答案:C 6.中斷調(diào)用時,功能調(diào)用號碼應(yīng)該_______。

      A.寫在中斷指令中 B.在執(zhí)行中斷指令前賦給 AH C.在執(zhí)行中斷指令前賦給 AX D.在執(zhí)行中斷指令前賦給 DL 答案:B 7.若 8259A 的 ICW2 設(shè)置為 28H,從 IR3 引入的中斷請求的中斷類型碼是_____。A.28H B.2BH C.2CH D.2DH 答案:B

      8.8259A 有 3 中 EOI 方式,其目的都是為了_____。

      A.發(fā)出中斷結(jié)束命令,使相應(yīng)的 ISR=1 B.發(fā)出中斷結(jié)束命令,使相應(yīng)的 ISR=0 C.發(fā)出中斷結(jié)束命令,使相應(yīng)的 IMR=1 D.發(fā)出中斷結(jié)束命令,使相應(yīng)的 IMR=0 答案:B

      9.8259A 特殊全嵌套方式要解決的主要問題是______。

      A.屏蔽所有中斷 B.設(shè)置最低優(yōu)先級 C.開發(fā)低級中斷 D.響應(yīng)同級中斷

      答案:D

      10.8259A 編程時,中斷屏蔽可通過______設(shè)置。A.ICW1 B.OCW1 C.OCW2 D.OCW3 答案:B

      二、填空題

      1.8086/8088 的中斷系統(tǒng),可以處理______種不同的中斷。從產(chǎn)生中斷的方法來分,中斷可 分為兩大類: 一類叫_____中斷; 一類叫______中斷。硬件中斷又可分為兩大類: 一類叫______ 中斷;另一類叫______中斷。

      答案:256 外部、內(nèi)部 不可屏蔽中斷 可屏蔽中斷

      2.8086 系統(tǒng)中斷響應(yīng)時,會將,和 壓入堆棧,并將 和 TF 清零。

      答案:FR CS IP

      3.類型碼為______的中斷所對應(yīng)的中斷向量放在 0000H:0084H 開始的 4 個存儲單元中,若這 4 個存儲單元中從低地址到高地址存放的數(shù)依次是___________,則相應(yīng)的中斷服務(wù)程序的 入口地址是 3322H:1150H。

      答案:21H 50H 11H 22H 33H

      4.已知 CS 的內(nèi)容為 2000H,IP 的內(nèi)容為 3000H,則 CPU 下一條要執(zhí)行指令的物理地址是 ________;當(dāng)緊接著執(zhí)行中斷指令 INT 15H 時,其中斷類型碼為______,該指令對應(yīng)的中斷 向量在中斷向量表中的首地址為__________,假定該中斷對應(yīng)的中斷向量是 4000H:2300H,則執(zhí)行該中斷后 CPU 執(zhí)行中斷服務(wù)程序的首地址是______,此時 CS 中為_____,IP 中為 _______。

      答案:23000H, 15H 54H 43200H 4000H 2300H 5.8259A 有兩種中斷觸發(fā)方式:______和______。

      答案:邊沿觸發(fā)方式 電平觸發(fā)方式

      6.若有 40 個外部中斷申請信號,則至少需要______片 8259A 中斷控制器。

      答案:6

      7.8259A 內(nèi)部含有_____個可編程寄存器,共占用_____個端口地址。8259A 的中斷請求寄存 器 IRR 用于存放_______,中斷服務(wù)寄存器 ISR 用于存放_______。

      答案:7 2 外部的中斷請求信號 系統(tǒng)響應(yīng)中斷信號的狀態(tài)

      8.8259A 的初始化命令字包括_________,其中________和_______是必須設(shè)置的。

      答案:ICW1~ICW4 ICW1 ICW2 9.中斷服務(wù)程序的返回指令為。答案:IRET

      10.執(zhí)行溢出中斷的兩個條件是 和。

      答案:OF=1, INTO

      11.8086/8088 系統(tǒng)共能管理 個中斷,中斷向量表在內(nèi)存中的地址從 到。

      答案:256 00000H~0003FFH

      12.已 知 SP=0100H, SS=0600H, 標(biāo) 志 寄 存 器 Flags=0204H, 存 儲 單 元 [0024H]=60H, [0025H]=00H, [0026H]=00H, [0027H]=10H,在段地址為 0800H 及偏移地址為 00A0H 開始的單元 中,有一條指令 INT 9H(INT 9H 為 2 字節(jié)指令)則執(zhí)行該指令后。SS= , SP= , IP= , CS= ,Flags=。Flags: OF DF IF TF SF ZF AF PF CF 答案:(SS)=0600H(SP)=00FAH(IP)=0060H(CS)=1000H(FR)=0004H

      三、問答題

      1.如何“屏蔽”可屏蔽中斷?敘述 CPU 響應(yīng)可屏蔽中斷的過程。

      答案: 由 CPU 的 INTR 引腳上的中斷請求信號引起的中斷稱為可屏蔽中斷。這種中斷可以被 CLI 指 令屏蔽。當(dāng)中斷接口電路中的中斷屏蔽觸發(fā)器未被屏蔽時,外設(shè)可通過中斷接口發(fā)出中斷申請。外設(shè) 向 CPU 發(fā)出中斷請求的時間是隨機(jī)的,而 CPU 響應(yīng)可屏蔽中斷需滿足如下條件:(1)CPU 必須處于開中斷狀態(tài),即 TF=1 狀態(tài);(2)系統(tǒng)中無總線請求;(3)系統(tǒng)中無不可屏蔽中斷請求;(4)CPU 執(zhí)行完現(xiàn)行命令。

      2.設(shè)某中斷的中斷類型號為 12H,中斷服務(wù)程序的段地址為 2020H,偏移地址為 3000H,試編寫程序段將中斷向量裝入中斷向量表中。

      答案: XOR AX, AX MOV ES, AX MOV DI, 12*4;DI 中為 n 號中斷對應(yīng)的中斷向量表的偏移地址 MOV AX, 3000H CLD STOSW;裝入中斷服務(wù)程序偏移地址 MOV AX, 2020H STOSW;裝入中斷服務(wù)程序偏移地址

      3.8259A 具有兩種中斷屏蔽方式,普通屏蔽和特殊屏蔽方式。這兩種屏蔽方式有什么特殊之 處,特殊屏蔽方式一般用在什么場合?

      答案:(1)普通屏蔽方式:在普通屏蔽方式中,將 IMR 某位置 1,則它對應(yīng)的中斷就被屏蔽,從 而使這個中斷請求不能從 8259A 送到 CPU。如果 IMR 位置 0,則允許該級中斷產(chǎn)生。(2)特殊屏蔽方式:在有些特殊情況下,希望一個中斷服務(wù)程序能夠動態(tài)地改變系統(tǒng)優(yōu)先 權(quán)結(jié)構(gòu),就引入了特殊屏蔽方式。編程時 IMR 某位置位,就會同時使 ISR 的對應(yīng)位復(fù)位。這 樣就不只屏蔽了當(dāng)前正在處理的這級中斷,而且真正開放了其他級別較低的中斷。當(dāng)然,未 屏蔽的較高級中斷也可得到響應(yīng)。特殊屏蔽中斷一般用在中斷服務(wù)程序執(zhí)行過程中,不僅用于響應(yīng)優(yōu)先級高于當(dāng)前中斷的中斷 請求優(yōu)先級,而且還能夠應(yīng)用于響應(yīng)優(yōu)先級低于當(dāng)前中斷的中斷申請優(yōu)先級的場合。

      4.試簡述 8259A 中斷控制器是如何在特殊全嵌套方式 SNFM 下實(shí)現(xiàn)全嵌套的?

      答案: 特殊全嵌套方式和普通全嵌套方式的區(qū)別在于: 在特殊全嵌套方式下,當(dāng)處理某一級中斷時,如果有同級的中斷請求 8259A 也會給予響應(yīng),從而實(shí)現(xiàn)一個中斷過程能被另一個具有同等 級的中斷請求所打斷。特殊全嵌套方式一般用在 8259A 的級聯(lián)系統(tǒng)中。在這種情況下只有主片的 8259A 允許編程 為特殊全嵌套方式。這樣,當(dāng)來自某一從片的中斷請求正在處理時,主片除對來自優(yōu)先級較 高的本片上其他 IR 引腳上的中斷請求進(jìn)行開放外,同時對來自同一從片的較高優(yōu)先級請求 也會開放。使主片不封鎖得到響應(yīng)的從片的 INT 輸入,以便讓從片上優(yōu)先級別更高的中斷能 夠得到響應(yīng)。

      5.請編寫初始化程序。系統(tǒng)有一片 8259A,中斷請求信號用電平觸發(fā)方式,要用 ICW4,中斷 類型碼為 60H~67H,用特殊全嵌套方式,無緩沖,采用自動中斷結(jié)束方式。設(shè) 8259A 的地 址為 92H,93H。

      答案: MOV AL, 0001101B OUT 92H, AL MOV AL, 01100000B OUT 93H, AL MOV AL, 00010011B OUT 93H, AL 6.若 8086 系統(tǒng)采用單片 8259A 作為外部可屏蔽中斷的優(yōu)先級管理器,正常全嵌套方式,邊 沿觸發(fā),非緩沖連接,非自動中斷結(jié)束,端口地址為 20H,21H。其中某中斷源的中斷類型 碼為 0AH,其中斷服務(wù)子程序的入口地址是 2000:3A40H。

      (1)請為 8259A 設(shè)置正確的初始化命令字,并編寫初始化程序。

      (2)中斷源應(yīng)與 IR 的哪一個輸入端相連?中斷向量地址是多少,中斷向量區(qū)對應(yīng)著 4 個單 元的內(nèi)容是什么?

      答案: MOV AL, 13H OUT 20H, AL MOV AL, 08H OUT 21H, AL MOV AL, 01H OUT 21H, AL 中斷源應(yīng)與 IRQ2 相連,矢量地址為 0028AH,地址中內(nèi)容(由高向低):20H,00H,3AH,40H

      7.8086 微機(jī)系統(tǒng)中,如圖例 7 所示硬件連接,8259A 的主片采用特殊全嵌套,從片采用 一般全嵌套,主片和從片都是非自動中斷結(jié)束,中斷源都為邊沿觸發(fā)信號有效,主片的中斷 類型碼為 80H~87H,從片的中斷類型碼為 50H~57H。1. 寫出主片 8259A 和從片 8259A 的地址; 2. 寫出主片 8259A 的控制字,并完成初始化編程; 3. 寫出從片 8259A 的控制字,并完成初始化編程; 圖例 7 1.主片地址:F0H F1H 從片地址:C0H C1H 2.主片: ICW1 ICW2 ICW3 ICW4

      從片: ICW1 ICW2 ICW3 ICW4 11H 80H 80H 11H 11H 50H 03H 01H

      3.主片初始化 MOV AL, 11H OUT 0F0H,AL MOV AL, 80H OUT 0F1H,AL MOV AL, 80H OUT 0F1H, AL MOV AL, 11H OUT 0F1H, AL

      從片初始化: MOV AL, 11H OUT 0C0H,AL MOV AL, 50H OUT 0C1H,AL MOV AL, 03H OUT 0C1H, AL MOV AL, 01H OUT 0C1H, AL

      第七章習(xí)題

      一、選擇題

      1.在程序控制傳送方式中,_______可提高系統(tǒng)的工作效率。

      A.無條件傳送 B.查詢傳送 C.中斷傳送 D.以上均可

      答案:C

      2.在 8086 的中斷中,只有______需要硬件提供中斷類型碼。

      A.外部中斷 B.可屏蔽中斷 C.不可屏蔽中斷 D.內(nèi)部中斷

      答案:B

      3.在中斷響應(yīng)周期,CPU 從數(shù)據(jù)總線上獲取______。

      A.中斷向量的偏移地址 B.中斷向量 C.中斷向量的段地址 D.中斷類型碼

      答案:D

      4.執(zhí)行 INT n 指令或響應(yīng)中斷時,CPU 保護(hù)現(xiàn)場的次序是______。

      A.FLAGS 寄存器(FR)先入棧,其次是 CS,最后是 IP B.CS 在先,其次是 IP,最后 FR 入棧 C.FR 在先,其后一次是 IP,CS D.IP 在先,其次是 CS,最后 FR 答案:A

      5.在 PC/XT 中,NMI 中斷的中斷向量在中斷向量表中的位置_______。

      A.是由程序指定的 B.是由 DOS 自動分配的 C.固定在 0008H 開始的 4 個字節(jié)中 D.固定在中斷向量表的表首

      答案:C 6.中斷調(diào)用時,功能調(diào)用號碼應(yīng)該_______。

      A.寫在中斷指令中 B.在執(zhí)行中斷指令前賦給 AH C.在執(zhí)行中斷指令前賦給 AX D.在執(zhí)行中斷指令前賦給 DL 答案:B

      7.若 8259A 的 ICW2 設(shè)置為 28H,從 IR3 引入的中斷請求的中斷類型碼是_____。A.28H B.2BH C.2CH D.2DH 答案:B

      8.8259A 有 3 中 EOI 方式,其目的都是為了_____。

      A.發(fā)出中斷結(jié)束命令,使相應(yīng)的 ISR=1 B.發(fā)出中斷結(jié)束命令,使相應(yīng)的 ISR=0 C.發(fā)出中斷結(jié)束命令,使相應(yīng)的 IMR=1 D.發(fā)出中斷結(jié)束命令,使相應(yīng)的 IMR=0 答案:B

      9.8259A 特殊全嵌套方式要解決的主要問題是______。A.屏蔽所有中斷 B.設(shè)置最低優(yōu)先級 C.開發(fā)低級中斷 D.響應(yīng)同級中斷

      答案:D

      10.8259A 編程時,中斷屏蔽可通過______設(shè)置。A.ICW1 B.OCW1 C.OCW2 D.OCW3 答案:B

      二、填空題

      1.8086/8088 的中斷系統(tǒng),可以處理______種不同的中斷。從產(chǎn)生中斷的方法來分,中斷 可分為兩大類:一類叫_____中斷;一類叫______中斷。硬件中斷又可分為兩大類:一類 叫______中斷;另一類叫______中斷。

      答案:256 外部、內(nèi)部 不可屏蔽中斷 可屏蔽中斷

      2.8086 系統(tǒng)中斷響應(yīng)時,會將,和 壓入堆棧,并將 和 TF 清零。

      答案:FR CS IP

      3.類型碼為______的中斷所對應(yīng)的中斷向量放在 0000H:0084H 開始的 4 個存儲單元中,若這 4 個存儲單元中從低地址到高地址存放的數(shù)依次是___________,則相應(yīng)的中斷服務(wù) 程序的入口地址是 3322H:1150H。

      答案:21H 50H 11H 22H 33H

      4.已知 CS 的內(nèi)容為 2000H,IP 的內(nèi)容為 3000H,則 CPU 下一條要執(zhí)行指令的物理地址 是________;當(dāng)緊接著執(zhí)行中斷指令 INT 15H 時,其中斷類型碼為______,該指令對應(yīng) 的中斷向量在中斷向量表中的首地址為__________,假定該中斷對應(yīng)的中斷向量是 4000H:2300H,則執(zhí)行該中斷后 CPU 執(zhí)行中斷服務(wù)程序的首地址是______,此時 CS 中 為_____,IP 中為_______。

      答案:23000H, 15H 54H 43200H 4000H 2300H 5.8259A 有兩種中斷觸發(fā)方式:______和______。

      答案:邊沿觸發(fā)方式 電平觸發(fā)方式

      6.若有 40 個外部中斷申請信號,則至少需要______片 8259A 中斷控制器。

      答案:6

      7.8259A 內(nèi)部含有_____個可編程寄存器,共占用_____個端口地址。8259A 的中斷請求 寄存器 IRR 用于存放_______,中斷服務(wù)寄存器 ISR 用于存放_______。

      答案:7 2 外部的中斷請求信號 系統(tǒng)響應(yīng)中斷信號的狀態(tài)

      8.8259A 的初始化命令字包括_________,其中________和_______是必須設(shè)置的。

      答案:ICW1~ICW4 ICW1 ICW2 9.中斷服務(wù)程序的返回指令為。

      答案:IRET 10.執(zhí)行溢出中斷的兩個條件是 和。

      答案:OF=1, INTO

      11.8086/8088 系統(tǒng)共能管理 個中斷,中斷向量表在內(nèi)存中的地址從 到。

      答案:256 00000H~0003FFH

      12.已知 SP=0100H, SS=0600H, 標(biāo)志寄存器 Flags=0204H, 存儲單元 [0024H]=60H, [0025H]=00H, [0026H]=00H, [0027H]=10H,在段地址為 0800H 及偏移地址為 00A0H 開始的單元中,有一條指令 INT 9H(INT 9H 為 2 字節(jié)指令)。則執(zhí)行該指令后,SS= , SP= , IP= , CS= ,Flags=。Flags: OF DF IF TF SF ZF AF PF CF 答案:(SS)=0600H(SP)=00FAH(IP)=0060H(CS)=1000H(FR)=0004H

      三、問答題

      1.如何“屏蔽”可屏蔽中斷?敘述 CPU 響應(yīng)可屏蔽中斷的過程。

      答案: 由 CPU 的 INTR 引腳上的中斷請求信號引起的中斷稱為可屏蔽中斷。這種中斷可以被 CLI 指令屏蔽。當(dāng)中斷接口電路中的中斷屏蔽觸發(fā)器未被屏蔽時,外設(shè)可通過中斷接口發(fā)出中斷申請。外設(shè)向 CPU 發(fā)出中斷請求的時間是隨機(jī)的,而 CPU 響應(yīng)可屏蔽中斷需滿足如下條件:(1)CPU 必須處于開中斷狀態(tài),即 TF=1 狀態(tài);(2)系統(tǒng)中無總線請求;(3)系統(tǒng)中無不可屏蔽中斷請求;(4)CPU 執(zhí)行完現(xiàn)行命令。

      2.設(shè)某中斷的中斷類型號為 12H,中斷服務(wù)程序的段地址為 2020H,偏移地址為 3000H,試編寫程序段將中斷向量裝入中斷向量表中。

      答案: XOR AX, AX MOV ES, AX MOV DI, 12*4;DI 中為 n 號中斷對應(yīng)的中斷向量表的偏移地址 MOV AX, 3000H CLD STOSW;裝入中斷服務(wù)程序偏移地址 MOV AX, 2020H STOSW;裝入中斷服務(wù)程序偏移地址

      3.8259A 具有兩種中斷屏蔽方式,普通屏蔽和特殊屏蔽方式。這兩種屏蔽方式有什么特 殊之處,特殊屏蔽方式一般用在什么場合?

      答案:(1)普通屏蔽方式:在普通屏蔽方式中,將 IMR 某位置 1,則它對應(yīng)的中斷就被屏蔽,從而使這個中斷請求不能從 8259A 送到 CPU。如果 IMR 位置 0,則允許該級中斷產(chǎn)生。(2)特殊屏蔽方式:在有些特殊情況下,希望一個中斷服務(wù)程序能夠動態(tài)地改變系統(tǒng)優(yōu) 先權(quán)結(jié)構(gòu),就引入了特殊屏蔽方式。編程時 IMR 某位置位,就會同時使 ISR 的對應(yīng)位復(fù) 位。這樣就不只屏蔽了當(dāng)前正在處理的這級中斷,而且真正開放了其他級別較低的中斷。當(dāng)然,未屏蔽的較高級中斷也可得到響應(yīng)。特殊屏蔽中斷一般用在中斷服務(wù)程序執(zhí)行過程中,不僅用于響應(yīng)優(yōu)先級高于當(dāng)前中斷的 中斷請求優(yōu)先級,而且還能夠應(yīng)用于響應(yīng)優(yōu)先級低于當(dāng)前中斷的中斷申請優(yōu)先級的場合。

      4.試簡述 8259A 中斷控制器是如何在特殊全嵌套方式 SNFM 下實(shí)現(xiàn)全嵌套的?

      答案: 特殊全嵌套方式和普通全嵌套方式的區(qū)別在于:在特殊全嵌套方式下,當(dāng)處理某一級中 斷時,如果有同級的中斷請求 8259A 也會給予響應(yīng),從而實(shí)現(xiàn)一個中斷過程能被另一個 具有同等級的中斷請求所打斷。特殊全嵌套方式一般用在 8259A 的級聯(lián)系統(tǒng)中。在這種情況下只有主片的 8259A 允許編 程為 特殊全嵌套方式。這樣,當(dāng)來自某一從片的中斷請求正在處理時,主片除對來自優(yōu) 先級較高的本片上其他 IR 引腳上的中斷請求進(jìn)行開放外,同時對來自同一從片的較高優(yōu) 先級請求也會開放。使主片不封鎖得到響應(yīng)的從片的 INT 輸入,以便讓從片上優(yōu)先級別 更高的中斷能夠得到響應(yīng)。

      5.請編寫初始化程序。系統(tǒng)有一片 8259A,中斷請求信號用電平觸發(fā)方式,要用 ICW4,中斷類型碼為 60H~67H,用特殊全嵌套方式,無緩沖,采用自動中斷結(jié)束方式。設(shè) 8259A 的地址為 92H,93H。

      答案: MOV AL, 0001101B OUT 92H, AL MOV AL, 01100000B OUT 93H, AL MOV AL, 00010011B OUT 93H, AL 6.若 8086 系統(tǒng)采用單片 8259A 作為外部可屏蔽中斷的優(yōu)先級管理器,正常全嵌套方式,邊沿觸發(fā),非緩沖連接,非自動中斷結(jié)束,端口地址為 20H,21H。其中某中斷源的中 斷類型碼為 0AH,其中斷服務(wù)子程序的入口地址是 2000:3A40H。(1)請為 8259A 設(shè)置正確的初始化命令字,并編寫初始化程序。

      (2)中斷源應(yīng)與 IR 的哪一個輸入端相連?中斷向量地址是多少,中斷向量區(qū)對應(yīng)著 4 個單元的內(nèi)容是什么?

      答案: MOV AL, 13H OUT 20H, AL MOV AL, 08H OUT 21H, AL MOV AL, 01H OUT 21H, AL 中斷源應(yīng)與 IRQ2 相連,矢量地址為 0028AH,地址中內(nèi)容(由高向低):20H,00H,3AH,40H

      7.8086 微機(jī)系統(tǒng)中,如圖例 7 所示硬件連接,8259A 的主片采用特殊全嵌套,從片采 用一般全嵌套,主片和從片都是非自動中斷結(jié)束,中斷源都為邊沿觸發(fā)信號有效,主片 的中斷類型碼為 80H~87H,從片的中斷類型碼為 50H~57H。

      1. 寫出主片 8259A 和從片 8259A 的地址;

      2. 寫出主片 8259A 的控制字,并完成初始化編程;

      3. 寫出從片 8259A 的控制字,并完成初始化編程;

      8086 D7~D0IO /M A7A5A4A3A2A1A0INTA A6INTR G1 A B C 1 74LS138 CS A0D7~D0INT IR0IR1IR2IR3IR4IR5IR6IR7EN SP/ +5V INTA CAS0CAS2~ 8259A 8259AG2AG2B7Y6Y5Y4YCAS0CAS2~ IR0IR1IR2IR3IR4IR5IR6IR7EN SP/ CS A0D7~D0INT INTA 圖例 7 1.主片地址:F0H F1H 從片地址:C0H C1H 2.主片: ICW1 11H ICW2 80H ICW3 80H ICW4 11H 從片: ICW1 11H ICW2 50H ICW3 03H ICW4 01H 3.主片初始化 MOV AL, 11H OUT 0F0H,AL MOV AL, 80H OUT 0F1H,AL MOV AL, 80H OUT 0F1H, AL MOV AL, 11H OUT 0F1H, AL 從片初始化: MOV AL, 11H OUT 0C0H,AL MOV AL, 50H OUT 0C1H,AL MOV AL, 03H OUT 0C1H, AL MOV AL, 01H OUT 0C1H, AL 第八章習(xí)題

      一、選擇題

      1.可編程計數(shù)/定時器 8253 的工作方式共有______,共有_____個 I/O 口。

      A.3 種,4 B.4 種,5 C.6 種,3 D.6 種,4 答案:C

      2.若 8253 的通道計數(shù)頻率為 1MHz,每個通道的最大定時時間為______。

      A.10ms B.97.92ms C.48.64ms D.65.536ms 答案:D

      3.當(dāng)可編程計數(shù)/定時器 8253 工作在方式 0,在初始化編程時,一旦寫入控制字后,_________。

      A.輸出信號端 OUT 變?yōu)楦唠娖紹.輸出信號端 OUT 變?yōu)榈碗娖紺.輸出信號保持原來的電位值 D.立即開始計數(shù)

      答案:B 4.定時/計數(shù)器 8253 無論工作在哪種方式下,在初始化編程時,寫入控制字后,輸出端 OUT 便______。

      A.變?yōu)楦唠娖紹.變?yōu)榈碗娖紺.變?yōu)橄鄳?yīng)的高電平或低電平D.保持原狀態(tài)不變,直至計數(shù)結(jié)束

      答案:C 5.8253 工作在方式 1 時,輸出負(fù)脈沖的寬度等于______。

      A.1 個 CLK 脈沖寬度 B.2 個 CLK 脈沖寬度 C.N 個 CLK 脈沖寬度 D.N/2 個 CLK 脈沖寬度

      答案:C

      6.將 8253 定時/計數(shù)器的通道 0 設(shè)置為方式 3,產(chǎn)生頻率為 10KHz 的方波。當(dāng)輸入脈沖 頻率為 2MHz 時,計數(shù)初值為______。A.200 B.300 C.400 D.500 答案:A

      二、填空題

      1.8253 的計數(shù)器通道有______個,端口地址有_______個。答案:3,4 2.8253 的最高計數(shù)頻率為。

      答案:2MHz

      3.8253 的數(shù)據(jù)引腳有_______位,內(nèi)部有_______位的計數(shù)器初值寄存器。答案:8 位 16 位

      4.若 8253 的輸入時鐘 CLK1=1MHz,計數(shù)初值為 500,BCD 碼計數(shù)方式,OUT1 輸出為 方波,則初始化時該通道的控制字應(yīng)為______。

      答案:77H

      5.如果 8253 通道 0 工作在方式 0,初值為 8H,當(dāng)減法計數(shù)至 5H 時,GATE 信號變?yōu)榈?,則 當(dāng) GATE 信號從新為高時,從 又開始計數(shù)。

      答案:原來計數(shù)中斷的位置

      6.8253 端口地址為 40H~43H,通道 0 作為計數(shù)器,計數(shù)時鐘頻率為 1MHz。下面程序段 執(zhí)行后,輸出脈沖的寬度是______。MOV AL, 36H OUT 43H, AL MOV AX, 20000 OUT 40H, AL MOV AL, AH OUT 40H, AL 答案:10ms

      三、問答題

      1.每個計數(shù)器和外設(shè)的連接引腳各是什么?簡述其功能。

      答案:計數(shù)器與外部相連的信號端有 3 個:CLK、GATE 和 OUT。CLK 是計數(shù)器 的時鐘脈沖輸入端,最高頻率為 2MHz;GATE 是計數(shù)器的控制信號,決定是否允許計 數(shù);OUT 是計數(shù)器的輸出信號,不同的工作方式有不同的輸出信號。

      2.某系統(tǒng)利用 8253 芯片進(jìn)行定時計數(shù),輸入的時鐘脈沖為 1MHz,定時時間為 10s,問需要幾個計數(shù)器通道完成定時,每個計數(shù)器通道的計數(shù)初值為多少?

      答案: 10×106=1000 0000 需要兩個計數(shù)通道,計數(shù)初值分別為 1000 和 10000

      3.8253 的 4 個端口地址為 208H、209H、20AH、20BH,采用計數(shù)器 0 定時,輸入時鐘 信號為外部事件,當(dāng)外部事件記滿 100 時,由計數(shù)器 0 輸出中斷請求信號,要求完成對 計數(shù)器 0 的初始化編程,并設(shè)計端口地址的譯碼硬件電路。

      答案: 控制字 00010000H 片選地址 片內(nèi)地址 接口電路地址 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 10000010 0 0 208H 0 1 209H 1 0 20AH 1 1 20BH MOV DX, 20BH MOV AL, 10H OUT DX, AL MOV AL,100 MOV DX, 208H OUT DX, AL & ≥1 CS A9A3A8A7A6A5A4M/IO RD WR IOR IOW D7~D0 至 DB A1A0A1A0GATE0+5V CLK0OUT0 外部事件計數(shù) 申請中斷

      4.如題圖 8.1 所示硬件電路,試寫出 8253 的 4 個端口地址,并寫出計數(shù)器 1 的初始化 程序。M/IO A9A8A7A6A5A4A3A2A1A0RDWR D7D08086 CPU G1 G2A Y3G2B C B A CS A1A0RD WR D7D0CLK1GATE1OUT18253 1MHz 方波 +5V 2KHz 方波 74LS138 & ≥ ≥ 題圖 8.1 硬件電路連接

      答案:地址: 片選地址 片內(nèi)地址 接口電路地址 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 11000011 0 0 30CH 0 1 30DH 1 0 30EH 1 1 30FH 計數(shù)值: 1M/2K=500 控制字:01 10 011 1 方式 3,十進(jìn)制,只寫高位 MOV DX, 30FH MOV AL, 67H OUT DX, AL MOV AL, 05H MOV DX, 30DH OUT DX, AL 5.已知電路原理圖如題圖 8.2 所示。編寫初始化程序,使在 OUT0 端輸出圖示波形。題圖 8.2 答案: 初值:1000 控制字:35H MOV AL, 35H MOV DX, 203H OUT DX, AL MOV AX, 1000H MOV DX, 200H OUT DX, AL MOV AL, AH OUT DX, AL

      第九章習(xí)題

      一、選擇題

      1.對 8255A 的 C 口執(zhí)行按位置位/復(fù)位操作時,寫入的端口地址是______。

      A.端口 A B.端口 B C.端口 C D.控制口

      答案:D 2.要將 8255A 的 3 個 8 位的 I/O 端口全部設(shè)定為方式 0 的輸入,其設(shè)置的方式控制字為____。

      A.98H B.9BH C.9AH D.99H 答案:D 3.當(dāng) 8255A 的 A 口工作在方式 1,B 口工作在方式 1 時,C 口仍然可按基本的輸入輸出方式 工作的端口線有_________條。A.0 B.2 C.3 D.5 答案:B

      4.當(dāng) 8255A 端口 PA、PB 分別工作在方式

      2、方式 1 時,其 PC 端口引腳為_______。A.2 位 I/O B.2 個 4 位 I/O C.全部用作應(yīng)答聯(lián)絡(luò)線 D.1 個 8 位 I/O 答案:C

      5.如果 8255A 的端口 A 工作在雙向方式,這時還有_____根 I/O 線可作其他用。A.11 B.12 C.10 D.13 答案:A

      6.當(dāng) 8255A 的 PC4~PC7 全部為輸出線時,表明 8255A 的 A 端口工作方式是______。A.方式 0 B.方式 1 C.方式 2 D.任何方式

      答案:A

      7.8255A 中既可以作為數(shù)據(jù)輸入、輸出端口,又可以提供控制信息、狀態(tài)信息的端口是____。A.端口 A B.端口 B C.端口 C D.控制口

      答案:C

      8.8255A 的端口 A 和端口 B 工作在方式 1 輸出時,與外部設(shè)備的聯(lián)絡(luò)信號將使用____信號。A.INTR B.C.INTE D.IBF 答案:B

      二、填空題

      1.當(dāng) 8255A 的 A 口工作于方式 1 輸入,B 口工作于方式 0 時,C 口的_____位可以作為輸入 輸出口使用。答案:5 位

      2.若要求 8255A 的 A、B 口工作在方式 1,作為輸入,C 口作為輸出,則輸入 8255A 控制口 的控制字為______。

      答案:B6H

      3.若 8255A 的端口 B 工作在方式 1,并為輸出口,置位 PC2 的作用為______。

      答案:允許端口 B 輸出中斷

      4.當(dāng)數(shù)據(jù)從 8255A 的端口 C 往數(shù)據(jù)總線上讀出時,8255 的幾個控制信號、A1、A0、、分 別是__________________。

      答案:0 1 0 0 1 5.8255A 在方式 0 工作時,端口 A、B 和 C 的輸入輸出可以有_______種組合。

      答案:16

      三、問答題 1.并行接口芯片 8255A 和外設(shè)之間有幾個數(shù)據(jù)端口?在結(jié)構(gòu)上有什么區(qū)別?

      答案:3 個數(shù)據(jù)端口 這 3 個端口與外設(shè)的數(shù)據(jù)接口都是 8 位,但功能不完全相同。A 口有 3 種工作方式,B 口有 2 種工作方式,口有 1 種工作方式??诳梢苑謨刹糠质褂茫珻 C 常用來配合 A 口和 B 口工作,C 口的高四位 PC7 ~ PC4 常用來配合 A 口工作,口的低四位 PC3 ~ PC0 常用來配合 B 口工作。C 各端口在結(jié)構(gòu)上有所不同: 端口 A 包含 1 個 8 位的數(shù)據(jù)輸入鎖存器,1 個 8 位的數(shù)據(jù)輸出鎖存器; 端口 B 包含 1 個 8 位的數(shù)據(jù)輸入緩沖器,1 個 8 位的數(shù)據(jù)輸出鎖存器; 端口 C 包含 1 個 8 位的數(shù)據(jù)輸入緩沖器,1 個 8 位的數(shù)據(jù)輸出鎖存器。

      2.8255A 的地址信號線是什么?共占用幾個端口地址?

      答案: 地址信號端 A1、A0,有 4 種組合: A1A0=00,選中端口 A 的寄存器; A1A0=01,選中端口 B 的寄存器; A1A0=10,選中端口 C 的寄存器; A1A0=11,選中控制字寄存器。

      3.A 口工作于方式 0,輸入,B 口工作于方式 1,輸出,C 口的 PC1 作為輸出聯(lián)絡(luò)口,PC2 作 為輸入聯(lián)絡(luò)口,8255A 占用的 4 個端口地址為 80H ~ 83H,編寫初始化程序,畫出端口地址 的譯碼電路。

      答案: 控制字:1 001 0 1 00 94H MOV AL, 94H OUT 83H, AL 4.8255A 的 A 口和 B 口都工作于方式 0,PC6 作為輸入聯(lián)絡(luò)口,PC2 作為輸出聯(lián)絡(luò)口。當(dāng)檢 測到 PC6 為“1”時,A 口輸出數(shù)據(jù) 46H,并且 PC2 輸出“1”。設(shè) 8255A 的 4 個端口地址為 108H ~ 10EH,試編寫以上操作程序段。

      答案: 控制字:1 00 0 1 00 0 88H A 口方式 0 輸出 C 口高 4 位輸入 PC2 輸出 1 0 000 010 1 05H MOV DX, 10EH MOV AL, 88H OUT DX, AL;控制字 DEC DX NEXT: IN AL , DX TEST AL, 40H;測試 PC6 JZ NEXT;為 0,繼續(xù)查詢 MOV DX, 108H MOV AL, 46H OUT DX, AL;A 口輸出 MOV AL, 05H MOV DX, 10EH OUT DX, AL ;PC2 輸出

      5.如題圖 9.1 所示電路,當(dāng) A 口連接的開關(guān)閉合時,相應(yīng)的 B 口連接的發(fā)光二極管亮。(1)(2)寫出 8255A 的 4 個端口地址; 編寫程序完成以上操作。題圖 9.1 硬件電路連接

      答案:地址:208H~20BH 控制字:1 00 1 0 0 00 A 口發(fā)生 0 輸入 B 口方式 0 輸出

      MOV DX , 20BH MOV AL, 90H OUT DX, AL MOV DX, 108H IN AL, DX;讀 A 口 INC DX OUT DX, AL;寫 B 口

      6. 如題圖 9.2 所示電路,口工作于方式 1 輸出,B 作為 CPU 和打印機(jī)之間的并行接口電路。設(shè) 8255A 的端口地址為 90H ~ 93H,編寫程序完成將 RUF 開始的 1000 個字節(jié)的數(shù)據(jù)打印。題圖 9.2 B 口方式 1 輸出

      答案: 控制字 1 000 0 1 0 0 84H B 口方式 1 輸出 允許 B 口中斷,可以查詢中斷指示狀態(tài):PC2 置 1,0 000 010 1 MOV AL, 84H OUT 93H, AL;寫控制字 MOV AL, 05H OUT 93H, AL;寫中斷允許 LEA SI , RUF MOV CX, 1000 L1: MOV AL, [SI];將數(shù)據(jù)傳送至 AL OUT 91H, AL;從 A 口輸出數(shù)據(jù),使 變?yōu)榈碗娖絃2: IN AL, 92H;從 C 口讀取狀態(tài)字;打印機(jī)取走數(shù)據(jù)后,變?yōu)榈碗娖?,并?變?yōu)楦唠娖紸ND AL, 01H;判斷 B 口是否提出中斷申請 JZ L2;如果沒有,繼續(xù)檢測狀態(tài)字 INC SI;DEC CX JNZ L1 HLT

      第三篇:微機(jī)原理與接口技術(shù)習(xí)題答案10章

      第10章 定時/計數(shù)器8253應(yīng)用設(shè)計

      1.試分析 8255A方式0、方式1和方式2的主要區(qū)別,并分別說明它們適合于什么應(yīng)用場合。

      答:方式0是基本的輸入/輸出,端口A、B、C都可以作為輸入輸出端口。適用于CPU與非智能I/O設(shè)備的數(shù)據(jù)傳輸;

      方式1是有聯(lián)絡(luò)信號的輸入/輸出,端口A、B都可以設(shè)定成該方式,此時三個端口的信號線分成了A、B兩組,PC7~PC4用作A組的聯(lián)絡(luò)信號,PC3~PC0用作B組的聯(lián)絡(luò)信號。適用于高速CPU與低速I/O設(shè)備的數(shù)據(jù)傳輸;

      方式2是雙向傳輸,只有A組端口可以設(shè)定成該方式,PC6~PC7用作輸出的聯(lián)絡(luò)信號,PC4~PC5用作輸入的聯(lián)絡(luò)信號,PC3用作中斷請求信號。適用于雙機(jī)之間數(shù)據(jù)的并行傳送。

      2.8255A的A組設(shè)置成方式1輸入,與CPU之間采用中斷方式聯(lián)絡(luò),則產(chǎn)生中斷請求信號INTRA的條件是 STBA=

      ,IBFA=

      ,INTEA=。

      3.如果8255A的端口地址為300H~303H,A組和B組均為方式0,端口A為輸出,端口B為輸入,PC3~PC0為輸入,PC7~PC4為輸出,寫出8255A的初始化程序段;編程實(shí)現(xiàn)將從端口C低4位讀入的值從高4位送出。解: MOV DX,303H

      MOV AL,10000011B OUT DX,AL MOV DX,302H IN AL,DX MOV CL,4 SHL AL,CL OUT DX,AL 4.在實(shí)際應(yīng)用中經(jīng)常需要檢測設(shè)備的狀態(tài),并進(jìn)行指示。在8086最小方式系統(tǒng)下,有一片8255A,其分配的端口地址為8F00H~8F07H中的奇地址,外部設(shè)備產(chǎn)生的狀態(tài)有16個(K15~K0),要求采用4個發(fā)光二極管來指示開關(guān)量中“1”的個數(shù)。(1)畫出8255A - 0 - 的連接圖;(2)編寫程序段實(shí)現(xiàn)連續(xù)檢測并顯示。解:(1)

      8086D8~D158255D0~D7RDRDWRA2A1M/IOBHEA15A11A10A9A8A0A14A13A12A7A6A5A4A3PA0PA1......WRA1PA716位開關(guān)量(K15~K0)A0PB0PB1PB7......VCCCSPC3PC2PC1PC0

      (2)MOV DX,8F07H

      MOV AL,10010010B;端口A、B方式0輸入,端口C方式0輸出 OUT DX,AL NEXT:

      L2:

      MOV DX,8F03H;從端口B讀取高8位開關(guān)量 IN AL,DX XCHG AL,AH MOV DX,8F01H;從端口A讀取低8位開關(guān)量 IN AL,DX MOV BX,AX XOR AL,AL MOV CX,16 CLC SHL BX,1

      - 1 -

      L1:

      JNC L1 INC AL LOOP L2 MOV DX,8F05H;從端口C送出 OUT DX,AL JMP NEXT;進(jìn)行下一次檢測

      5.利用IBM PC系統(tǒng)機(jī)的總線槽,開發(fā)由一片8255A構(gòu)成的子系統(tǒng),8255A端口地址為260H~263H,編程實(shí)現(xiàn)產(chǎn)生如圖10.20所示的8個信號(各個信號的節(jié)拍不必嚴(yán)格相等)。

      Y0Y1Y7?

      圖10.20 要求產(chǎn)生的信號波形

      解:8355A與IBM PC機(jī)總線的連接框圖如下:

      可將8255A的端口A作為要產(chǎn)生的信號的輸出端口,設(shè)定為方式0輸出,端口B和端口C不做使用,均設(shè)定為方式0輸出。程序段如下:

      MOV

      DX,263H

      ;設(shè)定8255A的工作方式

      - 2 -

      MOV

      AL,10000000B

      OUT

      DX,AL

      MOV

      DX,260H

      ;產(chǎn)生指定信號

      XOR

      AL,AL

      OUT

      DX,AL REP:

      MOV

      AL,80H

      MOV

      CX,7 REP1:

      OUT

      DX,AL

      SAR

      AL,1

      LOOP REP1

      MOV

      CX,8 REP2:

      SHL

      AL,1

      OUT

      DX,AL

      LOOP REP2

      JMP

      REP

      6.在實(shí)際應(yīng)用中,經(jīng)常會遇到要求輸入多個數(shù)據(jù)量,這時需要用到多路開關(guān),如圖10.21表示八選一的邏輯框圖及其真值表。現(xiàn)有8組16位開關(guān)量數(shù)據(jù)(無符號數(shù)),要求通過一片8255A(端口地址為260H~263H)分時輸入到CPU(8088最小方式系統(tǒng))中,并找出它們中的最大值,并通過4個發(fā)光二極管指示其序號(燈亮表示“1”)。畫出8255A的連接圖,并編程實(shí)現(xiàn)。

      解:由于開關(guān)量是16為數(shù)據(jù),故可以將8255A的PA端與PB端設(shè)定為方式0,分別讀取開關(guān)量的低八位和高八位,以PC低三位端口的控制八選一電路的輸出依次從X0到X7,- 3 -

      八選一x0x1x2x3x4x5x6x7ys0s1s2s2s1s00 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1yx0x1x2x3x4x5x6x7圖10.21 八選一邏輯電路使用PC端口的高八位輸出最大開關(guān)量的序號(該序號為1~8),控制發(fā)光二極管的亮滅以碼指示序號。連接圖如下:

      程序段如下:

      MOV DX,263H

      MOV AL,10011010B;設(shè)定工作方式,PA,PB均工作于方式0,PA、PB為輸入,PC為輸出

      OUT

      DX,AL

      MOV

      CX,8

      XOR

      BX,BX

      MOV

      SI,0

      ;SI表示輸入開關(guān)量的序號 ST1:

      MOV

      DX,262H

      OUT

      DX,SI

      MOV

      DX,260H

      ;將開關(guān)量數(shù)據(jù)的低八位寫入AL

      IN

      AL,DX

      MOV

      DX,261H

      ;將開關(guān)量數(shù)據(jù)的高八位寫入AH

      IN

      AH,DX

      - 4 -

      CMP

      BX,AX

      JA

      NEXT

      MOV

      BX,AX

      ;將當(dāng)前最大值保存在BX中

      INC

      SI

      PUSH

      SI

      ;將當(dāng)前最大值的序號壓棧 NEXT:

      INC

      SI

      LOOP

      ST1

      POP

      SI

      XOR

      AX,AX

      MOV

      AX,SI

      MOV

      CL,4

      ROL

      AL,CL

      MOV

      DX,262H

      OUT

      DX,AL

      ;最大值的序號出棧

      ;將最大值的序號(4位)移至AL的高四位 的高四位輸出最大值序號 - 5 -

      ;PC

      第四篇:微機(jī)原理與接口技術(shù)習(xí)題答案2

      第2章 8086 CPU結(jié)構(gòu)與功能

      1.微處理器內(nèi)部結(jié)構(gòu)由哪幾部分組成?闡述各部分的主要功能。解:微處理器內(nèi)部結(jié)構(gòu)由四部分組成:

      (1)算術(shù)邏輯運(yùn)算單元ALU:完成所有的運(yùn)算操作;

      (2)工作寄存器:暫存尋址信息和計算過程中的中間結(jié)果;

      (3)控制器:完成指令的讀入、寄存和譯碼,并產(chǎn)生控制信號序列使ALU完成指定操作;

      (4)I/O控制邏輯:處理I/O操作。

      2.微處理器級總線有哪幾類?各類總線有什么作用? 解:微處理器級總線有三類:

      (1)數(shù)據(jù)總線:傳送信息;

      (2)地址總線:傳送地址碼;

      (3)控制總線 傳送控制信號。

      3.為什么地址總線是單向的,而數(shù)據(jù)總線是雙向的?

      解:地址碼只能由CPU生成。而數(shù)據(jù)需要在CPU和存儲器之間傳輸。4.8086/8088微處理器內(nèi)部有哪些寄存器?其主要作用是什么?

      解:8086CPU內(nèi)部有14個16位寄存器,其中8個通用寄存器(4數(shù)據(jù)寄存器AX、BX、CX、DX,4地址指針/變址寄存器SI、DI、SP、BP),4個段寄存器(CS、DS、ES、SS),2個控制寄存器(指令指針I(yè)P,微處理器狀態(tài)字PSW)。

      應(yīng)該注意的是:可以在指令中用作為地址指針的寄存器有:SI、DI、BP和BX;在微處理器狀態(tài)字PSW中,一共設(shè)定了9個標(biāo)志位,其中6個標(biāo)志位用于反映ALU前一次操作的結(jié)果狀態(tài)(CF,PF,AF,ZF,SF,OF),另3個標(biāo)志位用于控制CPU操作(DF,IF,TF)。

      5.如果某微處理器有20條地址總線和16條數(shù)據(jù)總線:

      (1)假定存儲器地址空間與I/O地址空間是分開的,則存儲器地址空間有多大?

      (2)數(shù)據(jù)總線上傳送的有符號整數(shù)的范圍有多大? 解:(1)存儲器地址空間為:220?1MB

      1(2)有符號數(shù)范圍為: ?2~2?1,即 -32768~32767 6.將十六進(jìn)制數(shù)62A0H與下列各數(shù)相加,求出其結(jié)果及標(biāo)志位CF、AF、SF、ZF、OF

      15和PF的值:

      (1)

      1234H;(2)

      4321H;(3)

      CFA0H;(4)

      9D60H 解:(1)

      74D4H

      CF=0 AF=0 SF=0 ZF=0 OF=0 PF=1

      (2)

      A5C1H CF=0 AF=0 SF=1 ZF=0 OF=1 PF=0

      (3)

      3240H

      CF=1 AF=0 SF=0 ZF=0 OF=0 PF=0

      (4)

      0000H

      CF=1 AF=0 SF=0 ZF=1 OF=0 PF=1 7.從下列各數(shù)中減去4AE0H,求出其結(jié)果及標(biāo)志位CF、AF、SF、ZF、OF和PF的值:

      (1)1234H;(2)5D90H;(3)9090H;(4)EA04H 解:(1)

      C754H

      CF=1 AF=0 SF=1 ZF=0 OF=0 PF=0(2)

      12B0H

      CF=0 AF=0 SF=0 ZF=0 OF=0 PF=0(3)

      45B0H

      CF=0 AF=0 SF=0 ZF=0 OF=1 PF=0

      (4)

      9F24H

      CF=0 AF=0 SF=1 ZF=0 OF=0 PF=1 9.寫出下列存儲器地址的段地址、偏移地址和物理地址:(1)2134:10A0;(2)1FA0:0A1F;(3)267A:B876 解:物理地址=段地址*10H+偏移地址

      (1)段地址:2134H,偏移地址:10A0H,物理地址:223E0H(2)段地址:1FA0H,偏移地址:0A1FH,物理地址:2041FH(3)段地址:267AH,偏移地址:B876H,物理地址:32016H 10.給定一個數(shù)據(jù)的有效地址為2359H,并且(DS)=490BH,求該數(shù)據(jù)的物理地址。解:物理地址=段地址*10H+偏移地址

      物理地址=490BH +2359H = 4B409H 11.如果在一個程序段開始執(zhí)行之前,(CS)=0A7F0H,(IP)=2B40H,求該程序段的第一個字的物理地址。

      解:物理地址=段地址*10H+偏移地址

      物理地址=CS*10H+IP = AAA40H 12.IBM PC有哪些寄存器可用來指示存儲器的地址? 解:變址寄存器SI,DI,堆棧指針SP,BP,另外還有BX。

      第五篇:微機(jī)原理與接口技術(shù)習(xí)題答案4

      第4章 匯編語言程序設(shè)計

      1.已知在BUF的起始處保存有N個字符的ASCII碼,編寫匯編語言程序?qū)崿F(xiàn),將這組字符串傳送到緩沖區(qū)BUFR中,并且使字符串的順序與原來的順序相反。解:BUF

      BUFR

      MOV CX, N LEA SI, BUF LEA DI, BUFR ADD DI,CX DEC DI L1: MOV AL,[SI] MOV [DI],AL INC SI DEC DI LOOP L1

      2.利用移位、傳送和相加指令實(shí)現(xiàn)AX的內(nèi)容擴(kuò)大10倍。

      解:將擴(kuò)大后的結(jié)果放在DX:AX中,注意到10×AX=8×AX+2×AX。XOR SHL RCL DX,DX AX, 1 DX, 1 DB “BONJOUR_BELLE” DB 100 DUP(?)MOV BX,AX MOV SHL RCL SHL RCL CX,DX AX, 1 DX, 1 AX, 1 DX, 1 ADD ADC AX, BX DX, CX 3.在緩沖區(qū)VAR中連續(xù)存放著3個16位的無符號數(shù),編寫程序?qū)崿F(xiàn)將其按遞增關(guān)系排列;如果VAR中保存的為有符號數(shù),則再編寫程序?qū)崿F(xiàn)將其按遞減關(guān)系排列。解:VAR DW 1236,-432,3900 XOR SI,SI MOV AX,VAR[SI] CMP AX, VAR[SI+2] JAE L1 XCHG AX, VAR[SI+2] L1:

      CMP AX, VAR[SI+4] JAE L2 XCHG AX, VAR[SI+4] L2: MOV VAR[SI], AX MOV AX,VAR[SI+2] CMP AX, VAR[SI+4] JAE L3 XCHG AX, VAR[SI+4] L3:

      MOV VAR[SI+2], AX 4.編寫程序段實(shí)現(xiàn)將AL和BL中的每一位依次交叉,得到的16位字保存在DX中,例如(AL)=01100101B,(BL)=11011010B,則得到的(DX)=10110110 10011001B。解:利用移位指令完成。

      L1: SHR AL,1 RCR DX,1 XOR DX,DX MOV CX,8

      SHR BL,1 RCR DX,1 LOOP L1 5.在變量VAR1和VAR2中分別保存有兩個字節(jié)型的正整數(shù),編寫完整的匯編語言程序?qū)崿F(xiàn):

      (1)當(dāng)兩數(shù)中有一個奇數(shù)時,將奇數(shù)存入VAR1,偶數(shù)存入VAR2;

      (2)當(dāng)兩數(shù)均為奇數(shù)時,兩個變量的內(nèi)容不變;(3)當(dāng)兩數(shù)均為偶數(shù)時,兩數(shù)縮小一倍后存入原處。

      解:當(dāng)VAR1為奇數(shù)時,不論VAR2的奇偶性,這兩個單元的內(nèi)容均不變;只有當(dāng)VAR1為偶數(shù)時,如果VAR2為奇數(shù),則VAR1與VAR2內(nèi)容交換;如果VAR2為偶數(shù),則兩數(shù)縮小一倍后存入原處。DATA SEGMENT

      VAR1

      DB 28

      VAR2 DB 36 DATA ENDS CODE SEGMENT

      ASSUME CS:CODE, DS:DATA, ES:DATA START: MOV AX, DATA MOV DS,AX MOV ES, AX MOV AL,VAR1 MOV BL,VAR2 TEST AL,1 JZ EVEN1 JMP OVER

      EVEN1:

      TEST BL,1

      JZ

      EVEN2

      MOV VAR1,BL MOV JMP VAR2,AL OVER EVEN2:

      SHR MOV SHR MOV AL,1 VAR1,AL BL,1 VAR2,BL

      OVER:

      MOV AH,4CH MOV AL,0 INT ENDS END START 21H CODE

      6.已知在字變量VAR1、VAR2和VAR3中保存有3個相同的代碼,但有一個錯碼,編寫程序段找出這個錯碼,并將它送到AX,其地址送SI;如果3個代碼都相同,則在AX中置-1標(biāo)志。解:在數(shù)據(jù)段中定義:

      VAR1 DW 5A34H VAR2 DW 5A35H VAR3 DW 3A34H

      在代碼段中編寫程序段:

      MOV AX,-1 MOV BX,VAR1 CMP BX,VAR2 JZ

      L2 CMP BX,VAR3 JZ

      L1 MOV AX,BX LEA SI,VAR1 JMP OVER L1: MOV AX,VAR2 LEA SI,VAR2 JMP OVER L2: CMP BX,VAR3 JZ

      OVER MOV AX,VAR3 LEA SI,VAR3 OVER: 7.分析下列程序段的功能:

      MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL 解:程序段完成DX:AX組成的32位無符號數(shù)左移4位,低位補(bǔ)零(也即除以16)。8.下列程序段執(zhí)行后,求BX寄存器的內(nèi)容:

      MOV CL,3 MOV BX,0B7H ROL BX,1 ROR BX,CL 解:實(shí)際上完成BX內(nèi)容循環(huán)右移2位,因此,BX寄存器的內(nèi)容為C02DH。9.下列程序段執(zhí)行后,求BX寄存器的內(nèi)容:

      MOV CL,5 MOV BX,7D5CH SHR BX,CL 解:完成BX內(nèi)容邏輯右移5位,因此,BX寄存器的內(nèi)容為03EAH。10.將BUFFERS中N個字按相反順序傳遞到BUFFERT中。解:

      LEA SI,BUFFERS LEA DI,BUFFERT MOV CX,N ADD DI,N ADD DI,N SUB DI,2 L1: MOV AX,[SI] MOV [DI],AX ADD SI,2 SUB DI,2 LOOP L1 11.數(shù)組ARRAY中存放有一組字型數(shù)據(jù),前兩個字節(jié)存放數(shù)據(jù)長度(5的倍數(shù))。為給這個數(shù)組中的數(shù)據(jù)進(jìn)行加密保護(hù),每5個數(shù)據(jù)取出一個數(shù)據(jù)進(jìn)行加密處理:奇數(shù)位進(jìn)行取反,偶數(shù)位不變,例如對數(shù)據(jù)0110 1100 1011 0001B加密后變成1100 0110 0001 1011B,編寫加密程序encrpytion 和解密程序 unencrpytion。

      解:約定從第一個數(shù)據(jù)開始,每5個數(shù)據(jù)為一組,每組中的第一個數(shù)據(jù)采取加密/解密處理。由于加密算法采用的是取反操作,解密算法也采用取反操作,因此解密和解密算法是同一個程序。

      ENCRPYTION PROC NEAR LEA SI,ARRAY

      XOR DX,DX

      MOV AX,[SI]

      MOV BX,5

      DIV BX

      MOV CX, AX

      ADD SI, 2 L1:

      MOV AX, [SI]

      XOR AX,0AAAAH

      MOV [SI], AX

      ADD SI,10

      LOOP L1

      RET ENCRPYTION ENDP

      13.設(shè)BUF中存放有N個無符號數(shù)(或有符號數(shù)),編程實(shí)現(xiàn)求它們的最小值(存入AX)和最大值(存入DX)。

      解:BUF存放有N個無符號數(shù)的程序如下: MOV CX,N-1 LEA SI,BUF MOV AX,[SI] MOV DX,AX ADD SI,2 L1: CMP AX,[SI] JBE NOCHG1 XCHG AX,[SI] NOCHG1: CMP DX,[SI] JAE NOCHG2 XCHG DX,[SI] NOCHG2: ADD SI,2 LOOP L1 如果BUF中存放的是有符號數(shù),則只需要將程序中的兩行內(nèi)容修改:

      JBE NOCHG1 JAE NOCHG2

      改成:JLE NOCHG1 改成:JGE NOCHG2

      14.設(shè)BUFFER中存放有N個無符號(第1個字節(jié)存放緩沖區(qū)的長度),編程實(shí)現(xiàn)將其中的0元素抹去,并更新其長度。

      解:設(shè)BUFFER中存放的是字節(jié)型數(shù)據(jù)。采用雙指針方法:SI為讀指針,DI為寫指針,從低地址開始,內(nèi)存中讀出一個字節(jié),如果不為0,則寫入內(nèi)存;如果為0,則不進(jìn)行寫操作。

      LEA SI, BUFFER XOR CX,CX MOV CL, [SI] INC SI MOV DI, SI XOR BH,BH XOR AL,AL L1: CMP [SI],AL JZ L2 MOV BL,[SI] MOV [DI],BL INC DI INC BH L2: INC SI LOOP L1 MOV BUFFER,BH 16.編寫一個子程序?qū)崿F(xiàn)統(tǒng)計AL中1的個數(shù),然后檢測出字節(jié)型緩沖區(qū)BUF中0和1個數(shù)相等的元素個數(shù)。

      解:統(tǒng)計AL中1的個數(shù),只需將AL右移,移出的一位內(nèi)容進(jìn)行累加,子程序?yàn)椋?COUNTBYTE PROC NEAR

      PUSH AX

      PUSH CX

      MOV CX,8

      XOR BL,BL COU1:

      SHR AL,1

      ADC BL,0

      LOOP COU1

      POP CX

      POP AX

      RET COUNTBYTE ENDP 在此基礎(chǔ)上,可以檢測出字節(jié)型緩沖區(qū)BUF中0和1個數(shù)相等的元素個數(shù),即一個字節(jié)中有4個1。設(shè)BUF中有N個字節(jié)型數(shù)據(jù),結(jié)果保持在BH中。

      MOV CX,N LEA SI, BUF XOR BH,BH L1: MOV AL,[SI] CALL COUNTBYTE CMP BL,4 JNZ L2 INC BH L2: INC SI LOOP L1

      19.在緩沖區(qū)BUFFER中,第1個字節(jié)存放數(shù)組的長度(<256),從第2個字節(jié)開始存放字符的ASCII碼,編寫子程序完成在最高位給字符加上偶校驗(yàn)。解:STACK SEGMENT STACK 'STACK'

      DW 100H DUP(?)

      TOP LABEL BYTE STACK ENDS

      DATA SEGMENT BUFFER DB 3

      DB 'ABC'

      DATA ENDS CODE SEGMENT

      ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START:

      MOV AX,STACK

      MOV SS,AX

      LEA SP,TOP

      MOV AX,DATA

      MOV DS,AX

      MOV ES,AX

      LEA DI,BUFFER

      XOR CX,CX

      MOV CL,[DI]

      INC DI

      CALL SETEVEN

      MOV AH,4CH

      MOV AL,0

      INT 21H SETEVEN

      PROC NEAR

      PUSH AX

      PUSH BX

      PUSH CX

      PUSH DI SETEVEN1:

      MOV AL,[DI]

      CALL COUNTBYTE

      ;加偶校驗(yàn)子程序

      ;返回DOS;首字節(jié)為字符串長度;字符串

      AND BL,01H

      JZ SETEVEN2

      OR AL,80H

      MOV [DI],AL SETEVEN2:

      INC DI

      LOOP SETEVEN1

      POP DI

      POP CX

      POP BX

      POP AX

      RET SETEVEN

      ENDP COUNTBYTE PROC NEAR

      PUSH AX

      PUSH CX

      MOV CX,8

      XOR BL,BL COU1:

      SHR AL,1

      ADC BL,0

      LOOP COU1

      POP CX

      POP AX

      RET COUNTBYTE ENDP CODE ENDS

      END START 20.編寫程序完成求多位數(shù)(N個字)的絕對值。21.已知斐波那契數(shù)列的定義為:F1數(shù)列前n項(xiàng)的子程序。

      ?1,F2?1,Fi?Fi?1?Fi?2(i?3),編寫求該解:設(shè)獎斐波那契數(shù)列存放在字變量RESULT中。在數(shù)據(jù)段中定義

      RESULT DW 100H DUP(?)

      在代碼段中編寫子程序 FIBONACCI PROC NEAR

      XOR DI,DI

      MOV RESULT[DI],1

      ;前兩個數(shù)為1

      MOV RESULT[DI+2],1

      ADD DI,4

      MOV CX,N L1:

      MOV AX, RESULT[DI-4]

      ADD AX, RESULT[DI-2]

      MOV RESULT[DI],AX

      ADD DI,2

      LOOP L1

      RET FIBONACCI ENDP

      22.編寫程序?qū)崿F(xiàn)循環(huán)顯示10條信息,保存每條信息的變量分別為INFOM1~I(xiàn)NFORM10。解:在數(shù)據(jù)段中定義變量:

      TABLE DW INFORM1, INFORM2, INFORM3, INFORM4, INFORM5

      DW INFORM6, INFORM7, INFORM8, INFORM9, INFORM10 在代碼段中編寫程序段:

      MOV XOR MOV MOV CX,10 SI,SI DX,TABLE[SI] AH,9 L1:

      INT ADD CALL LOOP 21H SI,2 WAIT L1 這里,WAIT為延時子程序,用于在顯示信息之間的停頓。

      23.編寫程序?qū)崿F(xiàn)將包含20個數(shù)據(jù)的數(shù)組ARRAY分成兩個數(shù)組:正數(shù)數(shù)組ARRAYP和負(fù)數(shù)數(shù)組ARRAYN,并分別將這兩個數(shù)組中數(shù)據(jù)的個數(shù)顯示出來。

      解:先編寫一個子程序DISPALD,完成以3位十進(jìn)制數(shù)形式顯示出AL的內(nèi)容。

      DISPALD PROC NEAR PUSH AX PUSH CX PUSH DX XOR AH,AH MOV CL,100 DIV CL PUSH AX MOV DL,30H ADD DL,AL MOV AH,2 INT 21H POP AX MOV AL,AH XOR AH,AH MOV CL,10 DIV CL PUSH AX MOV DL,30H ADD DL,AL MOV AH,2 INT 21H POP AX MOV DL,30H ADD DL,AH MOV AH,2 INT 21H POP DX POP CX POP AX RET DISPALD ENDP

      在此基礎(chǔ)上,根據(jù)題目要求,需要用到3個指針:SI指向源數(shù)組ARRAY,DI指向正數(shù)數(shù)組ARRAYP,BX指向負(fù)數(shù)數(shù)組ARRAYN。

      MOV XOR LEA LEA LEA MOV AND JS MOV INC INC JMP MOV INC INC INC CX,20 DX,DX SI,ARRAY DI,ARRAYP BX,ARRAYN AL,[SI] AL,AL L2 [DI],AL DI DL L3 [BX],AL BX DH SI L1:

      L2:

      L3:

      LOOP MOV CALL MOV CALL L1 AL,DL DISPALD AL,DH DISPALD 24.編寫程序?qū)崿F(xiàn)求緩沖區(qū)BUFFER的100個字中的最小偶數(shù)(存入AX)。解:設(shè)BUFFER中存放的是有符號數(shù)。

      L1:

      L2: MOV CX,100 LEA SI,BUFFER MOV AX, 7FFFH AND WORD PTR [SI],1 JNZ L2 CMP [SI],AX JGE L2 MOV AX,[SI] ADD SI,2 LOOP L1

      225.編寫程序?qū)崿F(xiàn)求級數(shù)1解:BL用于存放項(xiàng)數(shù)。

      ?22???n2??的前n項(xiàng)和剛大于2000的項(xiàng)數(shù)n。

      STACK SEGMENT STACK 'STACK'

      DW 100H DUP(?)TOP LABEL WORD STACK ENDS DATA SEGMENT

      DB 100H DUP(?)DATA ENDS CODE SEGMENT

      ASSUME CS:CODE, DS:DATA, ES:DATA, SS:STACK START:

      MOV AX,DATA

      MOV DS,AX

      MOV ES,AX

      MOV AX,STACK

      MOV SS,AX

      LEA SP,TOP

      MOV BL,1

      MOV CX,0 COUNT:

      MOV AL, BL

      MUL BL

      ADD CX,AX

      CMP CX,2000

      JA EXIT

      INC BL

      JMP COUNT EXIT:

      26.定義一條宏指令,實(shí)現(xiàn)將指定數(shù)據(jù)段的段地址傳送到段寄存器ES或DS的功能。解:

      27.定義一條宏指令,實(shí)現(xiàn)從鍵盤中輸入一個字符串(利用INT 21H的09號功能)。28.定義一條宏指令,實(shí)現(xiàn)在屏幕上輸出回車、換行。29.利用其它指令完成與下列指令一樣的功能:

      (1)REP MOVSB;

      (3)REP STOSB;

      解:設(shè)DF=0(1)

      L1: MOV AL,[SI]

      MOV ES:[DI],AL INC INC SI DI

      (2)REP LODSB;(4)REP SCASB。

      LOOP L1(2)

      L1: MOV AL,[SI] INC SI LOOP L1(3)

      L1: MOV ES:[DI],AL

      INC DI LOOP L1(4)

      L1: MOV AL,[SI]

      CMP AL,ES:[DI] INC INC SI DI LOOP L1 30.設(shè)在數(shù)據(jù)段中定義了:

      STR1 DB ‘ASSEMBLE LANGUAGE’ STR2 DB 20 DUP(?)利用字符串指令編寫程序段實(shí)現(xiàn):

      (1)從左到右將STR1中的字符串傳送到STR2;(2)從右到左將STR1中的字符串傳送到STR2;(3)將STR1中的第6個和第7個字節(jié)裝入DX;

      (4)掃描STR1字符串中有無空格,如有則將第一個空格符的地址傳送到SI。解: STR1中有17個字符(含一個空格),設(shè)DS和ES均指向STR1和STR2所在的段。(1)

      CLD MOV LEA LEA REP MOV LEA LEA CX,17 SI,STR1 DI,STR2 MOVSB CX,17 SI,STR1 DI,STR2(2)

      ADD DEC MOV MOV DEC INC LOOP LEA MOV MOV LEA MOV CMP JZ INC LOOP SI,CX SI AL,[SI] [DI],AL SI DI L1 SI,STR1 DX,[SI+6] CX,17 SI,STR1 AL,20H [SI], AL L2 SI L1 L1:

      (3)

      (4)

      L1:

      L2:

      31.設(shè)在數(shù)據(jù)段中定義了:

      STRING DB ‘Today is Sunday & July 16, 2000’

      編寫程序?qū)崿F(xiàn)將STRING中的’&’用’/’代替。解:STRING中保存了30個字符。

      MOV LEA MOV CMP JNZ MOV INC LOOP CX,30 SI,STRING AL,’&’ [SI],AL L2 BYTE PTR [SI],’/’ SI L1 L1:

      L2:

      32.分析下列程序段完成的功能:

      MOV CX,100 LEA SI,F(xiàn)IRST LEA DI,SECOND REP MOVSB 解:將緩沖區(qū)FIRST中100個字節(jié)傳送到SECOND中。33.分析下列程序段:

      LEA DI,STRING MOV CX,200 CLD MOV AL,20H REPZ SCASB JNZ FOUND JMP NOT_FOUND 問:轉(zhuǎn)移到FOUND的條件。

      解:在緩沖區(qū)STRING中搜索非空格字符,如果有非空格則轉(zhuǎn)到FOUND,如果200個單元中都是空格,則轉(zhuǎn)到NOT_FOUND。

      34.設(shè)在數(shù)據(jù)段的變量OLDS和NEWS中保存有5個字節(jié)的字符串,如果OLDS字符串不同于NEWS字符串,則執(zhí)行NEW_LESS,否則順序執(zhí)行程序。解:設(shè)DS和ES均指向字符串OLDS和NEWS所在的段。CLD MOV

      35.編程實(shí)現(xiàn)將STRING字符串中的小寫字母變換成大寫字母。解:設(shè)STRING中的字符個數(shù)為N。

      LEA LEA REPZ JNZ CX,5 SI,OLDS DI,NEWS CMPSB NEW_LESS

      MOV LEA MOV AND INC CX,N SI,STRING AL,5FH [SI],AL SI L1:

      LOOP L1 36.設(shè)在數(shù)據(jù)段中定義了:

      STUDENT_NAME DB 30 DUP(?)STUDENT_ADDR DB 9 DUP(?)STUDENT_PRINT DB 50 DUP(?)編寫程序?qū)崿F(xiàn):

      用空格符清除緩沖區(qū)STUDENT_PRINT; 在STUDENT_ADDR中查找第一個’_’字符; 在STUDENT_ADDR中查找最后一個’_’字符;

      如果STUDENT_NAME中全為空格符,則STUDENT_PRINT全存入’*’;

      將STUDENT_NAME傳送到STUDENT_PRINT的前30個字節(jié)中,將STUDENT_ADDR傳送到STUDENT_PRINT的后9個字節(jié)中。

      37.(上機(jī)題)編寫程序?qū)崿F(xiàn),將緩沖區(qū)BUFFER中的100個字按遞增排序,并按下列格式順序顯示:

      數(shù)據(jù)1 <原序號> 數(shù)據(jù)2 <原序號> ??

      38.(上機(jī)題)按同余法產(chǎn)生一組隨機(jī)數(shù)N(1

      Total <總?cè)藬?shù)> A:

      <人數(shù)1> B:

      <人數(shù)2> C:

      <人數(shù)3> D:

      <人數(shù)4> E:

      <人數(shù)5> F:

      <人數(shù)6>

      39.(上機(jī)題)編寫程序?qū)崿F(xiàn)下列5項(xiàng)功能,通過從鍵盤輸入1~5進(jìn)行菜單式選擇:

      (1)按數(shù)字鍵“1”,完成將字符串中的小寫字母變換成大寫字母。用戶輸入由英文大小寫字母或數(shù)字0~9組成的字符串(以回車結(jié)束),變換后按下列格式在屏幕上顯示:

      <原字符串>例如:abcdgyt0092 <新字符串>

      ABCDGYT0092 按任一鍵重做;按Esc鍵返回主菜單。

      (2)按數(shù)字鍵“2”,完成在字符串中找最大值。用戶輸入由英文大小寫字母或數(shù)字

      0~9組成的字符串(以回車結(jié)束),找出最大值后按下列格式在屏幕上顯示:

      <原字符串>

      The maximum is <最大值>.

      按任一鍵重做;按Esc鍵返回主菜單。

      (3)按數(shù)字鍵“3”,完成輸入數(shù)據(jù)組的排序。用戶輸入一組十進(jìn)制數(shù)值(小于255),然后變換成十六進(jìn)制數(shù),并按遞增方式進(jìn)行排序,按下列格式在屏幕上顯示:

      <原數(shù)值串>

      <新數(shù)值串> 按任一鍵重做;按Esc鍵返回主菜單。

      (4)按數(shù)字鍵“4”,完成時間的顯示。首先提示用戶對時,即改變系統(tǒng)的定時器

      HH:MM:SS(以冒號間隔,回車結(jié)束),然后在屏幕的右上角實(shí)時顯示出時

      間:HH:MM:SS。

      按任一鍵重新對時;按Esc鍵返回主菜單。

      (5)按數(shù)字鍵“5”,結(jié)束程序的運(yùn)行,返回操作系統(tǒng)。解:

      ※主程序的編程思路: 此程序共5個功能,可采用跳轉(zhuǎn)表法來實(shí)現(xiàn)多路分支結(jié)構(gòu)程序設(shè)計?,F(xiàn)將這5個程序段,各程序段的首地址分別標(biāo)號為G1,G2,G3,G4,G5。將5個程序段的入口地址做成表TABLE放入數(shù)據(jù)段,程序根據(jù)給定的參數(shù)計算出欲轉(zhuǎn)入的程序段的首地址在TABLE中的位置后,取出該地址,跳轉(zhuǎn)至該程序段。

      首先,通過調(diào)用子程序MENU,設(shè)置顯示器,并輸出提示文檔。接著,讀取‘1’-‘5’之間的ASCII表示數(shù)。然后,通過跳轉(zhuǎn)表TABLE實(shí)現(xiàn)由輸入?yún)?shù)轉(zhuǎn)入相應(yīng)的程序段。由于表中按“字”存放數(shù)據(jù),則每個數(shù)據(jù)的位移量是:0、2、4、6、8。對于輸入?yún)?shù)N,計算位移量的公式是N=(N-1)*2。

      當(dāng)輸入‘1’時,跳轉(zhuǎn)到標(biāo)號G1。調(diào)用子程序CHGLTR,完成將輸入字符串中的小寫字母變換成大寫字母。用戶按鍵,若為ESC,則轉(zhuǎn)到主程序段首調(diào)用MENU,否則,轉(zhuǎn)到標(biāo)號G1;

      當(dāng)輸入‘2’時,跳轉(zhuǎn)到標(biāo)號G2。調(diào)用子程序MAXLTR,完成在輸入字符串中找最大值。用戶按鍵,若為ESC,則轉(zhuǎn)到主程序段首調(diào)用MENU,否則,轉(zhuǎn)到標(biāo)號G2;

      當(dāng)輸入‘3’時,跳轉(zhuǎn)到標(biāo)號G3。調(diào)用子程序SORTNUM,完成輸入數(shù)據(jù)組的排序。用戶按鍵,若為ESC,則轉(zhuǎn)到主程序段首調(diào)用MENU,否則,轉(zhuǎn)到標(biāo)號G3。

      當(dāng)輸入‘4’時,跳轉(zhuǎn)到標(biāo)號G4。調(diào)用子程序TIMCHK,完成時間的顯示。用戶按鍵,若為ESC,則轉(zhuǎn)到主程序段首調(diào)用MENU,否則,轉(zhuǎn)到標(biāo)號G4。

      當(dāng)輸入‘5’時,跳轉(zhuǎn)到標(biāo)號G5。結(jié)束程序的運(yùn)行,返回操作系統(tǒng)。其流程框圖見圖3-1。

      下載微機(jī)原理與接口技術(shù)(樓順天編著)課后第八章習(xí)題答案[推薦5篇]word格式文檔
      下載微機(jī)原理與接口技術(shù)(樓順天編著)課后第八章習(xí)題答案[推薦5篇].doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        微機(jī)原理與接口技術(shù)(第二版)習(xí)題答案

        第1章1.1 微處理器、微型計算機(jī)和微型計算機(jī)系統(tǒng)三者之間有什么不同? 解: 把CPU(運(yùn)算器和控制器)用大規(guī)模集成電路技術(shù)做在一個芯片上,即為微處理器。微處理器加上一定數(shù)......

        微機(jī)原理與接口技術(shù)(錢曉捷版)課后習(xí)題答案

        “微機(jī)原理與接口技術(shù)”習(xí)題解答 第1章 微型計算機(jī)系統(tǒng) 〔習(xí)題1.1〕簡答題 〔解答〕 ① 處理器每個單位時間可以處理的二進(jìn)制數(shù)據(jù)位數(shù)稱計算機(jī)字長。 ② 總線信號分成三組,分......

        微機(jī)原理與接口技術(shù)試題及答案

        一、 填空題(每空 1 分,共 15 分) 得分 評閱人 1.RESET信號到來后8088/86的CS和IP 分別為 _FFFF_H 和_0000_H。 2. 在特殊全嵌套方式下,8259可響應(yīng) 同級或高級 中斷請求。 3......

        微機(jī)原理及接口技術(shù)試卷及答案

        一、(共30分) 1.(10分) (1)將十進(jìn)制數(shù)+107/128化成二進(jìn)制數(shù)、八進(jìn)制數(shù)和十六進(jìn)制數(shù)(3分) (2)請回答什么是二--十進(jìn)制編碼?什么是有權(quán)碼、什么是無權(quán)碼、各舉一個你熟悉的有權(quán)碼......

        微機(jī)原理與接口技術(shù)試題答案

        微機(jī)原理與接口技術(shù)試題答案 一、填空題(20*1) 1、微機(jī)系統(tǒng)由(硬件系統(tǒng))和(軟件系統(tǒng))兩部分組成。 2、8086有( 20 )位地址線,存儲器容量為( 1M)B。 3、8086CPU 內(nèi)部組成結(jié)構(gòu)從功能上講,......

        微機(jī)原理與接口技術(shù)小結(jié)范文大全

        微機(jī)原理與接口技術(shù)基礎(chǔ) 1.為什么在流水CPU中,將一條指令從取指到執(zhí)行結(jié)束的任務(wù)分割為一系列子任務(wù),并使各子任務(wù)在流水線的各個過程段并發(fā)地執(zhí)行,從而使流水CPU具有更強(qiáng)大的......

        2012年微機(jī)原理與接口技術(shù)試題及答案

        一. 選擇(每題1分) 下列各題四個選擇項(xiàng)中,只有一個選項(xiàng)是正確的。請將正確選項(xiàng)號寫在相應(yīng)空位置上。 1.系統(tǒng)總線又稱為_______,這是指模塊式微處理機(jī)機(jī)箱內(nèi)的底版總線。 1)主板......

        微機(jī)原理與接口技術(shù)考試試題及答案A

        《微機(jī)原理與接口技術(shù)》課程期末考試試卷(A卷,考試) 一、單項(xiàng)選擇(在備選答案中選出一個正確答案,并將其號碼填在題干后的括號內(nèi)。每題2分,共30分) 1 .某微機(jī)最大可尋址的內(nèi)存空間......