第一篇:微機原理與語言復習題及參考答案
中南大學網絡教育課程考試復習題及參考答案
微型機原理與匯編語言
一、單項選擇題:
1.設AL=0A8H,CX=2,CF=1,執行RCL AL,CL指令后,AL中的值為()A.51H B.A3H C.47H D.0C5H 2.下述指令的執行結果是()
MOV AL,0C2H AND AL,0F0H A.AL=40H B.AL=20H C.AL=0C0H D.AL=0E0H 3.完成對CL寄存器的內容乘以4的正確操作是 A.ROL CL,1 B.MUL 4 C.SHL CL,1 D.MOV CL,2 ROL CL,1 SHL CL,1 SHL CL,CL 4.無論BH中原有的數是奇數或偶數,若要使BH中的數一定為奇數,應執行的指 A.ADD BH,01H B.OR BH,01H C.XOR BH,01H D.TEST BH,01H 5.假設(AL)= 37H,(BL)= 95H,執行指令IMUL BL后(AX)= A.0E903H B.2003H C.0DBBH D.2008H 6.下面的數據傳送指令中,錯誤的操作是 A.MOV SS:[BX+DI],1000H B.MOV DX,1000H C.MOV WORD PTR[BX],1000H D.MOV DS,2000H 7.CPU 要訪問的某一存儲單元的實際地址稱 A.段地址 B.偏移地址 C.物理地址 D.邏輯地址
8.某存儲單元的物理地址是 12345H,可以作為它的段地址有 A.2345H B.12345H C.12340H D.1234H 9.計算機能直接識別的的語言 A.匯編語言 B.機器語言 C.高級語言 D.低級語言
10.下列指令中操作數在代碼段中的是 A.MOV AL,25H B.ADD AH,BL C.INC DS:[25] D.CMP AL,BL 11.直接、間接、立即三種尋址方式指令的執行速度,由決至慢的排序為 A.直接、立即、間接 B.直接、間接、立即 C.立即、直接、間接 D.不一定
12.若棧頂的物理地址是2010011,當執行完指令CALL AX后,棧頂的物理地址是 A.2010211 B.2010111 C.200FFH D.200FEH 13.當執行完下列指令序列后,標志位CF和OF的值是 MOV AX,OC126H MOV BX,5AB7H SUB AX,BX A.0,0 B.0,1 C.1,0 D.1,1 14.JMP BX的目標地址偏移量是 A.SI 的內容 B.SI 所指向的內存字單元之內容 C.IP+SI 的內容 D.IP+[SI] 15.指令MOV AX,10[BX]的源操作數的尋址方式是 A.基址尋址 B.寄存器尋址 C.變址尋址 D.寄存器相對尋址
16.指出下列哪個數據在匯編語言中是非法的? A.19BH+25D B.25+AL C.108-102Q D.101B*OABH 17.用來存放即將執行的指令的偏移地址的寄存器是 A.SP B.IP C.BP D.CS 18.源變址寄存器是 A.SI B.DI C.SP D.BX
()()()()()()()()())())))))((((((19.設SP=1200H,執行POP AX后,SP中的內容為()A.SP=1112H B.SP=11OEH C.SP=1111H D.SP=11OFH 20.數字6704不可能是()A.六進制數 B.十進制數 C.十二進制數 D.十六進制數
21.下面四個寄存器中,不能用于間接尋址的寄存器是()A.BX B.AX C.BP D.DI 22.若(BX)=OCA8H,則執行指令
MOV CL,8 ROR BX,CL后,(BX)=()
A.OCA8H B.8ACOH C.OA80CH D.OA8COH 23.下面數據傳送指令中,正確的是 A.MOV DS,ES B.MOV AL,WORD PTR [BX+DI] C.MOV AL,BYTE PTR [SI+DI] D.MOV CX,[SI] 24.下列哪一種尋址方式最快? A.立即尋址 B.直接尋址 C.寄存器尋址 D.寄存器間接尋址
25.寄存器間接尋址中,操作數在 A.通用寄存器 B.堆棧 C.主存單元 D.段寄存器
26.在順序結構的流程圖中,不包含有 A.起始框 B.終止框 C.判斷框 D.處理框
27.以8086/8088為CPU的微機內存最大容量為 A.4MB B.1MB C.640KB D.64KB 28.與lA.5H不等的數據是 A.26.3125D B.11010.0101B C.32.5Q D.10110.0100B 29.8位二進制補碼表示的整數數據范圍是 A.-128~127 B.-127~127 C.-128~128 D.-127~128 30.下列四個寄存器中,不允許用傳送指令賦值的寄存器是 A.CS B.DS C.ES D.SS 31.指令MOV 100[SI][BP],AX的目的操作數的隱含段為 A.數據段 B.堆棧段 C.代碼段 D.附加段
32.運算型指令的尋址和轉移型指令的尋址,其不同點在于 A.前者取操作數,后者決定程序的轉移地址 B.后者取操作數,前者決定程序的轉移地址 C.兩者都是取操作數
D.兩者都是決定程序的轉移地址
33.設AL=0A8H,CX=2,CF=1,執行RCL AL,CL指令后,AL= A.51H B.A3H C.47H D.0C5H 34.目的變址寄存器是 A.SI B.DI C.SP D.BX 35.下列常用尋址方式中,哪種屬于立即尋址?()A.MOV AX,ES:[2000H] B.MOV [BX],AX C.MOV AX,2000H D.MOV AX,[BX+3AH] 36.設SP=1110H,執行PUSH AX后,SP中的內容為 A.SP=1112H B.SP=110EH C.SP=I111H D.SP=110FH 37.下列指令中錯誤的指令為 A.MOV AX,CS B.MOV DS,1500H C.MOV SI,BX D.MOV [2000H],BL 38.語句DA1 DB 2 DUP(3,5),7 匯編后,與該語句功能等同的語句是 A.DA1 DB 3,5,7 B.DA1 DB 2,3,5,7 C.DA1 DB 3,5,3,5,7 D.DA1 DB 3,5,7,3,5,7 39.下面四個寄存器中,用來作為I/O端口間接尋址的寄存器是
()()()()()()()()()()()()()()()()A.BX B.DX C.BP D.DI 40.下列哪一種尋址方式最快?()A.立即尋址 B.直接尋址 C.寄存器尋址 D.寄存器間接尋址
41.在串處理指令REPNZ CMPSB表示在()A.當(CX)不等于0且ZF等于1的情況下,重復執行串搜索 B.當(CX)不等于0且ZF等于0的情況下,重復執行串搜索 C.當(CX)不等于0且ZF等于1的情況下,重復執行串比較 D.當(CX)不等于0且ZF等于0的情況下,重復執行串比較 42.若(DX)=0A74CH,(CL)=5,則指令SAR DX,CL執行后,(DX)=()A.053AH B.653AH C.0FD3AH D.740AH 43.完成將有符號數BX的內容乘以2的正確指令是()A.SHR BX,1 B.SAR BX,1 C.SAL BX,1 D.RCR BX,1 44.指令LOOPNZ的循環執行條件是()A.CX ≠0且ZF=0 B.CX ≠0或ZF=0 C.CX ≠0且ZF=1 D.CX ≠0或ZF=1 45.下列寄存器中不能作為間址寄存器的是()A.SI B.DI C.CX D.BX 46.JMP WORD PTR[BX]轉移的目標地址是()A.BX 中的內容 B.SP+BX 之和 C.IP+[BX]之和 D.BX指示的內存單元之內容
二、填空題:
1.計算機中的CPU由__________和__________組成。
2.(513.85)10 =(__________)16 ;(105.3)8 =(__________)10。
3.假定機器的字長為8位,且最高位為符號位,則(-127)10的原碼用8位二進數表示為__________,其補碼用8位二進數可表示為__________。
4.I/O端口有兩種編址方式,分別是 __________ 和 __________。
5.8086/8088的中斷系統能夠處理 __________ 個不同的中斷源,并為每一個中斷安排一個編號,稱為中斷類型。每種中斷類型對應的中斷服務程序的入口地址稱為 __________。
6.循環結構的程序主要由 __________、循環體、__________ 和循環控制部分組成。7.若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOV AX,(SI+COUNT)中,源操作數的有效地址EA為__________,其物理地址為__________。
8.當標志位__________=1時表示無符號數運算產生溢出,而當標志位__________=1是表示帶符號數運算產生溢出。
9.將十進制數513.85轉換成二進制數、八進制數、十六進制數和BCD碼分別可表示為__________、__________、__________、__________。
10.十進制數52的原碼、反碼、補碼(采用8位二進制,最高位為符號位)分別可表示為_________、__________、__________。
11.已知某個數的補碼為9DH,則其真值為__________。
12.以下宏定義的功能是將一位十六進制數轉換為ASCII碼,請在空白處填入恰當內容,使程序完整。
HEXTOA __________ AND AL,0FH CMP AL, __________ JNA HEXTOA1 ADD AL,7H HEXTOA1: ADD AL, __________ ENDM 13.地址2000H: 0480H,其物理地址是__________,段地址是__________,偏移量是__________。14.225D= __________B= __________H。
15.已知[X]補=11010101,則X= __________D。
16.執行部件EU的主要功能是:____________________和____________________。
17.8086 CPU在取指令時,會選取段寄存器__________的值作為段基值,再加上由__________提供的偏移地址形成20位的物理地址。
18.8086最多可處理__________種中斷,對每一個中斷都設置一個__________。19.8086 CPU有兩種外部中斷請求線,它們分別是__________和__________。
20.CPU與外設之間的數據傳送方式有__________、__________、__________和DMA方式傳送。
21.馮·諾依曼型的計算機制結構由__________、__________、__________、__________和__________五大部分組成。
22.101011.101B = __________D =__________O = __________H。23.數字9的ASCII碼為__________。
24.I/O端口有_________和_________兩種編址方式,8086的最大I/O尋址空間為_________。
25.若一個程序段開始執行之前,(CS)=97F0H,(IP)=1B40H,該程序段啟動執行指令的實際地址是________。26.6AB.24H = __________B = __________O。
27.數字“0”和字母“K”的對應的ASCII碼分別為__________和__________。28.十進制數-26的原碼、反碼、補碼(采用8位二進制,最高位為符號位)分別為__________、__________、__________;已知一個數的補碼為B2H,其真值為__________。
29.匯編語句中,語句標號具備的三種屬性分別是__________、__________、__________;變量具備的三種屬性分別是__________、__________、__________。
30.8086CPU的數據總線為_________位,地址總線為_________位,最大的存儲空間是_________。31.8086CPU的標志寄存器共有9個有效標志位,其中有6個狀態標志位,分別是_________、__________、_________、__________、_________、__________。
32.已知X=-1011011B,則X的反碼為_________,X的補碼為_________。
33.8086CPU在取指令時,會選取段寄存器__________的值作為段基值,再加上由__________提供的偏移地址形成20位的物理地址。
三、判斷題:
1.奇偶標志位PF,當運算結果的低8 位中有偶數個1時,被置為0。[ ] 2.CS, DS, ES和SS段都可以存放指令代碼。[ ] 3.MOV SI,[SI] [ ] 4.MOV [DI],[SI] [ ] 5.兩數相等時轉移可用JZ指令。[ ] 6.OUT [BX],AL [ ] 7.當IF=0時,CPU 不能響應NMI中斷。[ ] 8.把若干個模塊連接起來成為可執行文件的系統程序是匯編程序。[ ] 9.使匯編程序執行某種操作的命令是宏指令。[ ] 10.串操作指令中,目的操作數的段地址一定在DS寄存器中。[ ] 11.在匯編語句AGAIN: INC SI中的AGAIN稱為標號。[ ] 12.MOV BH,1000[SI],該指令中源操作數采用的尋址方式是寄存器間接尋址。[ ] 13.OR AL,AL 是邏輯或操作指令。[ ] 14.DOS 系統功能調用中,顯示單個字符的系統調用號是 01H。[ ] 15.使計算機執行某種操作的命令是偽指令。[ ]
四、改錯題:
1.下述程序執行后,應將LIST數組中的最大值存入MAX單元,數組元素為無符號字數據,數據個數在CNT單元中。現已知程序有錯,請改正,使之完成預定功能。1)DSEG SEGMENT 2)LIST DW 1,200,30,400,0,7,4000
3)
CNT DB 7 4)
MAX DW? 5)
DSEG ENDS 6)
CSEG SEGMENT 7)
ASSUME DS:DSEGDS:CODE 8)FMAX: MOV DX,DSEG 9)
MOV DS,AX 10)
LEA SI,LIST 11)
MOV CX,CNT 12)
CLD 13)
LODSW 14)
DEC CX 15)
CMP AL,[SI] 16)
JLE SMALL 17)
LODS W 18)SMALL: INC SI 19)
INC SI 20)
DEC CX 21)
LOOP AGAIN 22)
MOV MAX,SI 23)
MOV AL,4CH 24)
INT 21H 25)CSEG END 26)
END START 2.下面的程序是將內存單元一字節數據乘以10放回單元的程序,找出錯誤并改正。
DATA SEGMENT DA DW 34 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET DA MOV AL,[SI] MUL 10 MOV [SI],AX MOV AH,4CH INT 21H CODE ENDS END START
五、簡答題:
1.80386/80486有幾種工作模式?各有什么特點?
2.假定一個名為MAINPRO的程序要調用子程序SUBPRO,試問:
(1)MAINPRO中的什么指令申明匯編程序SUBPRO是在外部定義的?(2)SUBPRO怎么知道MAINPRO要調用它?
3.現有(DS)=2000H,(BX)=O100H,(SI)=0002H,(20100H)=12H,(2010H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,試說明下列指令執行后,AX寄存器中的內容。
(1)MOV AX,[1200H](2)MOV AX,[BX](3)MOV AX,1100H[BX](4)MOV AX,[BX+SI](5)MOV AX,[1100H+BX+SI] 4.匯編語言源程序的語句類型有哪幾種?各自的作用和使用規則是什么?
5.一個匯編源程序應該由哪些邏輯段組成?各段如何定義?各段的作用和使用注意事項是什么? 6.什么是微型計算機的系統總線?定性說明微處理器三大總線的作用。
六、程序分析題:
1.試分析下列程序段,如果AX和BX的內容分別給出如下5種情況,問程序分別轉向何處?(1)AX = 1478H,BX = 80DCH(2)AX = 0B568H,BX = 54B5H(3)AX = 42C8H,BX = 608DH(4)AX = 0D023H,BX = 9FD0H(5)AX = 94B7H,BX = 0B568H ADD AX,BX JNO L1 JNC L2 SUB AX,BX JNC L3 JNO L4 JMP L5 2.已知數據段中定義
DAT1DB 12H,34H,56H,78H MOVCX,0 MOVAX,WORDPTRDAT1 MOVCL,DAT1+3 當程序段執行完后AX=________,CX=________。3.執行完程序后,回答指定的問題。
BLOCK DB 20H,1FH,08H,81H,OFFH? RESULT DB?
START: LEA SI,BLOCK MOV CH,O MOV CL,[SI] DEC CX INC SI MOV AL,[SI] LOP1: CMP AL,[SI+1] JLE NEXT MOV AL,[SI+1] NEXT: INC SI LOOP LOP1 MOV RESULT,AL HLT 問:(1)該程序的功能是();
(2)該程序的循環次數是()。4.分析下列程序,回答問題:
(1)該程序完成什么功能?
(2)程序中的INC SI可否用指令ADD SI,1代替,為什么?(3)程序中的指令LEA SI,DATAI可用指令()代替。
(4)CLC指令的目的是()。DATA SEGMENT DATAI DB 85H,27H,4AH DATA2 DB 93H,87H,65H LEGH DW 3 SUM DB 0,0,0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,DATA1 LEA BX,DATA2 LEA DI,SUM MOV CX,LEGH CLC AGAIN: MOV AL,[SI] ADC AL,[BX] MOV [DI],AL INC SI INC BX INC DI LOOP AGAIN MOV AH,4CH 1NT 21H CODE ENDS END START 5.執行完程序后,回答指定的問題。MOV AX,200H MOV BX,500H MOV [BX+1OH],30H ADD AX,[BX+1OH] LEA SI,[BX+lOH] MOV BX,AX 問:程序段執行后,SI=(),BX=()。
七、程序設計: 1.將DAT字存儲單元中的16位二進制數分成四組,每組四位,然后將這四組數分別放至DAT1、DAT2、DAT3和DAT4這4個字節單元中。
2.設有10個學生的成績分別是70,75,89,68,63,88,78,74,81和90。編制一個子程序統計60-69,70-79,80-89,90-99及100分的人數并分別存放到S6,S7,S8, S9和S10單元中。
3.已知在以BUR為首地址的數據區中存放了N字節數據,編寫程序完成將數據塊搬至BUF2為首地址的存儲區中,要求:
(1)用一般數據傳送指令MOV實現;(2)用數據串傳送指令MOVSB實現;(3)用數據串指令LODSB/STOSB實現。
4.對一組無符號數進行比較,把最大數顯示在屏幕上。
5.已知兩個無符號字數據X、Y分別存放在ADRX和ADRY單元,編制程序,若X是Y的倍數,則顯示器上顯示0,否則顯示1。
6.給定一個正數N>1放在VALU單元中,編寫一段遞歸子程序計算FIB(N),并將結果存入RESULT單元中,該函數定義如下:
參考答案
一、單項選擇題:
1.B 2.C 3.C 4.B 5.A 6.D 7.C 8.D 9.B 10.A 11.C 12.D 13.C 14.A 15.D 16.B 17.B 18.A 19.B 20.A 21.B 22.C 23.D 24.A 25.C 26.C 27.B 28.C 29.A 30.A 31.B 32.A 33.B 34.B 35.C 36.B 37.B 38.C 39.B 40.A 41.B 42.C 43.C 44.C 45.C 46.D
二、填空題:
1.運算器 控制器 2.201.D999 69.375 3.11111111 10000001 4.統一編址 獨立編址
5.256 中斷向量 6.循環初始化部分 循環參數修改部分 7.20A8H 11488H 8.CF OF 9.1000000001.1011B 1001.6631O 201.D999H 10100010011.10000101B 10.00110100B 00110100B 00110100B 11.-63H 12.MACRO 9 30H 13.20480H 2000H 0480H 14.11100001 E1 15.-43H 16.執行指令 產生訪問存儲器時所需的16位偏移地址 17.CS IP 18.256 中斷碼類型
19.NMI INTR(可屏蔽中斷請求信號)
20.無條件傳送 查詢方式傳送 中斷方式傳送
21.運算器 控制器 存儲器 輸入設備 輸出設備 22.43.625 53.5 2B.A 23.39H 24.統一編址 獨立編址 64KB 25.99A40H 26.3253.11 1707.141 27.30H 4BH 28.10011010B 11100101B 11100110B-4EH 29.段屬性 偏移量屬性 距離屬性; 段屬性 偏移量屬性 類型屬性 30.16 20 1MB 31.進位標志位(CF)輔助進位標志位(AF)符號標志位(SF)
零標志位(ZF)溢出標志位(OF)奇偶標志位(PF)32.10100100B 10100101B 33.CS IP
三、判斷題:
1.× 2.× 3.× 4.× 5.√ 6.× 7.× 8.× 9.× 10.× 11.√ 12.× 13.√ 14.√ 15.×
四、改錯題: 1.解答:
(1)3行,數據定義偽指令DB改為DW(2)8行,DX改為AX(3)15行,循環入口,加標號AGAIN,即將本行改為:AGAIN:CMP AX,[SI](4)16行,JLE改為JAE(5)17行,LODSW改為MOV AX,[SI]
(6)20行,去掉該行語句(7)22行,SI改為AX(8)23行,AL改為AH(9)25行,END改為ENDS(10)26行,START改為程序入口標號FMAX 2.解答:
MOV AL,[SI] 改為MOV AL,BYTE PTR [SI] MUL 10 改為MOV BL,10
MUL BL
五、簡答題:
1.答:80386/80486有實地址模式、保護模式和虛擬8086模式三種工作方式。
⑴實地址模式下的80386/80486的工作原理與8086相同,內存管理只采用分段管理方式,而不采用分頁管理;內存最大空間為1MB,采用段地址尋址的存儲方式,每個段最大為64KB;操作數的默認長度為16位。
⑵保護模式下,CPU實際可訪問的物理空間最大為4GB,可選擇使用分頁結構;存儲器空間用邏輯地址、線性地址和物理地址空間描述;CPU基本結構沒有發生變化,指令和尋址方式依舊。在這種尋址方式中,可以對存儲器實施保護功能(禁止程序非法操作)和特權級的保護功能(主要保護操作系統的數據不被應用程序修改)。
虛擬8086模式下,既有保護模式功能,又可執行8086的指令代碼。2.答:(1)只要在MAINPRO中用EXTRN說明SUBPRO即可;
(2)只要定義SUBPRO時用PUBLIC定義即可。3.答:(1)AX=4C2AH(2)AX=3412H(3)AX=4C2AH(4)AX=7856H(5)AX=65B7H 4.答:匯編語言源程序的語句類型通常有3種類型,分別是:指令語句、偽指令語句和宏指令語句。(1)指令語句是能產生目標代碼、CPU可以執行的能完成特定功能的語句,主要由CPU指令組成。(2)偽指令語句是種不產生目標代碼的語句,在匯編過程中告訴匯編程序應如何匯編。
(3)宏指令語句是一個指令序列,匯編時凡有宏指令語句的地方都將用相應的指令序列的目標代碼插入。
5.答:匯編程序是將匯編源程序自動翻譯成目的程序的軟件,而匯編源程序是用匯編語言編寫的程序。匯編程序的主要功能是將由匯編語言(助記符)編寫的源程序翻譯成用機器語言(二進制代碼)編寫的目標程序;匯編源程序的作用是進行程序設計。
6.答:微型計算機的系統總線是CPU與其他部件之間傳送數據、地址和控制信息的公共通道。根據傳送內容的不同,系統總線可分成以下3種:
(1)數據總線DB(Data Bus):用于CPU與主存儲器、CPU與I/O接口之間傳送數據。數據總線的寬度等于計算機的字長。數據總線一般為雙向總線,可以向兩個方向傳輸數據。
(2)地址總線AB(Address Bus):用于CPU訪問主存儲器和外部設備時傳送相關的地址。地址總線的寬度決定CPU的尋址能力。
(3)控制總線CB(Control Bus)用于傳送CPU對主存儲器和外部設備的控制信號。
7.答:宏與子程序兩者的相同之處在于:都是用來處理在編程過程中多次使用的功能程序的方法,兩者均能簡化源程序。兩者的區別在于:
(1)宏調用通過宏指令名進行,匯編時,隨時調用隨時展開,并不簡化目標程序:子程序調用是在程序執行期間執行CALL指令,代碼只在目標程序中出現一次,所以也簡化了目標程序。
(2)宏調用時的參數由匯編程序通過實參轉換成形參的方式傳遞,具有很大的靈活性。宏定義中允許設置若干形式參數代替數值、指令、寄存器、各種字符串等。宏調用時可用程序所需要的實際參數來替換,使編程人員感覺非常靈活;而子程序的參數傳遞要麻煩得多。
(3)宏調用在匯編時完成,不需要額外的時間開銷;子程序調用和子程序返回都需要時間,還涉及堆棧操作。
故若優先考慮速度,用宏指令;若優先考慮存儲空間,用子程序。
六、程序分析題:
1.答:(1)L1(2)L1(3)L2(4)L3(5)L3 2.答:AX=3412H,CX=0078H 3.(1)從一組數中尋找最小數送RESULT單元。(2)31次。4.解答:
(1)該程序用來將存放在DATA I和DATA2開始的單元中的兩個多字節數據相加,并將結果放在SUM開始的連續單元中。
(2)不可以。因為ADD指令影響進位標志位CF狀態。(3)MOV SI,OFFSET DATA1(4)清進位,以使在數據最低字節相加時,可以用ADC指令。5.解答:SI=510H BX=230H
七、程序設計: 1.參考答案如下:
DATA SEGMENT DAT DW 0A5D2H DAT1 DB ? DAT2 DB ? DAT3 DB ? DAT4 DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV AX, DAT MOV BX, 0F0FH AND BX, AX MOV DAT1, BL MOV DAT3, BH MOV BX, 0F0F0H AND BX, AX MOV DAT2, BL MOV DAT4, BH MOV AH, 4CH INT 21H CODE ENDS END START 2.參考答案如下:
分析:假設子程序的入口參數成績表長度放在CX中,SI指向成績表首單元;出口參數放在S6, S7,S8,S9和S10單元中,并且各單元初值均為0。參考子程序如下:
;子程序名:GRADES ;功能:統計成績表GRADES中各個分數段的人數
;入口參數:CX中為成績表長度,SI指向成績表首單元
;出口參數:各個分數段人數分別放在存儲單元S6, S7,S8,S9和S10中 ;所用寄存器:AL, CX,SI
GRADES PROC
PUSH CX
;保護用到的寄存器 PUSH SI PUSH AX NEXT: CMP CX,O
;判斷成績表是否結束
JZ EXIT DEC CX MOV AL,[SI]
;將要比較的成績放在AL中 INC SI CMP AL,100 JB GRADE9
;小于100,轉向GRADE9 INC[S10]
;S10單元內容增1 JMP NEXT GRADE9:CMP AL,90 JB GRADE8
;小于90,轉向GRADE8 INC [S9]
;S9單元內容增1 JMP NEXT GRADE8:CMP AL,80 JB GRADE7
;小于80,轉向GRADE7 INC[S8]
;S8單元內容增1 JMP NEXT GRADE7:CMP AL,70 JB GRADE6
;小于70,轉向GRADE6 INC [S7]
;S7單元內容增1 JMP NEXT GRADE6: INC [S6]
;S6單元內容增1 JMP NEXT EXIT: POP AX POP SI POP CX RET GRADES ENDP 3.(1)參考程序如下:
DATA SEGMENT BUF1 DB-10,0,11,55,125,38,-69,?
;N字節數據 CN EQU $-BUF1 BUF2 DB CN DUP(?)DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV BX,OFFSET BUF1 LEA SI,BUF2 MOV CX,CN LOP1: MOV AL,[BX]
MOV [SI],AL INC BX INC SI
LOOP LOPl MOV AH,4CH INT 21H CODE ENDS END START(2)程序的數據定義部分與(1)中相同,不再重復。參考程序段如下: CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF2 CLD MOV CX,CN REP MOVSB MOV AH,4CH INT 21 H CODE ENDS END START(3)程序的開頭和結尾與(2)中相同,不再重復。參考程序段如下:
MOV DS,AX MOV ES,AX MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF2 CLD MOV CX,CN LOP: LODSB INC SISTOSB INC DI LOOP LOP 4.參考答案如下:
DATA SEGMENT BUFFER DB OOH, 12H,3BH,43H,60H,OCH DB 8AH,OABH,37H,OFFH,32H,47H COUNT EQU $-OFFSET BUFFER DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUFFER MOV CX,COUNT MOV AL,[SI]
;把 NEXT: INC SI LOOP COMPA
;比較完否? MOV BL,AL
;是,大數在AL中,將其存入BX中 MOV DL,AL MOV CL,4 SHR DL,CL CMP DL,OAHJB L1 ADD DL,7 Ll: ADD DL,30H MOV AH,02H INT 21H
;顯示高位 MOV DL,BL
;將大數放到DL中 AND DL,OFH
;將高4位屏蔽 CMP DL,OAH JB L2 ADD DL,7 L2: ADD DL,30H MOV AH,02H INT 21 H
;顯示低位 MOV AH,4CH INT 21H CODE ENDS END START 5.參考答案如下:
DATA SEGMENT ADRX DW 144 ADRY DW 12 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,ADRX MOV DX,O DIV ADRY CMP DX,O JZ NEXT MOV DL,'1’ JMP EXIT NEXT: MOV DL,'0' EXIT: MOV AH,02H INT 21H MOV AH,4CH INT 21H CODE ENDS END START 6.參考答案如下:
DATA SEGMENT X DB 8
RESULT DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CL,X CMP CL, 1 JNZ NEXT MOV RESULT,1 JMP EXIT NEXT: CMP CX,2 JNZ LP MOV RESULT,1 JMP EXIT LP: MOV AL, 1 MOV BL,1 CALL FIB MOV RESULT,BL MOV AH,4CH INT 21H FIB PROC NEAR ADD AL,BL XCHG AL,BL DEC CL CMP CL,2 JZ NEXT CALL FIB NEXT: RET FIB ENDPCODE ENDS END START
第二篇:微機原理復習題及答案
一、選擇題
1.一般微機中不使用的控制方式是(D)A.程序查詢方式
B.中斷方式
C.DMA方式
D.通道方式 2.控制器的功能是(C)A.產生時序信號 B.從主存取出指令并完成指令操作譯碼 C.從主存取出指令,分析指令并產生有關的操作控制信號 D.控制計算機的一切核心功能
3.采用級聯方式使用8259中斷控制器,可使它的中斷源最多擴大到(D)個 A.8 B.16 C.32 D.64 4.Pc機數據總線信號的狀態是:(C).A.單向雙態 B.單向三態 C.雙向三態 D.雙向雙態 5.地址總線為32位的微機系統中其內存最大容量為(D)A.2000KB B.2048KB C.2048MB D.4096MB 6.CPU中程序計數器(PC)中存放的是(B)A.指令 B.指令地址 C.操作數 D.操作數地址 7.采用條件傳送方式時,必須要有(C).A.中斷邏輯 B.請求信號 C.狀態端口 D.類型號 8.在任何一個總線周期的T1狀態,ALE輸出(A)A.高電平B.低電平C.高阻態 D.無電流 9.若標志寄存器的奇偶標志位PF置“1”反映操作(C)A.結果是偶數 B.結果是奇數 C.結果中“1”的個數為偶數 D.結果中“1”的個數為奇數 10.在DMA方式下,CPU與總線的關系是(C).A.只能控制數據總線 B.只能控制地址總線 C.成隔離狀態 D.成短接狀態 11.當使用BP寄存器作基址尋址時,若無指定段替換,則內定在(B)段內尋址。A.程序 B.堆棧 C.數據 D.附加
12.某DRAM芯片,其存儲容量為512KX*8位,該芯片的地址線和數據線數目為(D)A.8,512 B.512,8 C.18,8 D.19,8 13.計算機的存儲器采用分級存儲體系的主要目的是(D)。
A.便于讀寫數據 B.減小機箱的體積 C.便于系統升級 D.解決存儲容量、價格和存取速度之間的矛盾 14.CPU中程序計數器(PC)中存放的是(B)A.指令 B.指令地址 C.操作數 D.操作數地址 15.外設的中斷類型碼必須通過16位數據總線的(B)傳送給8086.A.高8位 B.低8位 C.16位 D.高4位
16.磁盤存儲器的數據存取速度與下列哪一組性能參數有關?(B).A.平均等待時間,磁盤旋轉速度,數據傳輸速串 B.平均尋道時間,平均等待時間,數據傳輸速串 C.數據傳輸速率,磁盤存儲密度,平均等待時間 D.磁盤存儲器容量,數據傳輸速率,平均等持時間 17.8259的OCW1----中斷屏蔽字(C)設置.A.在ICW之前 B.只允許一次 C.可允許多次 D.僅屏蔽某中斷源時 18.PC機中的硬中斷服務程序執行的是:(A)。
A.外部中斷請求CPU完成的任務 B.主程序中安排的中斷指令 C.主程序中安排的轉移指令 D.主程序中安排的調用指令 19.標志寄存器的標志位ZF=1表示運算結果(A)A.為零 B.為負 C.溢出 D.有進位 20.在DMA方式下,CPU與總線的關系是(C).A.只能控制數據總線 B.只能控制地址總線 C.成隔離狀態 D.成短接狀態 21.存儲單元是指(B)
A.存放一個二進制信息位的存儲元 B.存放一個機器字的所有存儲元集合 C.存放一個字節的所有存儲元集合 D.存放兩個字節的所有存儲元集合 22.提出中斷請求的條件是(B).A.外設提出請求 B.外設工作完成和系統允許時
C.外設工作完成和中斷標志觸發器為“1”時 D.外設需要工作
23.計算機的主存儲器容量達到10M時,其地址的表示至少需要使用多少個2進位?(C).A.10位 B.20位 C.30位 D.40位 24.I/O與主機信息的交換采用中斷方式的特點是(B)A.CPU與設備串行工作,傳送與主程序串行工作 B.Cpu與設備并行工作,傳送與主程序串行正作 C.CPU與設備并行工作,傳送與主程序并行工作.D.以上都不對
25.當8086/8088訪問100H端口時,采用(C)尋址方式.A.直接 B.立即 C.寄存器間接 D.相對 26.Pc機數據總線信號的狀態是:(C).A.單向雙態 B.單向三態 C.雙向三態 D.雙向雙態 27.某DRAM芯片,其存儲容量為512KX*8位,該芯片的地址線和數據線數目為(D)A.8,512 B.512,8 C.18,8 D.19,8 28.下面關于主存儲器(也稱為內存)的敘述中,不正確的是:(B).A.主存儲器向CPU提供要執行的數據,程序段等 B.存儲器的讀、寫操作一次讀出或寫入一個字節 C.字節是主存儲器中信息的基本編址單位
D.從程序設計的角度來看,cacbe(高速緩存)也是主存儲器 29.段定義語句以(B)語句結束。
A.END B.ENDS C.ENDP D.ENDM 30.8255A的(C)只能工作在方式0。
A.A端口 B.B端口 C.C端口 D.前三者 31.8253—5是可編程的(A)接口芯片。
A.定時器/計數器 B.并行 C.串行 D.中斷控制器 32.存儲器是計算機系統的記憶設備,它主要用來(C)
A.存放數據 B.存放程序 C.存放數據和程序 D.存放微程序 33.串行傳送的波特率是指單元時間內傳送(A)數據的位數。
A.二進制 B.八進制 C.十進制 D.十六進制 34.下面關于主存儲器(也稱為內存)的敘述中,不正確的是:(B).A.主存儲器向CPU提供要執行的數據,程序段等 B.存儲器的讀、寫操作一次讀出或寫入一個字節 C.字節是主存儲器中信息的基本編址單位
D.從程序設計的角度來看,cacbe(高速緩存)也是主存儲器
35.某計算機字長32位,存儲容量為4MB,若按字編址,它的尋址范圍是(A)A.0-1M B.0-4MB C.0-4M D.0-1MB 36.一條指令中目的操作數不允許使用的尋址方式是(B)
A.寄存器尋址 B.立即數尋址 C.變址尋址
D.寄存器間接尋址 37.在8086/8088中,一個最基本的總線周期由4個時鐘周期(T狀態)組成,在T1狀態,CPU在總線發出(C)信息.A.數據 B.狀態 C.地址 D.其他
38.采用兩只中斷的控制器8259A級聯后,CPU的可屏蔽硬中斷源能擴大到(D)A.64個 B.32個 C.16個 D.15個 39.下列寄存器為8位的寄存器有(D)A.IP B.AX C.BP D.BH 40.地址總線為32位的微機系統中其內存最大容量為(D)A.2000KB B.2048KB C.2048MB D.4096MB 41.8259的OCW1----中斷屏蔽字(C)設置.A.在ICW之前 B.只允許一次 C.可允許多次 D.僅屏蔽某中斷源時 42.在匯編語言程序設計中,標號和變量的類型屬性分別有:(A)。A.BIT、BYTE、WORD、DWORD B.NEAR、FAR C.EAR、FAR 和BYTE、WORD、DWORD D.CODE、DATA、STACK 43.在任何一個總線周期的T1狀態,ALE輸出(A)A.高電平B.低電平C.高阻態 D.無電流 44.下面哪一個是8088CPU中的代碼段寄存器(A)A.CS B.DS C.ES D.SS 45.8086CPU可擴展I/O端口地址的個數最多為(D)A.1K B.4K C.8K D.64K 46.Pc機數據總線信號的狀態是:(C).A.單向雙態 B.單向三態 C.雙向三態 D.雙向雙態
47.采用級聯方式使用8259中斷控制器,可使它的中斷源最多擴大到(D)個 A.8 B.16 C.32 D.64 48.存儲器是計算機系統的記憶設備,它主要用來(C)
A.存放數據 B.存放程序 C.存放數據和程序 D.存放微程序
49.對于一低速外設,在外設準備數據期間希望CPU能做自己的工作,只有當外設準備好數據后才與CPU交換數據。完成這種數據傳送最好選用的傳送方式是(C)A.無條件傳遞方式 B.查詢傳送方式 C.中斷傳送方式 D.DMA傳送方式 50.設8255A的端口地址為80H~ 83H,則端口A的地址為(A)A.80H B.81H C.82H D.83H
二、填空題
1.Intel 8255A是一個_可編程的通用并行輸入輸出_ 接口芯片。
2.設某容量為4K的RAM芯片的起始地址為2000H(16位地址),則其終止地址為_2FFFH_.3.一個控制系統,當主設備發生異常時,需向CPU告警,請求處理,否則將危及工作人員的生命及設備的安全,此告警線應接到8086CPU的_ NMI__中斷請求信號引腳上.4.采用中斷查詢傳送方式時,完成一次傳送過程,首先必須通過執行一條_IN__指令,讀取外設信息.5.8255A內部具有__3___個輸入輸出端口。
6.機器指令由操作碼和__操作數____兩部分組成 7.計算機時鐘脈沖的頻率稱為____主頻______.8.可編程接口電路中用來存放控制電路組態的控制字節寄存器稱為__控制____寄存器。9.硬件中斷可分為__可屏蔽中斷,非屏蔽中斷__兩種。10.16K字節的RAM芯片應有__14____根地址輸入端.11.邏輯地址由段基址和_偏移地址___組成。12.8086/8088CPU的數據線和地址線是以___分時_____方式輪流使用的。13.根據功能不同,8086的標志位可分為__狀態_____和___控制____標志。
14.8086/8088的中斷響應了兩個總線周期,從____INTA______引腳輸出兩個負脈沖.15.在8086CPU系統中,設某中斷源的中斷類型碼為08H,中斷向量為0100:1000H,則相應的中斷向量存儲地址為___20____H.16.CPU通過一個外設接口同外設之間交換的信息包括數據信息,狀態信息和__控制信息____.17.Intel 8251A工作在同步方式時,最大波特率為_64kbps____.18.8255A內部具有__3___個輸入輸出接口。
19.機器指令由 操作碼 和操作數兩部分組成。20.16K字節的RAM芯片應有__14____根地址輸入端.21.用4KX4的RAM芯片組成32K的外擴存儲器,共需芯片__16____片.22.8086/8088CPU的數據線和地址線是以___分時______方式輪流使用的。
23.數據總線是雙向總線,8位微處理器有8條數據線,16位微處理器有__16___條數據總線.24.8086系統中的BHE信號通常作為__奇____地址存儲體的體選信號。當BHE為___低___電平時有效。25.Intel 8251A工作在異步方式時,最大波特率為__19.2kbps_______.26.采用中斷查詢傳送方式時,完成一次傳送過程,首先必須通過執行一條____IN____指令,讀取外設狀態信息.27.8086CPU中斷系統有__256____種中斷類型碼,中斷類型碼與對應的矢量地址換算公式為__中斷類型碼×4(n×4)____。
28.計算機時鐘脈沖的頻率稱為__主頻________.29.一般外設接口與外設間交換的信息有控制信息、數據信息 和 狀態信息。30.壓棧指令的源操作數只能是 16 位的操作數。31.主機與外設之間數據傳送方式有無條件傳送方式、查詢傳送方式、中斷方式 和 DMA方式。32.地址總線通常是_單向___總線,由CPU輸出,8位微處理器有16條地址總線,16位微處理器有20條或更多。
33.CPU從主存取出一條指令并執行該指令的時間稱為___指令周期______.34.8255A控制字的最高位D7=_____1____時,表示該控制字為方式控制字。35.8255A的三個端口中只有端口__C___沒有輸入鎖存功能。36.用Inter2114組成4K*8bit的RAM要用___8___片.37.輸入/輸出指令間接尋址必須通過_DX_____寄存器.38.8086/8088CPU內部共有____14______個16位寄存器。
39.8086/8088CPU的數據線和地址線是以__分時____方式輪流使用的。
40.串操作指令規定源串在__數據____段中,用_SI____來尋址源操作數,目的串在__附加數據____段中,用 ___DI___ 來尋址目的操作數。
41.存儲器通常由存儲矩陣,_地址譯碼器____,控制部件和三態緩沖器組成.42.CPU總線通常包括地址總線、數據總線和___控制______總線等三組總線。
三、簡答題
1.外設向CPU申請中斷,但CPU不給以響應,其原因有哪些?(1)CPU處于關中斷狀態,IF=0;(2)該中斷請求已被屏蔽;(3)該中斷請求的時間太短,未能保持到指令周期結束;(4)CPU已釋放總線,而未收回總線控制權。
2.8255各口設置如下:A組與B組均工作于方式0,A口為數據輸入,B口為輸出,C口高位部分為輸出,低位部分為輸入,A口地址設為40H.(1)寫出工作方式控制字(2)對8255A初始化
(3)從A口輸入數據,將其取反后從B口送出
(1)10010001B 即91H(2)MOV AL,91H;OUT 43H,AL
(3)IN AL,40H;NOT AL;OUT 41H,AL
3.說明程序存儲及程序控制的概念。
程序存儲:程序是由一條條指令組合而成的,而指令是以二進制代碼的形式出現的,把執行一項信息處理任務的程序代碼,以字節為單位,按順序存放在存儲器的一段連續的存儲區域內,這就是程序存儲的概念。
程序控制:計算機工作時,CPU中的控制器部分,按照程序指定的順序(由碼段寄存器CS及指令指針寄存器IP指引),到存放程序代碼的內存區域中去取指令代碼,在CPU中完成對代碼的分析,然后,由CPU的控制器部分依據對指令代碼的分析結果,適時地向各個部件發出完成該指令功能的所有控制信號,這就是程序控制的概念
4.已知AH=77H,AL=33H能否說AX=7733H,為什么?SI寄存器可分不SH和SL嗎? 能。因為AX是16位的數據寄存器,它可以以字(16位)或以字節(8位)形式訪問。不能。因為SI是16位的源變址寄存器,只能以字(16位)為單位使用。
5.一臺微型計算機有16根地址線,8根數據線,如果采用字節編址,它可訪問的最大存儲空間是多少字節?試用十六進制數表示其地址范圍.64KB,0000H~FFFFH 6.半導體隨機存儲器RAM與只讀存儲器ROM有何區別?它們各有哪幾種類型? 隨機存儲器RAM中的任何存儲單元都能隨時讀寫,即存取操作與時間,存儲單元物理位置順序無關,一旦掉電,所存信息丟失。常見類型有靜態RAM和動態RAM等。
ROM是一種只讀存儲器,其內容一經寫入,在工作過程中就能只能讀出不能重寫,即使掉電,信息也不會丟失。常見的類型有掩模ROM,PROM,EPROM,EEPROM等。
7.什麼是引腳的分時復用?請說明8086/8088有哪些分時復用引腳?其要解決的問題是什么?
8086的數據線和地址線是利用復用的,所以常把8086的總線稱為多路總線,即某一時刻總線上出現的是地址,另一時刻,總線上出現的是數據。正是這種引腳的分時使用方法才能使8086用40條引腳實現20位地址、16位數據及眾多的控制信號和狀態信號的傳輸。8086CPU的分時復用的引腳有:地址/數據復用引腳.作用為一個腳多用,如:AD15~AD0,在總線周期的T1狀態,傳送地址信息,在其它狀態則傳送數據信息; 8.說明微機系統的工作實質。
計算機之所以能在沒有人直接干預的情況下,自動地完成各種信息處理任務,是因為人們事先為它編制了各種工作程序,計算機的工作過程,就是執行程序的過程。9.常用的存儲器片選控制方法有哪幾種?它們各有什么優缺點? 常用存儲器片選控制方法有3種,分別是線選法,全譯碼法,局部譯碼法。線選法的優點是連線簡單,缺點是地址空間利用率低;全譯碼法不浪費地址空間,但需譯碼電路;局部譯碼介于前二者之間。當存儲容量要求大于系統地址線所能尋址的最大范圍,或者幾個微處理器需要共享某一存儲區域時,則采用擴充尋址法。
10.試說明異步串行通信和同步串行通信的特點.異步特點:在通信的數據流中,字符與字符間的傳送是完全異步的,字符內部位與位之間還是基本同步傳送。同步特點:數據流中的字符之間和字符內部各位間都同步,顯然這種方式對同步要求很嚴格,收/發雙方必須以同一時鐘來控制發送與接收。
11.在8086CPU中,已知CS寄存器和IP寄存器的內容分別為如下所示,試確定其物理地址.(1)CS=1000H IP=2000H 12000H(2)CS=2000H IP=00A0H 200A0H(3)CS=1234H IP=0C00H 12F40H
12.8259A可編程中斷控制器的主要功能有哪些? 1 單片8259A可管理8級優先權中斷源,通過級聯可管理64級優先權中斷源; 2 對任何一級中斷源都可單獨進行屏蔽,使該中斷請求暫時被掛起,直到取消屏蔽時; 能向CPU提供中斷類型碼; 具有多種中斷優先級管理方式,這些管理方式可能過程序動態的進行變化。13.如果利用中斷方式傳送數據,則數據是如何傳輸的?中斷機構起什么作用? 利用中斷方式傳送數據,一般是首先向CPU發出中斷請求,CPU響應中斷后在中斷處理程序中進行數據傳輸,傳輸完畢返回。中斷機構起控制作用,實時性較強。
14.8086/8088系統中為什麼一定要有地址鎖存器,需要鎖存哪些信息?
8088/8086系統中,一般數據位是8位,而地址位是16位的話,那么可以這么理解:程序要輸出一個地址,就必須先輸出高8位,用鎖存器鎖定后,再輸出低8位(或反之),這時才完成一個16位地址的輸出。
鎖存的信息:邏輯電路:通過控制信號完成對當前輸出信號的固定,主要是邏輯狀態(0,1)集成功能:是一個可以完成當前總線狀態的保存
計算機組原:完成數據的保存,是存儲器等功能器件的輔助器件 16.8086中有哪些寄存器可用來指示存儲器偏移地址? 可用來指示段內偏移地址的寄存器共有6個:IP、SP、BP、BX、SI、DI.17.8255的功能作用是什么?它有哪些工作方式? 8255是可編程的并行接口芯片,設有三個8位的數據輸入/輸出端口,拱有三種工作方式:方式0為基本的輸入/輸出方式;方式1為應答式輸入/輸出方式;方式2為應答式雙向數據傳送方式。18.寫出中斷響應的處理過程.(1)中斷請求(2)中斷允許(3)保護斷電,保護現場(4)中斷服務(5)恢復現場,中斷返回。19.總線周期的含義是什么?8088/8086基本總線周期由幾個時鐘周期組成?
總線周期是指CPU從存儲器I/O端口存取一個字節所需要的時間。8088/8086基本總線周期由4個時鐘周期組成。
23.某程序數據段中存有數據字:1234H和5A6BH,若已知DS=5AA0H,她們的偏移地址分別為245AH和3245H,試畫出它們在存儲器中的存放情況。24.什麼是I/O接口,什麼是I/O端口?
I/O接口:I/O接口是INPUT/OUTPUT指輸入/輸出設備接口
I/O端口:CPU和外設進行數據傳輸時,各類信息在接口中進入不同的寄存器,這些寄存器為I/O端口。
25.虛擬存儲器有那些特點?
第一,允許用戶用彼內存空間大的多的空間來訪問主存。第二,每次訪存都要進行虛實地址的轉換。
四、1.以下是完成20個字節字符串的傳送,并檢測是否正確的程序,若正確標志位放00,否則放11。給指定語句加標注。DATSEG SEGMENT DATAX DB ‘ABCD??RST’ DATAY DB 20 DUP(?)FLAGS DB ? DATSEG ENDS MOV AX, DATSEG;MOV DS, AX MOV ES, AX CLD;MOV SI, OFFSET DATAX;MOV DI, OFFSET DATAY MOV CX, 20;REP MOVSB ??
REPE CMPSB JZ HHH;MOV AL, 11 JMP III HHH: MOV AL, 00 III: MOV FLAGS, AL 2.程序改錯(10分)(1)保持STATE單元內容的D4、D3兩位為“0”,其余六位不變。
AAA: MOV SI,OFFSET STATE MOV AL,[SI] AND AL,0C0H MOV [SI],AL RET 改正:()
(2)從4000H開始有20H個帶符號數,要求統計出負數的個數送MIN單元。
XOR DI,DI
MOV BX,4000H
MOV CX,20H AGAIN:MOV AL,[BX] INC BX
TEST AL,01H
JNZ GOON INC DI GOON: DEC CX JNZ AGAIN MOV MIN,DI
RET 改正:(),()
3.對40個有符號數進行測試,分別把正、負字存放進兩段不同單元。完成此程序。
DATA SEGMENT BLOCK DB 43H,56H,0ABH?? ;共40個字節 PDATA DB 40 DUP(?)NDATA DB 40 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, ES:DATA EXP1 PROC FAR START: PUSH DS
MOV AX, 0 PUSH AX
MOV AX , DATA MOV DS, AX MOV ES, AX
LEA SI , BLOCK LEA DI, PDATA LEA BX, NDATA CLD
MOV CX, PDATA-BLOCK GOON: LODSB
TEST AL, 80H JNZ MINUS STOSB
JMP AGAIN MINUS: XCHG BX, DI
STOSB
XCHG BX, DI AGAIN: LOOP GOON RET EXP1 ENDP CODE ENDS END START 4.程序改錯
(1)保持STATE單元內容的D4、D3兩位為“0”,其余六位不變。AAA: MOV SI,OFFSET STATE
MOV AL,[SI] AND AL,0C0H MOV [SI],AL RET 改正:()
(2)ST1是DS段中的一個4字節字符串,ST2是ES段中的一個4字節字符串,比較其是否相等;相等置FLAG單元為00H,不等置FLAG單元為11H。MOV SI,OFFSET ST1 MOV DI,OFFSET ST2 MOV CX,0004 STD REPNZ CMPSB JZ HHH MOV AL,11 JMP III HHH: MOV AL,00 III: MOV FLAG,AL RET 改正:()()
5.以下是完成20個字節字符串的傳送,并檢測是否正確的程序,若正確標志位放00,否則放11。完成此程序。DATSEG SEGMENT DATAX DB ‘ABCD??RST’ DATAY DB 20 DUP(?)FLAGS DB ? DATSEG ENDS MOV AX, DATSEG MOV DS, AX MOV ES , AX CLD MOV SI , OFFSET DATAX MOV DI, OFFSET DATAY MOV CX , 20 REP MOVSB ??
REPE CMPSB JZ HHH MOV AL, 11 JMP III HHH: MOV AL, 00 III: MOV FLAGS , AL 6.程序改錯
(1)保持STATE單元內容的D4、D3兩位為“0”,其余六位不變。
AAA: MOV SI,OFFSET STATE
MOV AL,[SI] AND AL,0C0H
MOV [SI],AL RET 改正:()
(2)在BUF開始的50個有符號數中(16位),找出最小值存放在MIN單元中。
MOV BX,OFFSET BUF MOV CL,31H
MOV AX,[BX] BBB: INC BX INC BX
CMP AX,[BX]
JNC CCC
MOV AX,[BX] CCC: DEC CX
MOV SI,OFFSET BUF JNZ BBB MOV MIN,AX
RET 改正:(),()
7.用1K×4的2114芯片組成2K×8的存儲器系統。
8.用2K×8的2716A存儲器芯片組成8K×8的存儲器系統。
9.用1K×4的2114芯片構成lK×8的存儲器系統。
12.現有8個字節的數據為34H,45H,56H,67H,78H,89H,9AH,ABH,假定它們在存儲器中的物理地址為400A5H-400ACH,試求各存儲單元的有效地址;若從存儲器中讀出這些數據,試問要訪問幾次存儲器?
各字節的有效地址分別為0085H,0086H,0087H,0088H,008AH,008BH,008CH 8個總線周期
13.對40個有符號數進行測試,分別把正、負字存放進兩段不同單元。給指定語句加標注。
DATA SEGMENT BLOCK DB 43H,56H,0ABH?? ;共40個字節 PDATA DB 40 DUP(?)NDATA DB 40 DUP(?); DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, ES:DATA EXP1 PROC FAR START: PUSH DS
MOV AX, 0 PUSH AX
MOV AX, DATA MOV DS, AX MOV ES, AX LEA SI, BLOCK
LEA DI, PDATA ; LEA BX, NDATA CLD
MOV CX, PDATA-BLOCK;
GOON: LODSB
TEST AL, 80H
JNZ MINUS ; STOSB
JMP AGAIN MINUS: XCHG BX, DI ;
STOSB
XCHG BX, DI AGAIN: LOOP GOON
RET EXP1 ENDP CODE ENDS END START 14.程序改錯
(1)從4000H開始有20H個帶符號數,要求統計出負數的個數送MIN單元。XOR DI,DI
MOV BX,4000H
MOV CX,20H AGAIN:MOV AL,[BX]
INC BX
TEST AL,01H
JNZ GOON INC DI GOON: DEC CX JNZ AGAIN MOV MIN,DI
RET 改正:(),()
(2)ST1是DS段中的一個4字節字符串,ST2是ES段中的一個4字節字符串,比較其是否相等;相等置FLAG單元為00H,不等置FLAG單元為11H。
MOV SI,OFFSET ST1 MOV DI,OFFSET ST2 MOV CX,0004 STD REPNZ CMPSB JZ HHH MOV AL,11 JMP III HHH: MOV AL,00 III: MOV FLAG,AL RET 改正:()()15.畫出容量為8K*8的ROM連接圖(CPU用8088,EPROM用2716,R0M地址區從4000H開始)
第三篇:微機原理復習題及答案
一、填空題
1.Rfb是運放 電阻,被放在。2.DAC0832內部有 地和 地。3.LE是DAC0832內部寄存器的鎖存命令。當其為 時,寄存器輸出隨 變化。
4.當LE為0時,數據 在寄存器,不再隨 上的數據變化而變化。5.在過程控制應用中,有時對控制量的輸出要求是 的,在給定值時產生的偏差不改變控制量的,這時可采用單極性輸出電路。6.在隨動系統中,由偏差所產生的控制量僅 不同,而且控制量 不同,這時要求D/A轉換器有雙極性輸出;7.D/A轉換器實現雙極性輸出,在輸出除需要有運算放大器外還應增加
和。
8.若D/A轉換器芯片內部有鎖存寄存器,微處理器就把D/A芯片當作一個并行;若D/A轉換器芯片內部無鎖存寄存器,微處理器就把D/A芯片當作一個并行。
9.ADCO809是CMOS的 位 轉換器。
10.ADCO809的引腳EOC是 信號,可作為。
二、單項選擇題
1.ADC0809啟動A/D轉換的方式是。
A)高電平B)負電平C)負脈沖 D)正脈沖 2.ADC0809的輸出。
A)具有三態緩沖器,但不可控 B)具有可控的三態緩沖器 C)沒有三態 緩沖器 D)沒有緩沖鎖存
3.ADC0809可以用()引線經中斷邏輯向CPU申請中斷。A)OE B)START C)EOC D)ALE
三、多項選擇題
1.DAC0832有()工作方式。
A)單緩沖 B)雙緩沖 C)多級緩沖 D)直通
2.ADC0809與微機系統相連接,可采用的數據傳輸方式有。A)無條件傳輸 B)查詢傳輸 C)中斷傳輸 D)DMA傳輸
四、簡答題
1、已知某DAC的最小分辨電壓VLSB=5mV,滿刻度輸出電壓Vom=10V,試求該電路輸入二進制數字量的位數n應是多少?
2、A/D轉換器和微機接口中的關鍵問題有哪些?
3、A/D轉換器為什么要進行采樣?采樣頻率應根據什么選定?
4、若ADC輸入模擬電壓信號的最高頻率位20KHz,取樣頻率的下限是多少?
5、雙積分式ADC電路中的計數器是十進制的,最大計數容量N=(1000)10,時鐘脈沖頻率為5KHz,完成一次轉換最長需要多少時間?
6、設被測溫度的變化范圍為300℃~1000℃,如要求測量誤差不超過±1℃,應選用分辨率為多少位的A/D轉換器?
7、模-數轉換器ADC常用的有雙積分式和逐次逼近式,請扼要比較它們的優缺點。在微機控制系統的模擬輸入通道中常常應用采樣-保持電路,其主要原因是什么?
五、編程應用題
1.設狀態端口地址為86H,數據端口的地址為87H,外部輸入信息準備好狀態標志為D7=1,請用查詢方式寫出讀入外部信息的程序段。2.設狀態端口地址為76H,數據端口地址為75H,外部設備是否準備好信息 由D7位傳送,D7=0為未準備好(忙),請用查詢方式寫出CPU向外部傳送數據的程序段。3.數據采集系統電路如下圖所示。圖中A/D轉換器為ADCO809,定時器/計數器8233-5的計數器1將5MHz時鐘轉換成500KHz提供給ADC0809。根據上述電路和說明,以及下面程序的功能要求,在空格中填入相應的指令(必要時可增減空格數)。
MOV DX,3DBH;設置8253一控制字 MOV AL,57H OUT DX,AL(1);設且計數器1計數初值(2)(3);ADCO809模擬通道IN5采樣12次,數據存人BUF MOV BX,OFFSETBUF MOV CX,l2(4)LOP:(5)CALL DELAY lS;軟件延時一秒(6);數據讀入BUF MOV [BX],AL INC BX LOOP LOP
4、已知A/D變換器的引線及其工作時序如下圖所示。利用START負脈沖可啟動A/D變換器開始變換,啟動脈沖后A/D變換器進入忙(BUSY)狀態,待變換結束。BUSY變高電平,可從D0~D10取得變換好的數據。試通過8255將此A/D變換器接到8088系統總線上,接口地址8000H-800F可任選,試畫出連接線。
答案
一、填空題
1、反饋電阻;芯片內部
2、模擬;數字3、1;輸入
4、鎖存;數據總線
5、單向;極性
6、大小;異性
7、運放;VREF
8、輸出接口;輸出外部設備 9、8位;A/D
10、轉換結束;中斷請求信號
二、單項選擇題
1、C
2、B
3、A
三、多項選擇題
1、ABD
2、BCD
四、簡答題
1、答: 2
2、答: A/D轉換器和微機接口時的關鍵問題主要有6個。① A/D轉換器輸出和CPU的接口方式,主要有2種連接方式:
一種是A/D芯片輸出端直接和系統總線相連;另一種是A/D芯片輸出端通過接口電路和總線相連。② A/D轉換器的分辨率和微機數據總線的位數匹配:當10位以上的A/D轉換器和8位數據總線連接時,由于數據要按字節分時讀出,因此從8位數據線上需分2次來讀取轉換的數據。設計接口時,數據寄存器要增加讀寫控制邏輯。③ A/D轉換的時間和CPU的時間配合問題:要注意A/D轉換的啟動方式,通常啟動信號分為電平控制啟動和脈沖啟動兩種。其中又有不同的極性要求。還要注意轉換后信號的處理。④A/D的控制和狀態信號。因為A/D轉換器的控制和狀態信號的類型與特征對接口有很大影響,在設計時必須要注意分析控制和狀態信號的使用條件。⑤ 輸入模擬電壓的連接,特別是多路模擬電壓的切換控制。⑥ 接地問題,為了減輕數字信號脈沖對模擬信號的干擾,數字地和模擬地要正確連接。
3、答: 因為被轉換的模擬信號在時間上是連續的,瞬時值有無限多個,轉換過程需要一定的時間,不可能把每一個瞬時值都一一轉換成模擬量。因此對連續變化的模擬量要按一定的規律和周期取出其中的某一瞬時值,這個過程就是將模擬量離散化,稱之為采樣,采樣以后用若干個離散的瞬時值來表示原來的模擬量。
通常為了使A/D輸出信號經過D/A還原后能更好地反映輸入模擬信號的變化,根據采樣定理,采樣頻率一般要高于或至少等于輸入信號中最高頻率分量的2倍,就可以使被采樣的信號能夠代表原始的輸入信號。在輸入信號頻率不是太高的實際應用中,一般取采樣頻率為最高頻率的4~8倍。
4、答:取樣頻率的下限為20kHZ×2=40 kHZ
5、答:由于雙積分式A/D的工作模式是固定時間正向積分、固定斜率反向積分。正向積分與反向積分的切換是由正向積分開始時計數器從0計數到計滿后產生的溢出信號控制,較高的反極性的基準電壓進入積分器反向積分(因為反向斜率值大于正向斜率值,一般反向積分時間要小于正向積分時間),計數器再次從0開始計數,直至反向積分至0時停止計數,此時的計數值就是對應的輸入量的變換數字量。因此完成一次轉換的最長時間不大于2倍正向積分時間(即計數器從0到計滿時間的2倍)。
6、答:取最大的溫度變化范圍1000O,最小的溫度分辨為1O,這樣只要不少于1000等份就可以。因此可選10位A/D轉換器,若它的滿量程是1000O,最小的溫度分辨為
7、答:逐次逼近ADC采用的是二分搜索、反饋比較、逐次逼近的轉換原理。其優點是轉換速度快,轉換精度高;缺點是輸入模擬信號變化速度較快時,偉產生較大的非線型誤差。
雙積分ADC的優點是不需要ADC,能以低成本實現高分文辨率,轉換精度高,抗干擾 能力強。缺點是需要二次積,轉換速度慢。
當輸入模擬信號變化率較大時,逐次逼近式ADC會產生相當大的非線性誤差,為改善這種情況,可在ADC前面增加一級采樣保持電路。
五、編程應用題
1、答案:START:IN AL,86H
TEST AL,80H
JZ START
IN AL,87H
2、答案:START:IN AL,76H
TEST AL,80H
JZ START
MOV AL,輸出的字節
OUT 75H,AL
3、答案:(1)MOV DX,3D9H
(2)MOV AL,10H
(3)OUT DX,AL
(4)MOV DX,3D5H
(5)OUT DX,AL
(6)MOV DX,3D0H
IN AL,DX
第四篇:微機原理與語言復習題及參考答案
微機原理與匯編語言復習題及參考答案
——CSDN下載頻道提供,請尊重原創
一、選擇題:
1.設AL=0A8H,CX=2,CF=1,執行RCL AL,CL指令后,AL中的值為()A.51H B.A3H C.47H D.0C5H 2.下述指令的執行結果是()MOV AL,0C2H AND AL,0F0H A.AL=40H B.AL=20H C.AL=0C0H D.AL=0E0H 3.完成對CL寄存器的內容乘以4的正確操作是()A.ROL CL,1 B.MUL 4 C.SHL CL,1 D.MOV CL,2 ROL CL,1 SHL CL,1 SHL CL,CL 4.無論BH中原有的數是奇數或偶數,若要使BH中的數一定為奇數,應執行的指(A.ADD BH,01H B.OR BH,01H C.XOR BH,01H
D.TEST BH,01H 5.假設(AL)= 37H,(BL)= 95H,執行指令IMUL BL后(AX)=()A.0E903H
B.2003H C.0DBBH
D.2008H 6.下面的數據傳送指令中,錯誤的操作是()A.MOV SS:[BX+DI],1000H
B.MOV DX,1000H C.MOV WORD PTR[BX],1000H
D.MOV DS,2000H 7.CPU要訪問的某一存儲單元的實際地址稱()
A.段地址
B.偏移地址
C.物理地址
D.邏輯地址
8.某存儲單元的物理地址是12345H,可以作為它的段地址有()A.2345H
B.12345H C.12340H
D.1234H 9.計算機能直接識別的的語言()A.匯編語言
B.機器語言
C.高級語言
D.低級語言 10.下列指令中操作數在代碼段中的是
()A.MOV AL,25H B.ADD AH,BL C.INC DS:[25] D.CMP AL,BL 11.直接、間接、立即三種尋址方式指令的執行速度,由決至慢的排序為()A.直接、立即、間接 B.直接、間接、立即 C.立即、直接、間接 D.不一定
12.若棧頂的物理地址是2010011,當執行完指令CALL AX后,棧頂的物理地址是()A.2010211 B.2010111 C.200FFH D.200FEH 13.當執行完下列指令序列后,標志位CF和OF的值是()MOV AX,OC126H MOV BX,5AB7H SUB AX,BX A.0,0 B.0,1 C.1,0 D.1,1 14.JMP BX的目標地址偏移量是(D)。
A.SI的內容 B.SI所指向的內存字單元之內容 C.IP+SI的內容 D.IP+[SI] 15.指令MOV AX,10[BX]的源操作數的尋址方式是()A.基址尋址 B.寄存器尋址 MOV AX,BX C.變址尋址 AX【BX+DI】(只能用BX,BP;SI和DI)D.寄存器相對尋址 16.指出下列哪個數據在匯編語言中是非法的。())
A.19BH+25D B.25+AL C.108-102Q D.101B*OABH 17.用來存放即將執行的指令的偏移地址的寄存器是()A.SP B.IP C.BP D.CS 18.源變址寄存器是()
A.SI B.DI C.SP D.BX 19.設SP=1200H,執行POP AX后,SP中的內容為()A.SP=1112H B.SP=11OEH C.SP=1111H D.SP=11OFH 20.數字6704不可能是()A.六進制數 B.十進制數 C.十二進制數 D.十六進制數
21.下面四個寄存器中,不能用于間接尋址的寄存器是()A.BX B.AX C.BP D.DI 22.若(BX)=OCA8H,則執行指令 MOV CL,8 ROR BX,CL后,(BX)=()
A.OCA8H B.8ACOH C.OA80CH D.OA8COH 23.下面數據傳送指令中,正確的是()A.MOV DS,ES B.MOV AL,WORD PTR [BX+DI] C.MOV AL,BYTE PTR [SI+DI] D.MOV CX,[SI] 24.下列哪一種尋址方式最快?()A.立即尋址 B.直接尋址
C.寄存器尋址 D.寄存器間接尋址
25.寄存器間接尋址中,操作數在()A.通用寄存器 B.堆棧 C.主存單元 D.段寄存器
26.在順序結構的流程圖中,不包含有()A.起始框 B.終止框 C.判斷框 D.處理框
27.以8086/8088為CPU的微機內存最大容量為()A.4MB B.1MB C.640KB D.64KB 28.與lA.5H不等的數據是()A.26.3125D B.11010.0101B C.32.5Q D.10110.0100B 29.8位二進制補碼表示的整數數據范圍是()A.-128~127 B.-127~127 C.-128~128 D.-127~128 30.下列四個寄存器中,不允許用傳送指令賦值的寄存器是()A.CS B.DS C.ES D.SS 31.指令MOV 100[SI][BP],AX的目的操作數的隱含段為()A.數據段 B.堆棧段 C.代碼段 D.附加段 32.運算型指令的尋址和轉移型指令的尋址,其不同點在于()A.前者取操作數,后者決定程序的轉移地址 B.后者取操作數,前者決定程序的轉移地址 C.兩者都是取操作數
D.兩者都是決定程序的轉移地址
33.設AL=0A8H,CX=2,CF=1,執行RCL AL,CL指令后,AL=()A.51H B.A3H C.47H D.0C5H 34.目的變址寄存器是()A.SI B.DI C.SP D.BX 35.下列常用尋址方式中,哪種屬于立即尋址()A.MOV AX,ES:[2000H] B.MOV [BX],AX C.MOV AX,2000H D.MOV AX,[BX+3AH] 36.設SP=1110H,執行PUSH AX后,SP中的內容為()A.SP=1112H B.SP=110EH C.SP=I111H D.SP=110FH 37.下列指令中錯誤的指令為()A.MOV AX,CS B.MOV DS,1500H C.MOV SI,BX D.MOV [2000H],BL 38.語句DA1 DB 2 DUP(3,5),7 匯編后,與該語句功能等同的語句是()A.DA1 DB 3,5,7 B.DA1 DB 2,3,5,7 C.DA1 DB 3,5,3,5,7 D.DA1 DB 3,5,7,3,5,7 39.下面四個寄存器中,用來作為I/O端口間接尋址的寄存器是()A.BX B.DX C.BP D.DI 40.下列哪一種尋址方式最快?()A.立即尋址
B.直接尋址
C.寄存器尋址
D.寄存器間接尋址
41.在串處理指令REPNZ CMPSB表示在()A.當(CX)不等于0且ZF等于1的情況下,重復執行串搜索 B.當(CX)不等于0且ZF等于0的情況下,重復執行串搜索 C.當(CX)不等于0且ZF等于1的情況下,重復執行串比較 D.當(CX)不等于0且ZF等于0的情況下,重復執行串比較 42.若(DX)=0A74CH,(CL)=5,則指令SAR DX,CL執行后,(DX)=()A.053AH B.653AH C.0FD3AH D.740AH 43.完成將有符號數BX的內容乘以2的正確指令是()A.SHR BX,1 B.SAR BX,1 C.SAL BX,1 D.RCR BX,1 44.指令LOOPNZ的循環執行條件是()A.CX ≠0且ZF=0 B.CX ≠0或ZF=0 C.CX ≠0且ZF=1 D.CX ≠0或ZF=1 45.下列寄存器中不能作為間址寄存器的是
()A.SI B.DI C.CX D.BX 46.JMP WORD PTR[BX]轉移的目標地址是()A.BX中的內容
B.SP+BX之和 C.IP+[BX]之和 D.BX指示的內存單元之內容
二、填空題:
1.計算機中的CPU由___ ____和___ ___組成。2.(513.85)10 =(__ _)16 ;(105.3)8 =(____)10。
3.假定機器的字長為8位,且最高位為符號位,則(-127)10的原碼用8位二進數表示為__,其補碼用8位二進數可表示為__。
4.I/O端口有兩種編址方式,分別是 ___ _______ 和 ____ ______。
5.8086/8088的中斷系統能夠處理 _256_ 個不同的中斷源,并為每一個中斷安排一個編號,稱為中斷類型。每種中斷類型對應的中斷服務程序的入口地址稱為 _____。6.循環結構的程序主要由 ____、循環體、_____ 和循環控制部分組成。7.若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOV AX,(SI+COUNT)中,源操作數的有效地址EA為__________,其物理地址為__________。
8.當標志位__________=1時表示無符號數運算產生溢出,而當標志位__________=1是表示帶符號數運算產生溢出。
9.將十進制數513.85轉換成二進制數、八進制數、十六進制數和BCD碼分別可表示為__________、__________、__________、__________。
10.十進制數52的原碼、反碼、補碼(采用8位二進制,最高位為符號位)分別可表示為_________、__________、__________。
11.已知某個數的補碼為9DH,則其真值為__________。
12.以下宏定義的功能是將一位十六進制數轉換為ASCII碼,請在空白處填入恰當內容,使程序完整。
HEXTOA __________ AND AL,0FH CMP AL, __________ JNA HEXTOA1 ADD AL,7H HEXTOA1: ADD AL, __________ ENDM 13.地址2000H: 0480H,其物理地址是__________,段地址是__________,偏移量是__________。
14.225D= __________B= __________H。
15.已知[X]補=11010101,則X= __________D。
16.執行部件EU的主要功能是:____________________和____________________。17.8086 CPU在取指令時,會選取段寄存器__________的值作為段基值,再加上由__________提供的偏移地址形成20位的物理地址。
18.8086最多可處理__________種中斷,對每一個中斷都設置一個__________。19.8086 CPU有兩種外部中斷請求線,它們分別是__________和__________。
20.CPU與外設之間的數據傳送方式有__________、__________、__________和DMA方式傳送。21.馮·諾依曼型的計算機制結構由__________、__________、__________、__________和__________五大部分組成。
22.101011.101B = __________D =__________O = __________H。23.數字9的ASCII碼為__________。
24.I/O端口有_________和_________兩種編址方式,8086的最大I/O尋址空間為_________。25.若一個程序段開始執行之前,(CS)=97F0H,(IP)=1B40H,該程序段啟動執行指令的實際地址是__________。
26.6AB.24H = __________B = __________O。
27.數字“0”和字母“K”的對應的ASCII碼分別為__________和__________。28.十進制數-26的原碼、反碼、補碼(采用8位二進制,最高位為符號位)分別為__________、__________、__________;已知一個數的補碼為B2H,其真值為__________。
29.匯編語句中,語句標號具備的三種屬性分別是__________、__________、__________;變量具備的三種屬性分別是__________、__________、__________。
30.8086CPU的數據總線為_________位,地址總線為_________位,最大的存儲空間是_________。
31.8086CPU的標志寄存器共有9個有效標志位,其中有6個狀態標志位,分別是_________、__________、_________、__________、_________、__________。
32.已知X=-1011011B,則X的反碼為_________,X的補碼為_________。
33. 8086CPU在取指令時,會選取段寄存器__________的值作為段基值,再加上由__________提供的偏移地址形成20位的物理地址。
三、判斷題:
1.奇偶標志位PF,當運算結果的低8位中有偶數個1時,被置為0。()2.CS, DS, ES和SS段都可以存放指令代碼。()3.MOV SI,[SI]()4.MOV [DI],[SI]()
5.兩數相等時轉移可用JZ指令。()6.OUT [BX],AL()
7.當IF=0時,CPU不能響應NMI中斷。()
8.把若干個模塊連接起來成為可執行文件的系統程序是匯編程序。()9.使匯編程序執行某種操作的命令是宏指令。()10.串操作指令中,目的操作數的段地址一定在DS寄存器中。
()11.在匯編語句AGAIN: INC SI中的AGAIN 稱為標號。()12.MOV BH,1000[SI],該指令中源操作數采用的尋址方式是寄存器間接尋址。()13.OR AL,AL 是邏輯或操作指令。()14.DOS 系統功能調用中,顯示單個字符的系統調用號是01H。()15.使計算機執行某種操作的命令是偽指令。()
四、改錯題:
1.下述程序執行后,應將LIST數組中的最大值存入MAX單元,數組元素為無符號字數據,數據個數在CNT單元中。現已知程序有錯,請改正,使之完成預定功能。1)DSEG SEGMENT 2)LIST DW 1,200,30,400,0,7,4000 3)CNT DB 7 4)
MAX DW? 5)DSEG ENDS 6)CSEG SEGMENT 7)
ASSUME DS:DSEGDS:CODE 8)FMAX: MOV DX,DSEG 9)
MOV DS,AX 10)
LEA SI,LIST 11)MOV CX,CNT 12)
CLD 13)LODSW 14)
DEC CX 15)CMP AL,[SI] 16)
JLE SMALL 17)
LODS W 18)SMALL: INC SI 19)
INC SI 20)
DEC CX 21)LOOP AGAIN 22)
MOV MAX,SI 23)MOV AL,4CH 24)
INT 21H 25)CSEG END 26)
END START 2.下面的程序是將內存單元一字節數據乘以10放回單元的程序,找出錯誤并改正。DATA SEGMENT DA DW 34 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET DA MOV AL,[SI] MUL 10 MOV [SI],AX MOV AH,4CH INT 21H CODE ENDS END START
五、簡答題:
1.80386/80486有幾種工作模式?各有什么特點?
2.假定一個名為MAINPRO的程序要調用子程序SUBPRO,試問:
(1)MAINPRO中的什么指令申明匯編程序SUBPRO是在外部定義的?
(2)SUBPRO怎么知道MAINPRO要調用它?
3.現有(DS)=2000H,(BX)=O100H,(SI)=0002H,(20100H)=12H,(2010H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,試說明下列指令執行后,AX寄存器中的內容。
(1)MOV AX,[1200H](2)MOV AX,[BX](3)MOV AX,1100H[BX](4)MOV AX,[BX+SI](5)MOV AX,[1100H+BX+SI] 4.匯編語言源程序的語句類型有哪幾種?各自的作用和使用規則是什么? 5.一個匯編源程序應該由哪些邏輯段組成?各段如何定義?各段的作用和使用注意事項是什么?
6.什么是微型計算機的系統總線?定性說明微處理器三大總線的作用。
六、程序分析題:
1.試分析下列程序段,如果AX和BX的內容分別給出如下5種情況,問程序分別轉向何處?(1)AX = 1478H,BX = 80DCH(2)AX = 0B568H,BX = 54B5H(3)AX = 42C8H,BX = 608DH(4)AX = 0D023H,BX = 9FD0H(5)AX = 94B7H,BX = 0B568H ADD AX,BX JNO L1 JNC L2 SUB AX,BX JNC L3 JNO L4 JMP L5 2.已知數據段中定義
DAT1DB 12H,34H,56H,78H MOVCX,0 MOVAX,WORDPTRDAT1 MOVCL,DAT1+3 當程序段執行完后AX=________,CX=________。3.執行完程序后,回答指定的問題。BLOCK DB 20H,1FH,08H,81H,OFFH… RESULT DB?
START: LEA SI,BLOCK MOV CH,O MOV CL,[SI] DEC CX INC SI MOV AL,[SI] LOP1: CMP AL,[SI+1] JLE NEXT MOV AL,[SI+1] NEXT: INC SI LOOP LOP1 MOV RESULT,AL HLT 問:(1)該程序的功能是();(2)該程序的循環次數是()。4.分析下列程序,回答問題:(1)該程序完成什么功能?
(2)程序中的INC SI可否用指令ADD SI,1代替,為什么?(3)程序中的指令LEA SI,DATAI可用指令()代替。(4)CLC指令的目的是()。DATA SEGMENT DATAI DB 85H,27H,4AH DATA2 DB 93H,87H,65H LEGH DW 3 SUM DB 0,0,0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,DATA1 LEA BX,DATA2 LEA DI,SUM MOV CX,LEGH CLC AGAIN: MOV AL,[SI] ADC AL,[BX] MOV [DI],AL INC SI INC BX INC DI LOOP AGAIN MOV AH,4CH 1NT 21H CODE ENDS END START 5.執行完程序后,回答指定的問題。MOV AX,200H MOV BX,500H MOV [BX+1OH],30H ADD AX,[BX+1OH] LEA SI,[BX+lOH] MOV BX,AX 問:程序段執行后,SI=(),BX=()。
七、程序設計: 1.將DAT字存儲單元中的16位二進制數分成四組,每組四位,然后將這四組數分別放至DAT1、DAT2、DAT3和DAT4這4個字節單元中。
2.設有10個學生的成績分別是70,75,89,68,63,88,78,74,81和90。編制一個子程序統計60-69,70-79,80-89,90-99及100分的人數并分別存放到S6,S7,S8, S9和S10單元中。3.已知在以BUR為首地址的數據區中存放了N字節數據,編寫程序完成將數據塊搬至BUF2為首地址的存儲區中,要求:(1)用一般數據傳送指令MOV實現;(2)用數據串傳送指令MOVSB實現;(3)用數據串指令LODSB/STOSB實現。
4.對一組無符號數進行比較,把最大數顯示在屏幕上。
5.已知兩個無符號字數據X、Y分別存放在ADRX和ADRY單元,編制程序,若X是Y的倍數,則顯示器上顯示0,否則顯示1。
參考答案
一、選擇題:
1.B 2.C 3.C 4.B 5.A 6.D 7.C 8.D 9.B 10.A 11.C 12.D 13.C 14.A 15.D 16.B 17.B 18.A 19.B 20.A 21.B 22.C 23.D 24.A 25.C 26.C 27.B 28.C 29.A 30.A 31.B 32.A 33.B 34.B 35.C 36.B 37.B 38.C 39.B 40.A 41.B 42.C 43.C 44.C 45.C 46.D
二、填空題:
1.運算器 控制器 2.201.D999 69.375 3.11111111 10000001 4.統一編址 獨立編址
5.256 中斷向量 6.循環初始化部分 循環參數修改部分 7.20A8H 11488H 8.CF OF 9.1000000001.1011B 1001.6631O 201.D999H 10100010011.10000101B 10.00110100B 00110100B 00110100B 11.-63H 12.MACRO 9 30H 13.20480H 2000H 0480H 14.11100001 E1 15.-43H 16.執行指令 產生訪問存儲器時所需的16位偏移地址 17.CS IP 18.256 中斷碼類型
19.NMI INTR(可屏蔽中斷請求信號)20.無條件傳送 查詢方式傳送 中斷方式傳送 21.運算器 控制器 存儲器 輸入設備 輸出設備 22.43.625 53.5 2B.A
23.39H 24.統一編址 獨立編址 64KB 25.99A40H 26.3253.11 1707.141 27.30H 4BH
28.10011010B 11100101B 11100110B-4EH 29.段屬性 偏移量屬性 距離屬性; 段屬性 偏移量屬性 類型屬性 30.16 20 1MB 31.進位標志位(CF)輔助進位標志位(AF)符號標志位(SF)零標志位(ZF)溢出標志位(OF)奇偶標志位(PF)32.10100100B 10100101B 33.CS IP
三、判斷題:
1.× 2.× 3.× 4.× 5.√ 6.× 7.× 8.× 9.× 10.× 11.√ 12.× 13.√ 14.√ 15.×
四、改錯題: 1.解答:
(1)3行,數據定義偽指令DB改為DW(2)8行,DX改為AX(3)15行,循環入口,加標號AGAIN,即將本行改為:AGAIN:CMP AX,[SI](4)16行,JLE改為JAE(5)17行,LODSW改為MOV AX,[SI](6)20行,去掉該行語句(7)22行,SI改為AX(8)23行,AL改為AH(9)25行,END改為ENDS(10)26行,START改為程序入口標號FMAX 2.解答:
MOV AL,[SI] 改為MOV AL,BYTE PTR [SI] MUL 10 改為MOV BL,10 MUL BL
五、簡答題:
1.答:80386/80486有實地址模式、保護模式和虛擬8086模式三種工作方式。
(1)實地址模式下的80386/80486的工作原理與8086相同,內存管理只采用分段管理方式,而不采用分頁管理;內存最大空間為1MB,采用段地址尋址的存儲方式,每個段最大為64KB;操作數的默認長度為16位。
(2)保護模式下,CPU實際可訪問的物理空間最大為4GB,可選擇使用分頁結構;存儲器空間用邏輯地址、線性地址和物理地址空間描述;CPU基本結構沒有發生變化,指令和尋址方式依舊。在這種尋址方式中,可以對存儲器實施保護功能(禁止程序非法操作)和特權級的保護功能(主要保護操作系統的數據不被應用程序修改)。虛擬8086模式下,既有保護模式功能,又可執行8086的指令代碼。2.答:(1)只要在MAINPRO中用EXTRN說明SUBPRO即可;(2)只要定義SUBPRO時用PUBLIC定義即可。3.答:(1)AX=4C2AH(2)AX=3412H(3)AX=4C2AH(4)AX=7856H(5)AX=65B7H 4.答:匯編語言源程序的語句類型通常有3種類型,分別是:指令語句、偽指令語句和宏指令語句。
(1)指令語句是能產生目標代碼、CPU可以執行的能完成特定功能的語句,主要由CPU指令組成。
(2)偽指令語句是種不產生目標代碼的語句,在匯編過程中告訴匯編程序應如何匯編。(3)宏指令語句是一個指令序列,匯編時凡有宏指令語句的地方都將用相應的指令序列的目標代碼插入。
5.答:匯編程序是將匯編源程序自動翻譯成目的程序的軟件,而匯編源程序是用匯編語言編寫的程序。
匯編程序的主要功能是將由匯編語言(助記符)編寫的源程序翻譯成用機器語言(二 進制代碼)編寫的目標程序;匯編源程序的作用是進行程序設計。
6.答:微型計算機的系統總線是CPU與其他部件之間傳送數據、地址和控制信息的公共 通道。
根據傳送內容的不同,系統總線可分成以下3種:
(1)數據總線DB(Data Bus):用于CPU與主存儲器、CPU與I/O接口之間傳送數據。數據總線的寬度等于計算機的字長。數據總線一般為雙向總線,可以向兩個方向傳輸數據。(2)地址總線AB(Address Bus):用于CPU訪問主存儲器和外部設備時傳送相關的地址。地址總線的寬度決定CPU的尋址能力。
(3)控制總線CB(Control Bus)用于傳送CPU對主存儲器和外部設備的控制信號。
7.答:宏與子程序兩者的相同之處在于:都是用來處理在編程過程中多次使用的功能程序的方法,兩者均能簡化源程序。兩者的區別在于:
(1)宏調用通過宏指令名進行,匯編時,隨時調用隨時展開,并不簡化目標程序:子程序調用是在程序執行期間執行CALL指令,代碼只在目標程序中出現一次,所以也簡化了目標程序。
(2)宏調用時的參數由匯編程序通過實參轉換成形參的方式傳遞,具有很大的靈活性。宏定義中允許設置若干形式參數代替數值、指令、寄存器、各種字符串等。宏調用時可用程序所需要的實際參數來替換,使編程人員感覺非常靈活;而子程序的參數傳遞要麻煩得多。(3)宏調用在匯編時完成,不需要額外的時間開銷;子程序調用和子程序返回都需要時間,還涉及堆棧操作。
故若優先考慮速度,用宏指令;若優先考慮存儲空間,用子程序。
六、程序分析題: 1.答:(1)L1(2)L1(3)L2(4)L3(5)L3 2.答:AX=3412H,CX=0078H 3.(1)從一組數中尋找最小數送RESULT單元。(2)31次。4.解答:
(1)該程序用來將存放在DATA I和DATA2開始的單元中的兩個多字節數據相加,并將結果放在SUM開始的連續單元中。
(2)不可以。因為ADD指令影響進位標志位CF狀態。(3)MOV SI,OFFSET DATA1(4)清進位,以使在數據最低字節相加時,可以用ADC指令。5.解答:
SI=510H BX=230H
七、程序設計: 1.參考答案如下: DATA SEGMENT DAT DW 0A5D2H DAT1 DB ? DAT2 DB ? DAT3 DB ? DAT4 DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV AX, DAT MOV BX, 0F0FH AND BX, AX MOV DAT1, BL MOV DAT3, BH
MOV BX, 0F0F0H AND BX, AX MOV DAT2, BL MOV DAT4, BH MOV AH, 4CH INT 21H CODE ENDS END START 2.參考答案如下:
分析:假設子程序的入口參數成績表長度放在CX中,SI指向成績表首單元;出口參數放在S6, S7,S8,S9和S10單元中,并且各單元初值均為0。參考子程序如下: ;子程序名:GRADES ;功能:統計成績表GRADES中各個分數段的人數
;入口參數:CX中為成績表長度,SI指向成績表首單元
;出口參數:各個分數段人數分別放在存儲單元S6, S7,S8,S9和S10中 ;所用寄存器:AL, CX,SI
GRADES PROC PUSH CX ;保護用到的寄存器 PUSH SI PUSH AX NEXT: CMP CX,O ;判斷成績表是否結束 JZ EXIT DEC CX MOV AL,[SI] ;將要比較的成績放在AL中 INC SI CMP AL,100 JB GRADE9 ;小于100,轉向GRADE9 INC[S10] ;S10單元內容增1 JMP NEXT GRADE9:CMP AL,90 JB GRADE8 ;小于90,轉向GRADE8 INC [S9] ;S9單元內容增1 JMP NEXT GRADE8:CMP AL,80 JB GRADE7 ;小于80,轉向GRADE7 INC[S8] ;S8單元內容增1 JMP NEXT GRADE7:CMP AL,70 JB GRADE6 ;小于70,轉向GRADE6 INC [S7] ;S7單元內容增1 JMP NEXT GRADE6: INC [S6] ;S6單元內容增1 JMP NEXT EXIT: POP AX POP SI POP CX RET GRADES ENDP 3.
(1)參考程序如下: DATA SEGMENT BUF1 DB-10,0,11,55,125,38,-69,… ;N字節數據 CN EQU $-BUF1 BUF2 DB CN DUP(?)DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV BX,OFFSET BUF1 LEA SI,BUF2 MOV CX,CN LOP1: MOV AL,[BX] MOV [SI],AL INC BX INC SI LOOP LOPl MOV AH,4CH INT 21H CODE ENDS END START(2)程序的數據定義部分與(1)中相同,不再重復。參考程序段如下: CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF2 CLD MOV CX,CN REP MOVSB MOV AH,4CH INT 21 H CODE ENDS END START(3)程序的開頭和結尾與(2)中相同,不再重復。參考程序段如下: MOV DS,AX MOV ES,AX MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF2 CLD MOV CX,CN LOP: LODSB INC SISTOSB INC DI LOOP LOP 4.參考答案如下: DATA SEGMENT BUFFER DB OOH, 12H,3BH,43H,60H,OCH DB 8AH,OABH,37H,OFFH,32H,47H COUNT EQU $-OFFSET BUFFER DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUFFER MOV CX,COUNT MOV AL,[SI] ;把第一個數取到AL中 INC SI DEC CX ;比較COUNT-1次 COMPA: CMP AL,[SI];比較,找出大數 JA NEXT MOV AL,[SI] NEXT: INC SI LOOP COMPA ;比較完否?
MOV BL,AL ;是,大數在AL中,將其存入BX中 MOV DL,AL MOV CL,4 SHR DL,CL CMP DL,OAHJB L1 ADD DL,7 Ll: ADD DL,30H MOV AH,02H INT 21H ;顯示高位
MOV DL,BL ;將大數放到DL中 AND DL,OFH ;將高4位屏蔽 CMP DL,OAH JB L2 ADD DL,7 L2: ADD DL,30H MOV AH,02H INT 21 H ;顯示低位 MOV AH,4CH INT 21H CODE ENDS END START 5.參考答案如下: DATA SEGMENT ADRX DW 144 ADRY DW 12 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,ADRX MOV DX,O DIV ADRY CMP DX,O JZ NEXT MOV DL,'1’ JMP EXIT NEXT: MOV DL,'0' EXIT: MOV AH,02H INT 21H MOV AH,4CH INT 21H CODE ENDS END START
第五篇:微機原理復習題(答案1)xian.
微機原理與接口技術復習題(答案)
一、單項選擇題 1.微處理器是()B
A、I/O接口電路、CPU和半導體存貯器有機地組合在一起的一臺物理裝置。B、利用微電子技術將運算器和控制器做在一塊集成電路上的一個獨立部件。C、由外設、電源和系統軟件構成的一個信息處理系統。2.8088CPU中的段寄存器用來存放()C A、存貯器的物理地址
B、存貯器的邏輯地址
C、存貯器的段基地址
D、存貯器的起始地址 3.CPU中的總線接口BIU部件的功能是()D
A、負責指令的執行
B、負責數據的運算
C、負責存貯指令
D、負責與存貯器、I/O接口傳送數據
4.8088CPU內部寄存器CS=B987H,IP=1117H,其指向的物理地址為(A)
A、BA987H
B、B9870H C、11170H
D、CA9EH 5*.段定義語句以()語句結束。B A、END
B、ENDS
C、ENDP
D、ENDM 6.8088的基本總線周期包括的時鐘周期數是()C
A、2個
B、3個
C、4個
D、6個
7.在IBM PC/XT的控制核心中,除CPU、地址鎖存器、驅動器和數據收發器等還必須包括(D
A、8284和8259A
B、8288和8253
C、8284和8255
D、8284和8288 8.帶有擴展槽的ISA總線是()位的。B
A、8
B、16
C、32
D、64 9.執行指令XOR AX, AX后,AX為()C
A、1111H
B、FFFFH
C、0000H
D、內容不變 10.標志寄存器的標志位ZF=1表示運算結果()A
A、為零
B、為負
C、溢出
D、有進位
11.地址總線為32位的微機系統其內存的最大客量為()D A、2000KB B、2048KB C、2048MB D、4096MB 12.8253是可編程的(D)接口芯片。
A、中斷控制器
B、串行
C、并行
D、定時/計數器 13.在8088微機系統中,NMI中斷的中斷矢量位置(C)
A、由程序指定
B、由操作系統自動分配 C、固定在0008H開始的4個字節中 D、固定在中斷矢量表的表首
14.可屏蔽中斷的屏蔽可由CPU內部的(C)來控制。
A、中斷請求觸發器
B、中斷屏蔽觸發器
C、中斷允許觸發器
D、中斷鎖存器 15.目前在PC機主板上所使用的總線是(C)
A、ISA總線
B、EISA總線
C、PCI總線
D、PCI總線和ISA總線 16.芯片8288在8088CPU系統中的作用是(C)
A、總線鎖存器
B、總線驅動器)
C、總線控制器
D、總線仲裁器
17.在8253的6種工作方式中,既可軟件啟動又可硬啟動的是(B)
A、方式1、2
B、方式2、3
C、方式3、5
D、方式2、5 18.8259A的中斷服務寄存器ISR用于(B)
A、記憶中斷請求信號
B、記憶正在處理的中斷
C、允許向CPU發中斷請求
D、禁止向CPU發中斷請求 19.PC機是(D)
A.單片機
B、單板機
C、微型計算機
D、微型計算機系統
20.8088CPU中的標志寄存器用來存放(D)
A、存貯器的物理地址
B、存貯器的邏輯地址
C、存貯器的段基地址
D、微處理器的狀態 21.CPU中的總線接口EU部件的功能是(A)
A、負責指令的執行
B、負責取指令
C、負責存貯指令
D、負責與存貯器、I/O接口傳送數據
22.8088CPU內部寄存器CS=D987H,IP=1115H,其指向的物理地址為(A A、DA985H
B、D9850H C、11170H
D、EA9CH 23.IBM PC/XT總線是(A)位總線標準。
A、8
B、16
C、32
D、64 24.標志寄存器的標志位CF=1表示運算結果(D)
A、為零
B、為負
C、溢出
D、有進位
25.地址總線為20位的微機系統其內存的最大客量為(B)A、2000KB B、1024KB C、2048MB D、4096MB 26.8259A是可編程的(A)接口芯片。
A、中斷控制器
B、串行
C、并行
D、定時/計數器 27.芯片8284在8088CPU系統中的作用是(A)
A、時鐘發生器
B、總線驅動器
C、總線控制器
D、總線仲裁器
二、多項選擇題
1.PC/AT總線中的ISA插槽有(AC)個引腳
A、62個
B、36個
C、98個
D、108個
2.下列寄存器為16位的寄存器有(AD)
A、IP
B、AH
C、AL
D、CS 3.8088CPU訪問存貯器,當地址的A0=1時(BC)
A、如果訪問的是一個字節,該字節在偶單元中 B、如果訪問的是一個字節,該字節在奇單元中 C、如果訪問的是一個字,該字的低8位在奇單元中 D、如果訪問的是一個字,該字的高8位在奇單元中 4.一般外設接口與外設間交換的信息有(BCD)
A、地址信息
B、數據信息
C、狀態信息
D、控制信息 5.主機與外設之間數據的傳送方式有(BCD)
A、串行傳送方式
B、無條件傳送方式)
C、中斷方式
D、查詢傳送方式
6.CPU響應兩個硬件中斷INTR和NMI時,相同的必要條件是(BC)
A、允許中斷
B、當前指令執行結束
C、總線空閑
D、當前訪存操作結束 7.8088的中斷類型有(BC)
A、單步中斷
B、硬件中斷
C、軟件中斷
D、可屏蔽中斷
8.對8088的中斷矢量表下面敘述正確的是(BC)
A、共有255個類型號
B、共有256個類型號
C、矢量表可分為三部分
D、矢量表可分為四部分
9.以8088為CPU的系統中把存貯空間分為四個段,段與段(BCD)
A、必須是首尾相連的B、可以完全相互重疊
C、可以部分相互重疊
D、之間可以有間隔 10.下列寄存器為8位的寄存器有(BCD)
A、IP
B、AH
C、AL
D、BH 11.8088CPU訪問存貯器,當地址的A0=0時(AC)
A、如果訪問的是一個字節,該字節在偶單元中 B、如果訪問的是一個字節,該字節在奇單元中
C、如果訪問的是一個字,該字的低8位在偶單元中 D、如果訪問的是一個字,該字的高8位在偶單元中
三、判斷題(本題共
分,在題后括號內:正確畫勾、錯畫叉)1.用匯編語言編寫的源程序不可以直接在機器上運行。(y)2.設備選擇、數據寄存與緩沖以及輸入輸出操作的同步能力是各種接口電路都應具備的基本能力。(y)
3.中斷類型號就是中斷服務程序的入口地址。(N)4.偽指令語句的作用是指定CPU做什么操作。(N)5.CPU的所有操作的定時都以總線周期為基準。(N)
6.總線周期是CPU從存貯器或I/O端口存取一個字節所需要的時間長短。(y)7.8088CPU工作于最小組態時需要用8288總線控制器。(N)8.在PC/AT總線插槽上A12---A3120位地址線。(Y)
9.當向8253的控制字寄存器中寫入CW=10H時,8253選擇了計數器1為當前工作計數器。(N)10.CPU的所有操作的定時都以指令周期為基準。(N)
11.總線周期是CPU從存貯器或I/O端口存取一個字節所需要的時間長短。(Y)12.在PC/XT總線插槽上B1---B8是8位數據線。(N)
四、問答題
1.8088的內部寄存器中PSW的功能是什么?其中哪些是控制標志?哪些是狀態標志?簡述CF和TF的作用。
答:PSW用于標志CPU的狀態。
D、I、T是控制標志。O、S、Z、A、P、C是狀態標志。
CF:進位標志。
TF:單步(跟蹤)標志。TF=1時(置1)CPU進入單步操作方式。
2.8088的內部寄存器中PSW的功能是什么?其中哪些是控制標志?哪些是狀態標志?簡述ZF和IF的作用。
答:PSW用于標志處理器的狀態。其各位標志記錄了指令執行后的各種狀態。共9位。控制標志:DF, IF, TF 狀態標志:OF SF, ZF, AF, PF, CF。
ZF:零標志,若運算結果為零,ZF置1;否則為0
IF:中斷允許標志,若用指令置ZF=1,則允許CPU接收外設的可屏蔽中斷請求;若使ZF=0,則屏蔽上述請求。此標志對內部中斷不起作用。
3.簡述“查詢式輸入” 時CPU的工作過程、畫出程序流程圖并為下面的部分查詢輸出程序加上注解。
POLL: MOV DX, STATUS-PORT
IN AL, DX
TEST AL, 80H
JE POLL
MOV DX, DATA-PORT
IN AL,DX POLL: MOV DX, STATUS-PORT;DX=狀態口地址
IN AL, DX
;輸入狀態信息
TEST AL, 80H
;檢查READY位
JE POLL
;未準備好循環等待
MOV DX, DATA-PORT;準備好輸入數據
IN AL,DX 4.簡述“查詢式輸出” 時CPU的工作過程、畫出程序流程圖并為下面的部分查詢輸出程序加上注解。
POLL: MOV DX, STATUS-PORT
IN AL, DX
TEST AL, 80H
JNE POLL
MOV DX, DATA-PORT
MOV AL, BUFFER
OUT DX, AL POLL: MOV DX, STATUS-PORT ;DX=狀態口地址
IN AL, DX
;輸入狀態信息
TEST AL, 80H
;檢查BUSY位
JNE POLL
;BUSY則循環等待
MOV DX, DATA-PORT
;否則準備輸出數據
MOV AL, BUFFER
;從緩沖區取數據
OUT DX, AL
;輸出數據
5.簡述8253工作方式3的功能。8253在PC/XT系統中地址約定為40—43H,三個通道的CLK頻率均為1.19MHZ。其計數器0編程為方式3,每55ms向8259A的IRQ0 端發一次中斷請求信號。用于報時和磁盤驅動器的馬達定時。請寫出滿足上述要求的初始化程序。MOV AL, 00110110;通道0方式控制字
OUT 43H,AL
;寫入43H端口(控制字寄存器)MOV AL,0
;計數初值為65536 1/1.19M×65536=0.55ms
OUT 40H, AL
;初值低8位送40H端口
OUT 40H,AL
;初值高8位送40H端口
6.簡述8253工作方式2的功能及操作步驟。若要8253的OUT2輸出2KHZ頻率的波形,負脈沖寬度為1μS。設CLK2輸入1MHZ 的時鐘,GATE2接高電平,8253地址為04—07H,請寫出滿足上述要求的初始化程序。
答:8253工作于方式2時能在OUT端輸出連續的負脈沖。脈沖周期等于計數值和時鐘周期 的乘積。寫入計數值后,計數器對輸入的CLK計數,計數器減至1時,輸出電平變低,經一個CLK周期輸出恢復為高電平,計數器從初值開始重新計數。計數過程受GATE控制。
初始化程序如下:
MOV AL,0B4H
OUT 07H, AL
;寫入控制字
MOV AL, 0F4H
OUT 06H, AL
;寫入計數值的低8位
MOV AL, 01H
OUT 06H, AL
;寫入計數值的高8位
7.PC/XT系統采用向量中斷方式處理8級外部硬件中斷。設其中斷向量表在0000H:002CH單元開始依次存放23H、FFH、00H、和F0H四個字節,請回答:該向量對應的中斷類型碼和中斷服務程序入口地址是多少?并簡述所得結論的理由。
答:中斷服務程序入口地址在向量表中的物理地址為
00000H+002C=0002CH=(2×161+12×160=44)10
44÷4=11=(BH)
所以中斷類型號為0BH,中斷服多入口地址為:
F000:FF23
0002C
IP
FF
00
CS
F0
8.PC/XT系統采用向量中斷方式處理8級外部硬件中斷。設其中斷向量表在0000H:003CH單元開始依次存放34H、FEH、00H、和F0H四個字節,請回答:該向量對應的中斷類型碼和中斷服務程序入口地址是多少?并簡述所得結論的理由。答:因為中斷服務程序入口地址在向量表中的物理地址為:
00000H+003CH=0003CH=(3×16+12×160=60)10 60÷4=15=FH 所以中斷類型號為0FH。以上四字節在表中的位置排列為: F000:FE34H
0003CH
FE
IP
00
F0
CS 9.設某微機系統中有三片中斷控制器8259A采用級聯方式工作,其中有一片做為主片,其它兩片做為從片。若從片1的INT腳連接主片的IR3,從片2的INT腳連接主片的IR5。請你畫出的此級連系統的電路連接圖,并對分別對主片的SP*/EN*和從片的SP*/EN*的設置方式做出說明。
系統總線 AB、DB、CB
INTAACSD-DRDWRINTINTAACSD-DRDWRINTINTAACSD-DRDWRINT
CASCASCAS8259A8259A8259A CASCASCAS(從片1)(從片2)(主片)CASCASCAS SP/ENIRIRIRIRIRIRIRIRSP/ENIRIRIRIRIRIRIRIRSP/ENIRIRIRIRIRIRIRIR ******321076543210VCC 5
5.設某系統中有兩片中斷控制器8259A,采用級聯方式工作。其中從片的INT腳與主片的RI4腳連接。假定現在從片的IR3發生中斷并獲得服務。請問,若采用一般嵌套方式,系統中有那些級別的中斷源有權對正在獲得服務的中斷實施嵌套?若采用特殊嵌套方式,系統中有那些級別的中斷源有權對正在獲得服務的中斷源實施嵌套,這些中斷源的優先級順序是如何排列的?
?B.一般嵌套方式:IR4的中斷被服務時,這些中斷將被封鎖。
C.一般嵌套方式:從8259AIR0IR1IR2IR3主8259AIR0IR1IR2IR3從片的INT被主片封鎖,故更高級別的IR0-IR2中斷也無法得到響應A.假定IR3發生中斷,并獲得服務 去CPUINTIR4IR5IR6IR7INTIR4IR5IR6IR7E.D.特殊嵌套方式:IR4的中斷被服務時,只封鎖IR5-IR7。特殊嵌套方式:因主片不封鎖從片的INT,故級別高的IR0-IR2中斷可以得到響應。(但IR3-IR7仍被本從片封鎖)
答:一般嵌套方式,系統中只有主片的IR0~IR3有權對正在服務的中斷實施嵌套。若采用特殊嵌套方式,系統中有主片的IR0~IR3和從片上的IR0~IR2有權對正在服務的中斷實施嵌套。優先級順序是,先主片IR0~IR3,然后是從片上的IR0~IR2