微型計算機原理應用第四版答案_第1頁
微型計算機原理應用第四版答案_第2頁
微型計算機原理應用第四版答案_第3頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第 1 章習題1.1 將下列二進制數轉換為十進制數和十六進制。 (1)1101(2)=13=D(H)(2)11010(2)=26=1A(H) (3)110100(2)=52=34(H)(4)10101001(2)=169=A9(H) 要點:從低位起,按每 4 位將對應二進制轉換成十六進制。而不是通過十進制轉換。1.2 見上。1.3 簡述 3 個門電路的基本元素在電路中對電平高低的作用。 答:與、或、非。1.4 布爾代數有哪兩個特點? 答:(1)值只有兩個;(2)只有與、或、反 3 種運算。1.5 布爾代數的“或運算”結果可用哪兩句話來歸納?其“與運算”又可歸納成哪兩句 話“答:(1)“或運算”

2、運算結果為有一真必為真,兩者皆假才為假。 (2)“與運算”有一假即為假,兩者皆真才為真。1.6 什么叫原碼、反碼及補碼? 答:原碼就是一個數的機器數。 反碼:將原碼每位取反,即為反碼。更準確的是:正數的反碼就等于它的原碼; 負數的反碼就是它的原碼除符號位外,各位取反。補碼:反碼加 1 就是補碼。 更準確的是:正數的補碼就等于它的原碼;負數的補碼就是它的反碼加 1。例:X1=+ 100 1001X2= 100 1001則:X1 原 = 0100 1001X1 反 = 0100 1001X1 補 = 0100 1001X2 原 = 1100 1001X2 反 = 1011 0110X2 補 = X

3、2 反+1= 1011 01111.7 為什么需要半加器和全加器,它們之間的主要區別是什么?答: ( 1)因為加法的第一位沒有進位,所以用半加器即可;而第二位起可能有進位,故 需要考慮全加器;(2)兩者的區別是半加器為雙入雙出,全加器為三入雙出。1.8 用補碼法寫出下列減法的步驟:兩個數相減其實就是第一個數與第二個數的補碼相加。 答:按上述所講的正規方法做,其原碼為1111個數的補碼為原碼=0),(其機第二個數碼原碼(即機器碼)反碼為 W1,其反碼為 其補碼為碼為010110 兩個數兩者碼相加011001110110將最高位的進位將最高1.9做(1) 1111 -1010 =?=? (10)

4、答:11100,(2).加,即為11+ 0110101011刪去,得結果為10101,即為5(10) 做法吉果按最正規的方為做如1下:1.9做若考慮兩個數屬0于帶符號的門電路個是求其相加碼與原碼都為竽一個數答:相加 01011第二個)數是(負數,原碼為11010,反碼為10101 ,補碼為最高位的進位)得結果為一個數與第二個數的相卅相不去即門電路圖略去。1.10做出第1.9題中兩數相減的門電路圖并求其相減的結果。答:若為 101011-011110則第一個數為正數,其補碼=原碼=0101011;第二個數為負數,其原碼為1011110,反碼為1100001,補碼=反碼+1=1100001+1=1

5、100010兩個數的補碼相加為: 0101011+ 1100010 =1 0001101去掉最高位的進位1,得結果為0001101,即為13( 10)例2:+0反=00000000-0反即:數0的反碼也不是唯一的。第2章習題2.2觸發器、寄存器及存儲器之間有什么關系?請畫出這幾種器件的符號。答:觸發器是存放一位二進制數字信號的基本單元。觸發器是計算機的記憶裝置的基本單元,也可以說是記憶細胞。觸發器可以組成寄存器,寄存器又可以組成存儲器。寄存器和存儲器統稱為計算機的記憶裝置。(2)其符號分別表示如下:2.4累加器有何用處?畫出其符號。車E答:累加器作為ALU運算過程的代數和的臨時存儲處2.5三態

6、輸出電路有何意義?其符號如何畫? 答:三態輸出電路使得一條信號傳輸線既能與一個觸發器接通,也可以與其斷開而與另 外一個觸發器接通,從而使得一條信號線可以傳輸多個觸發器的信息。2.6何謂L門及E門?它們在總線結構中有何用處?答:(1) L 門:高電平時使數據裝入、低電平時數據自鎖其中的電路;E門:E門即三態門,當選通端E門為高電平時,可將信息從 A端送到B端。(2)L門專管對寄存器的裝入數據的控制,而 E門志管由寄存器輸出數據的控制。2.7 控制字是什么意義?試舉個例子說明。答:(1)控制字CON將各個寄存器的L門和E門的按次序排成一列,并且為了避免住處 在公共總線中亂竄,規定在某一時鐘節拍,只

7、有一個寄存器的 L 門為高電平,一個寄存 器的E門為高電平,從而保證了 E門為高電平的寄存器的數據流入到 L門為高電平的寄 存器中去。(2)略去,詳見教材 P31 的表 2-32.8 ROM和RAM各有何特點與用處?答:ROM是只讀存儲器,是用以存放固定程序的存儲器,一旦程序放進去之后,就不能再 改變。也不能再寫入新的字節,而只能讀出其中所存儲的內容;RAM是隨機存儲器(又稱讀/寫存儲器),它與ROM勺區別在于它不但能讀出存放在其中各 個存儲單元的數據,而且能夠隨時寫進新的數據,或者改變原有數據。2.9 為什么要建立“地址”這個概念? 答:因為一個存儲器可以包含數以千計的存儲單元,可以存儲很多

8、數據,為了便于存入 和取出,需要對每個存儲單元確定一個固定地址。2.11 譯碼器有何用處? 答:譯碼器用來確定存儲單元的地址。地址譯碼器常用于計算機中對存儲單元地址的譯 碼,即將一個地址代碼轉換成一個有效信號,從而選中對應的單元。2.12存儲地址寄存器(MAR和存儲數據寄存器(MDR各有何用處? 答:MAF將所要尋找的存儲單元的地址暫存下來,以備下一條指令之用。MDR是將要寫入RAM中去的數據暫存起來,以等待控制器發出指令再將數據寫入RAM中去P33 2 , 4, 5, 6, 7, 8, 9, 11 , 12第 3 章習題3.1 略去3.2 程序計數器PC的內容是什么意義?答:程序計數器 PC

9、 存儲的內容是指令的地址碼。每次運行指令前,先復位到 0,每取出 執行一條指令,PC加 1.3.3指令寄存器IR從PROM!收到指令字(8位)后的運行過程如何?起什么作用? 答:(1)指令寄存器IR從PRO接收到指令字后,就立即將其高 4位送到控制部件。(2)控制部件經過分析后就發出控制指令,將 IR 的低 4 位數送到存儲地址寄存器 MAR, MAF將此低4位數作為地址并用于訪問PROM故第1次訪問PRO啲是其指令區,第2次訪問的是其數據區。3.4 略3.5 環形計數器有何用處?什么叫環形字?答:(1)環形計數器用來發出順序控制信號(即用來發出環形字),從而產生機器節拍。(2)環形字是其6位

10、輸出端依次輪流為高電平,并且是在最位一位(左邊第1位)置1后又回到右邊第1位,從而形成環形置位。3.6什么叫例行程序?什么叫機器周期、取指周期和執行周期?本章簡化式計算機的機 器周期包括幾個時鐘周期(機器節拍)?機器周期是否一定是固定不變的?答:(1)例行程序:由廠家編好的執行每個程序(在本章中即為每條指令)所需要的機 器節拍(3個,見P49)(2)機器周期:執行一條指令的時間。(3)取指周期:取一條指令所需的3個機器節拍。(4) 執行周期:執行一條指令所需的機器節拍(一般也為3個機器節拍)(5)本章簡化式計算機的機器周期包括 6個機器節拍。 補充:機器節拍:即一個時鐘周期(時鐘一個高電平+

11、一 個低電平)(6)不一定。只不過固定了在 6個節拍完成一個機器周期的計算機被稱為固定周期的計 算機。3.7控制部件包括哪些主要環節?各有何用處?答:(1)控制部件包括環形計數器、指令譯碼器、控制矩陣和其他控制電路。(2)環形計數器用來產生環形字,從而產生機器節拍; 指令譯碼器:將高四位組成的編碼信息譯成某一控制線為高電位。 控制矩陣:用來產生控制字CON即產生所有控制信號。其他控制電路包含時鐘脈沖發生器、運行 /停車觸發器、“啟動”和“清除”按鈕。其作 用見P54.3.8子程序計數器有何用處?答:也是用來作為一個程序計數器的。3.9-3.11略去3.12指令寄存器IR是如何將其指令字段和地址

12、字段分送出去的?這兩個字段的位數是 否保持不變?答:(1)指令寄存器IR將8位指令字的高4位作為指令字段送到控制部件,而將低 4位 做為地址字段通過總線送到存儲地址寄存器 MAF中去。(2) 對,保持不變。這由制造廠家確定。第4章習題4.1 8086CPU與8088CPK哪些相同之處?又有哪些區別?答:兩者的內部結構基本相同,內部都采用 16位字進行操作及存儲器尋址,兩者的軟件 完全兼容,程序的執行也完全相同,兩種處理器都封裝在相同的40腳雙列直插組件(DIP)中。但它們的外部性能有區別。8086是16位數據總線,而8088是8位數據總線,在處理一 個16位數據字時,8088需要兩步操作而80

13、86只需要一步。4.2 8086 CPU從功能上分為幾部分?各部分由什么組成?各部分的功能是什么?答:8086CPL從功能上分為總線接口部分 BIU和執行部件EU兩部分。其中總線接口部分的功能是負責與存儲器、I/O端口傳送數據,即BIU管理在存儲器中存 取程序和數據的實際處理過程。執行部件EU的功能負責指令的執行。將指令譯碼并利用內部的寄存器和ALU對數據進行所需的處理。BIU由4個段寄存器(CS ES DS SS、16位指令指針寄存器IP、20位的地址加法器 和6字節的指令隊列組成。EU由4個通過寄存器(AX BX CX DX、4個專用寄存器(SI、DI、SP BF、標志寄 存器FR算術邏輯

14、部件ALU組成。4.3 8086 CPU有哪些寄存器組成?各有什么用途?標志寄存器的各標志位在什么情況下 置位?答:8086 CPU由4個通用寄存器(AX BX CX DX、4個專用寄存器(SI、DI、SP BF、標志寄存器FR組成,共9個寄存器。4個通用寄存器既可作為16位寄存器用,也可作為8位寄存器使用。其中AX寄存器也常 稱為累加器。其它寄存器的用途見教材。標志寄存器有 6個狀態標志(SF、ZF、PF、CF AF、OF、和3個控制標志位(DF、IF、 TF、。其具體置位見P75的表4-1.4.4 8086系統中的物理地址是如何得到的?假如 CS=2000H IP=2100H其物理地址應是

15、多 少?答:8086系統中的物理地址是通過 BIU中的20位地址加法器得到的。物理地址計算公式為CS段地址*16 (即二進制左移4位,或者十六進制左移1位)+IP偏 移地址。按計算公式,本題中的物理地址為 20000H+2100H=22100H4.5什么叫總線周期? 8086CPU的一個總線周期包括多少時鐘周期,什么情況下要插入Tw等待周期?插入多少個Tw取決于什么因素?答:總線周期是CPU或其他總線控制設備訪問一次存儲器或I/O端口所需的時間。 在總線周期中需要利用總路線。補充:指令周期:指令周期是機器執行一條指令所需的時間。8086CPU的一個標準總線周期包括4個時鐘周期。當4個時鐘周期不

16、能完成所規定的操作 時,可以插入一個或多個等待時鐘周期 Tw。插入多少個Tw取決于所訪問的存儲器或者I/O設備是否準備就緒,此信號由引腳 READY 發出。4.6什么是最大模式?什么是最小模式?用什么方法將8086/8088置為最大模式和最小模式?答:所謂最小模式,就是在系統中只有 8086/8088 一個微處理器。最大模式中,飲包含兩個或多個微處理器,其中主處理器是8086/8088,其他處理器是協處理器(如數值運算協處理器 8087,輸入/輸出協處理器8089)。用硬件方法來決定 8086/8088的工作模式,具體是通過引腳 MN/MX控制信號引腳來決 定,其接 +5 伏,則為最小模式,接

17、地為最大模式。4.7 什么是地址鎖存器? 8086/8088 系統中為什么要用地址鎖存器?鎖存的是什么信息? 答:(1)地址鎖存器就是一個寄存器,它根據控制信號的狀態,將總線上的地址代碼暫存起 來,即用于“鎖定”一個(系列)數字狀態的電路。簡答:地址鎖存器是用來鎖存 / 保存地址的一個寄存器(即一個普通的時序電路) ,是觸 發器的原始形式。目的是某次傳送數據并不能一次完成所以鎖存地址以免CPU重復的傳送一個地址。原理:CPU送地址到鎖存器8282/8283之后,內存在地址鎖存器中找地址,而不是向CPU要地址。(2)因為 8060/8088 系統采用的是地址 /數據分時復用總線,即用同一總線傳輸

18、數據又 傳輸地址,當微處理器與存儲器或10交換信號時,首先由CPU發出存儲器地址,同時發 出允許鎖存ALE給鎖存器,當鎖存器接到該信號后將地址/數據總線上的地址鎖存在總線 上,隨后才能傳輸數據。個人理解:因為在總線周期的前半部分,CPU總是送出地址信號和 BHE(總線高允許)信號,為了通知地址已經準備好了,可以被所鎖存,CPU會送出高電平允許鎖存信號 ALE此時地址信號和BHE信號被鎖存。由于有了鎖存器對地址信號和 BHE信號的鎖存,CPU在 總線周期的后半部分,地址和數據都在總線上,確保了CPU對鎖存器和I/O接口的讀/寫操作。(3)鎖存的是復用總線上的地址信息。4.8 8086/8088

19、系統中的 8286是什么器件?起什么作用?答:(1) 8286是總線驅動器(又稱總線收發器,雙向數據緩沖器)。(2)在一個系統所含的外設接口較多時,它用來增加數據總線的驅動能力。4.9 8086/8088系統中用時鐘發生器8284A產生哪些信號?答:8284A產生恒定的時鐘信號、準備信號(READY及復位信號(RESET。4.10 8086 最基本的操作是什么?答:是總線操作4.11 8086/8088 系統中引入了哪些中斷?是如何引入的?答: 8086 共有 256 種類型的中斷。從產生中斷的方法,可以將其分為硬件中斷和軟件中 斷兩大類,硬件中斷中的非屏蔽中斷是通過CPU的NMI引腳進入的,

20、可屏蔽中斷是通過CPU的INTR引腳進入的,并且只有當中斷允許標志IF為1時,非屏蔽中斷才能進入。軟件中斷是CPU根據軟件中的某條指令或者軟件對標志寄存器中某個標志的設置而產生 的。4.12 什么是可屏蔽中斷?什么是非屏蔽中斷?可屏蔽中斷是指受中斷標志IF屏蔽的中斷,由INTR引腳進入。非屏蔽中斷是不受中斷標志IF屏蔽的中斷,由NMI引腳進入。4.13 什么是中斷向量?中斷向量表指的是什么?中斷向量表放在什么地方? 答:(1)中斷向量是中斷處理子程序的入口地址,每個中斷類型對應一個中斷向量。(2)中斷向量表是指在8086/8088微機系統的內存中,專門留出的 0段的000003FH區 域,用于

21、存放所有的 256 個中斷向量。(3)中斷向量表放在 0段的000003FH區域。4.14 假如中斷類型為 8,它的中斷服務入口地址是多少?答:中斷類型8*4=32,即十六進制20H,所以其中斷服務入口地址為 20H.第 5 章習題5.1 分別指出下列指令中的源操作數和目的操作數的尋址方式:( 1) MOV SI, 200 ;源操作數為立即數尋址( 2) MOV CX, DATASI ;源操作數為(3) ADD AX, BXDI ;源操作數為基址加變址的寄存器間接尋址( 4) AND AX, BX源操作數為寄存器尋址( 5) MOV SI, AX ;源操作數為寄存器尋址( 6) PUSHF ;

22、 為寄存器尋址 對于目的操作數,前 4小題均為寄存器尋址, (5)題為寄存器間接尋址。5.2 試述指令 MOV AX, 2010H 和 MOV AX, DS:2010H的區別中。答:前者為將十六進制數2010H送到寄存器AX中去;后者為將數據段DS中偏移地址為2010H 2011H兩單元中的內容送到 AX中去。5.3 寫出以下指令中內存操作數的所在地址。(1) MOV AL, BX+5答:源操作數的地址為BX+5,默認段寄存器為數據段寄存器 DS又因BX為基址寄存器, 所以尋址方式為數據段相對基址尋址;(2) MOV BP+5, AX答:目的操作數的地址為BP+5,默認段寄存器為堆棧段寄存器

23、SS又因BP為基址寄存 器,所以尋址方式為堆棧段相對基址尋址;(3) INC BYTE PTR SI+3答:此句意思為將SI+3所指的存儲單元的內容加1; PTR的意義是定義其后的內容變量 的新類型為字節屬性,具體用法見第 7章 P159.內存操作數的地址為 SI+3 ,屬于相對變址尋址;(4) MOV DL, ES: BX+DI 答:源操作數為附加段基址加變址的尋址方式;(5) MOV BX, BX+SI+2答:源操作數的內存地址為 BX+SI+2 ,屬于數據段相對基址加變址尋址。5.4 判斷下列指令書寫是否正確:(1) MOV AL, BX 答:不對,一個 8 位,一個 16 位;(2)

24、MOV AL,CL答:正確( 3) INC BX答:正確(4) MOV 5, AL答:不對,目的操作數不能是立即數。(5)MOV BX, SI 答:不對,兩個存儲單元之間不能直接傳送數據;(6)MOV BL, F5H答:正確(7)MOV DX, 2000H答:正確(8)POP CS答:不對,段寄存器CS和立即數都不能作目的操作數(9)PUSH CS 答:正確。注:本部分可以用DEBUGS的-a指令進行調試以確認指令是否正確5.5設堆棧指針 SP的初值為2000H, AX=3000H BX=5000H試問: (1)執行指令 PUSH AX 后 SP=?答:執行PUSH旨令時,棧頂指針 SP自動減

25、2,所以SP=2000H-2= 1FFE H(2)再執行 PUSH BX及 POP AX后 SP=? AX=? BX=?答:執行 PUSH BX 后 SP=1FFE H- 2;再執行 POP AXf SP= (1FEE H-2)+2=1FFE H 此時AX中的內容為原BX中的內容,故 AX=5000H而BX中的內容沒有改動,即還是 5000H.5.6要想完成把2000H送1000H中,用指令:MOV 1000H, 2000H 是否正確 ?如果不正確,應用什么方法? 答:不正確,因為兩個存儲單元之間不能直接傳送數據。可以改為:MOV AX, 2000HMOV 1000H, AX5.7假如想從10

26、0中減去AL中的內容,用SUB 10Q AL是否正確?如果不正確,應用什 么方法?答:不正確,因為立即數不能做為目的操作數。可以改為:MOV BL, 5AH ; 100 的 16進制數表達式為 5AHSUB BL, AL5.8 用兩種方法寫出從 88H 端口讀入信息的指令。再用兩種方法寫出從 42H 口輸出 100H 的指令。答:法一: IN AL, 88H;法二: MOV DL, 88HIN AL, DL(2) 法一: MOV AX, 0100HOUT 42H, AX; 將AX中的內容輸出到42H、43H兩端口中,其中00H送42H端口中, 01H送到43H端口中法二: MOV AX,010

27、0HMOV DX, 42HOUT DX, AX5.9 假如 AL=20H BL=1OH 當執行 CMP AL BL后,問:(1) 若AL、BL中內容是兩個無符號數,比較結果如何?影響哪幾個標志位?答:對無符號數,執行CMP后影響CF、ZF位。故執行后標志為分一個數zfl=00; : CF=002 0000(2) 若AL、BL二個容是兩個有符號數,00果又如何?影響哪幾個標志位? 答:對有符號數,執行C000指令0后0影響ZF和OF標志位,不影響CF位。 執行后標志位分別為ZF=0 OF=0第6章習題6.1 讀下面程序段,請問:在什么情況下,本段程序的執行結果是AH= 0?BEGIN :IN A

28、L,5FHTESTAL,80HJZBRCHlMOVAH,0JMPSTOPBRCHl :MOV AH,0FFHSTOP : HLT解答:AL中的最高位為1時6.2 讀程序:START :INAL,20HMOVBL,alINAL,30HMOVCL,alMOVAX,0ADLOP :ADDAL,BLADCAH,0DECCLJNZ ADLOPHLT請問:(1)本程序實現什么功能?(2) 結果在哪里?解答:完成20H*30H,結果在AX中。6.3請編一程序段完成AX*10的任務(要求不準用乘法指令做) 答:MOV BX,AXMOV CL 2SHL AX, CL:此句實現了 AX=AX*4ADD AX,BX

29、:此句使得 AX=5AXSHL AX ,1:此句實現了 5AX*2=10AX法二:MOV BX,AXMOV CL, 4SHL AX,CLSHL BX,1ADD AX,BX6.4 .編程序使:(1)AX寄存器低4位清零。BX寄存器低4位置“ 1”。(3) CX寄存器低4位變反。(4) 用TEST指令測試DL寄存器位3、位6是否同時為0,若是,將0送DL;否則I送DH解答:(1) AND AX ,0FFF0H(2) OR BX ,000FH(3) XOR CX ,000FH 或者NOT CX(但這樣CX的高4位也會變反)(4)TEST DL ,48HJZ LOOPMOV DH,1HLTLOOP :

30、MOV DL ,0HLT6.5 .編一程序段,完成符號函數(-128 x 0)、y= 0(x=0)I -1(x0)假設x的值存放在DATAl中,y的值存放在DATA2K解答:START :MOV AL ,DATA1AND AL,ALJGE BIGRMOV AL,81H ;即將-1 給 ALMOV DATA2, ALHLTBIGR: JE EQUL ;結果為 0,轉 EQULMOV AL,1MOV DATA2,ALHLTEQUL:MOV AL ,OMOV DATA2,ALHLT6.6 .設AX寄存器中有一個16位二進制數,編一程序,統計 AX中“I”的個數,統計結 果送CX中。解答:START

31、: MOV CX ,0LOOP1: CLCSUB AX,0 JZ STPSAL AX,1JNC NODINC CXNOD: JMP LOOP1;CX清零也可用XOR CX CX實現;CF清零;此句也可用CMP AX,O替代;此句也可用SHL AX,1替代STP: HLT6 . 7.編一子程序利用 XLAT指令把十六進制數轉換成 ASCII碼。假設ASCII碼存放在 以DAT1為首地址的數據區中,對應的16進制數放在以DAT2為首地址的數據區中,轉換 結果送以DAT3為首地址的數據區中。解答: SUBPROC PROCSUBPROC :PUSH BXPUSH SIPUSH DIPUSH CXPU

32、SH ALPUSH DSSTART:MOV BXQATA1 ;將首地址 DAT1送至U BX中,作為表的首地址MOV SI ,DAT2MOV DI DAT3MOV CX ,16NEST:LODSB;讀字節串,從地址為 SI的RAMS 16進制數到AX/ALXLAT ;用換碼指令XLAT將AX/AL中的16進制數轉換成;對應的 ASCII 碼STOSB;寫字節串,從 AX/AL寫到RAM即將轉換成的 ASCII碼送;到目標地址 DI 處LOOP NEST ; CX =0,就轉向NEST SI與DI都會自動增1 POP DSPOP ALPOP CXPOP DIPOP SIPOP BXRETSUBP

33、ROC ENDP本題重點:(1)所有的串操作指令,如 LODSB, STOSB?都用寄存器SI對源操作數進行 間接尋址;都用寄存器 DI 為目的操作數進行間接尋址。( 2)在每次循環后,地址指針 SI 和 DI 都會受到修改;(3)XLAT指令的用法,見教材P118,用BX給定首地址,用AL/AX給定偏移地址,再用 XLAT指令轉換。第 7 章習題7.2 假設學生某門課程的成績放在數據區中,請編一程序,統計該成績中小于 60 分的人 數, 6090分的人數,大于 90 分的人數,并顯示在屏幕上。答:分析:假設學生成績放在以 DATA偽首地址的數據區中。DATASEG SEGMENTDATA1

34、DB 100 DUP (?)STRING1 DB The student number of grade is bigger than 90STRING2 DB The student number of grade is between 60 and 90STRING3 DB The student number of grade is less than 90DATASEG ENDSSS1 SEGEMENT STACK DW 30 DUP(?)SS1 ENDSCODE SEGMENTASSUME CS: CODE, DS:DATASEG, SS:SS1START: MOV AX, DATA

35、SEGMOV DS, AXMOV SI, OFFSET DATA1MOV CL, 100(D); 將學生人數 100 賦給 CLXOR BX, BXXOR AX, AXXOR DX, DXA1:L1:L1:A2:MOV AX, SICMP AX, 90(D)JA L1CMP AX, 60(D)JAE L2INC CH ;用CH保存小于60的人數JUMP A2INC BH;用BH保存大于90的人數JUMP A2INC BL; 用 BL保存60至U 90的人數JUMP A2INC SILOOP A1 在屏幕上輸出各類人數MOV DX, OFFSET STRING1MOV AH, 9INT 21HM

36、OV DL, CHMOV AH, 2INT 21H 輸出 60-90 的學生人數MOV DX, OFFSET STRING2MOV AH, 9MOV DL, BLMOV AH, 2INT 21H 輸出小于 60 的學生人數MOV DX, OFFSET STRING3MOV AH, 9MOV DL, BH MOV AH, 2 INT 21H; 程序完成,返回操作系統,結束MOV AH, 4CHINT 21HCODE ENDSEND START第八章習題8.1編一初始化程序,使8255A的PC端輸出一個負跳變。如果要求 PC端輸出一個負脈 沖,則初始化程序又是什么情況?答:(1)設置PC為負跳變(

37、從1到0),即設置PC引腳為0值,其控制字應設置為: 0000 1010 (即 0AIH。故其初始化程序為:MOV DX, 8255控制端口地址MOV AL,0AHOUT DX, AL(2)負脈沖為(從0到-1),故其控制字為:0000 1011 (即0BH故其初始化程序為:MOV DX, 8255控制端口地址MOV AL,0BHOUT DX, AL8.2設8251A的控制和狀態端口地址為 52H,數據輸入/輸出口地址為50H (輸出端口未 用),輸入50個字符,將字符放在BUFFER所指的內存緩沖區中。請寫出這段程序。答:分析:(1)工作方式選擇本題沒有講清用同步或異步,故可自選,在此選擇異步傳送,波特率為16,偶校驗,停止位為2位;8個數據位。從而確定工作方式選擇字為:1111 1110,即為0FEH(2)操作命令控制字選擇根據

溫馨提示

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

評論

0/150

提交評論