第6章?存儲器?習題答案(部分)
6.1 試說明半導體存儲器的分類。
答:半導體分為:RAM 和ROM。RAM 分為靜態(tài)RAM 和動態(tài)RAM。ROM 分為:掩膜ROM、
PROM、EPROM、E2PROM。
6.2 試說明CMOS 靜態(tài)存儲器基本存儲電路數(shù)據(jù)讀、寫的原理。
第7章?基本輸入/輸出接口?習題答案(部分)
7.1 簡述I/O 接口的主要功能。
答:(1)對輸入輸出數(shù)據(jù)進行緩沖和鎖存
(2)對信號的形式和數(shù)據(jù)的格式進行變換
(3)對I/O 端口進行尋址
(4)提供聯(lián)絡信號
7.2 CPU 與外設之間的數(shù)據(jù)傳輸方式有哪些?簡要說明各自含義。
答:(1)程序方式:微機系統(tǒng)與外設之間的數(shù)據(jù)傳輸過程在程序的控制下進行
(2)中斷方式:在中斷傳輸方式下,當輸入設備將數(shù)據(jù)準備好或輸出設備可以接收數(shù)
據(jù)時,便向CPU 發(fā)出中斷請求,使CPU 暫時停止執(zhí)行當前程序,而去執(zhí)行數(shù)據(jù)輸入/輸出
的中斷服務程序,與外設進行數(shù)據(jù)傳輸操作,中斷服務程序執(zhí)行完后,CPU 又返回繼續(xù)執(zhí)
行原來的程序。
(3)直接存儲器存取(DMA)方式:DMA 方式是指不經(jīng)過CPU 的干預,直接在外設
和內存之間進行數(shù)據(jù)傳輸?shù)姆绞健?/span>
7.3 什么是端口?通常有哪幾類端口?計算機對I/O 端口編址時通常采用哪?在80x86
系統(tǒng)中,采用哪一種方法?
每個I/O 接口內部一般由三類寄存器組成。CPU 與外設進行數(shù)據(jù)傳輸時,各類信息在
接口中進入不同的寄存器,一般稱這些寄存器為I/O 端口。
I/O 端口通常有數(shù)據(jù)端口、狀態(tài)端口、控制端口。
計算機對I/O 端口編址時通常采用:I/O 端口與內存統(tǒng)一編址、I/O 端口獨立編址兩種
方法。
在80x86 系統(tǒng)中,采用I/O 端口獨立編址方法。
7.4 現(xiàn)有一輸入設備,其數(shù)據(jù)端口地址為FFE0H,狀態(tài)端口地址為FFE2H,當其D0
為1 時表明輸入數(shù)據(jù)準備好。試采用查詢方式,編程實現(xiàn)從該設備讀取100 個字節(jié)數(shù)據(jù)并保
存到2000H:2000H 開始的內存中。
程序為:
CODE SEGMENT
ASSUME CS:CODE
START: MOV AX,2000H
MOV DS,AX
MOV SI,2000H
MOV CX,100
CONT:?MOV DX,0FFE2H
CONT1:IN AL,DX
TEST AL,01
JZ CONT1
MOV DX,0FFE0H
IN AL,DX
MOV [SI],AL
INC SI
LOOP CONT
MOV AH,4CH
INT 21H
CODE ENDS
END START
7.5 硬件如圖7.5 所示,試編程實現(xiàn):S0 控制8 個發(fā)光二極管1 亮7 暗,S1 控制8
個?8 個發(fā)光二極管7 亮1 暗,S2 控制某一亮點(或暗點)以一定時間間隔循環(huán)向左移動,
S3 控制某一亮點(或暗點)以一定時間間隔循環(huán)向右移動,兩個或兩個以上開關閉合,則
結束程序。
CODE SEGMENT
ASSUME CS:CODE
MAIN PROC FAR
START: PUSH DS
MOV AX,0
PUSH AX
NEXT1: MOV AH,1
INT 16H
CMP AL 1BH
JZ EXIT1
MOV DX 200H
IN AL,DX
TEST AL,0FEH
JZ NEXT2
TEST AL 0FDH
IN AL,0BFH
MOV CX,8
JPM NEXT3
NEXT2:MOV CX,8
NOT AL
NEXT3:ROR AL,1
MOV DX,200H
OUT DX,AL
LOOP NEXT3
EXIT: RET
MAIN ENDP
CODE ENDPS
END START
程序段為:(省略偽指令)
DATA SEGMENT
BUF1 DB 01H
BUF2 DB 80H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MOV AX,DATA
MOV DS,AX
MOV DX,200H
AGAIN:?IN AL,DX
XOR BL,BL
MOV CX,8
CONT:?ROR AL,1
JNC NEXT
INC BL
NEXT:?LOOP CONT
CMP BL,2
JAE EXIT
CMP AL,0FEH
JZ 1L7A
CMP AL,0FDH
JZ 1A7L
CMP AL,0FBH
JZ ZSHL
CMP AL,0F7H
JZ YSHR
1L7A: MOV AL,80H
OUT DX,AL
JMP AGAIN
7A7L: MOV AL,7F
OUT DX,AL
JMP AGAIN
ZSHL: MOV AL,BUF1
ROL AL,1
MOV BUF1,AL
OUT DX,AL
CALL D500MS
JMP AGAIN
YSHR: MOV AL,BUF2
ROR AL,1
MOV BUF1,AL
OUT DX,AL
CALL D500MS
JMP AGAIN
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END
第8 章?中斷習題
8.1 80x86 的中斷系統(tǒng)有哪幾種類型中斷?其優(yōu)先次序如何?
80x86 的中斷系統(tǒng)可處理256 種個中斷源。這些中斷源可分為兩大類:外部中斷(硬件
中斷)、內部中斷(軟件中斷)。軟件中斷包括:除法中斷、單步中斷、指令中斷、溢出中斷。
硬件中斷包括:INTR 和NMI。
中斷優(yōu)先級的次序是:內部中斷(高)_非屏蔽中斷_可屏蔽中斷_單步中斷(低)
8.3 已知中斷向量表表中地址0020H ~ 0023H 的單元中依次是40H,00H,00H,01H,
并知INT 08H 指令本身所在的地址為9000H:00A0H。若SP=0100H,SS=0300H,標志寄
存器內容為0240H,試指出在執(zhí)行INT 08H 指令,剛進入它的中斷服務程序時,SP,SS,
IP,CS 和堆棧頂上三個字的內容(用圖表示)。
執(zhí)行后?SS=0300H SP=00FAH
CS=0100H IP=0040H ,堆棧頂上三個字的內容如下所示:
0 0 F AH
0 0 F CH
執(zhí)行后:0300H:00FEH
初始:?0300H:01000H
8.4 某一用戶中斷源的中斷類型號為40H,其中斷服務程序名為INTR40,請用兩種不
同的方法設置它的中斷向量。
法一:MOV AX,0000H
MOV DS,AX
MOV SI,0100H
MOV AX,OFFSET INTR40
MOV [SI],AX
MOV AX,SEG INTR40
MOV [SI+2],AX
法二:MOV BX,SEG INTR40
MOV DS,BX
MOV DX,OFFSET INTR40
MOV AH,25H
INT 21H
8.5 試編寫一段將8259A 中IRR、ISR、IMR 的內容讀出,存入到BUFFER 開始的數(shù)
據(jù)緩沖區(qū)去的程序。8259A 的端口地址為30H、31H。
START: MOV AX,DATA ;取BUFFER 所在數(shù)據(jù)段的段基址DS
MOV DS,AX
LEA SI,BUFFER ;取BUFFER 所在數(shù)據(jù)段的偏移地址SI
MOV AL,0AH ;讀出命令字OCW,P=0,RR=1,RIS=0,選IRR
棧區(qū)
A2H
00H
00H
90H
40H
02H
XX
OUT 30H,AL
IN AL,30H ;讀出IRR 的內容
MOV [SI],AL ;IRR 內容送內存
MOV AL,0BH ;讀出命令字OCW,P=0,RR=1,RIS=1,選ISR
OUT 30H,AL
IN AL,30H ;讀出ISR 的內容
MOV [SI+1],AL ;ISR 內容送內存
IN AL,31H ;讀IMR 的內容
MOV [SI+2],AL ;IMR 的內容送內存
8.6 某一8086CPU 系統(tǒng)中,采用一片8259A 進行中斷管理。設8259A 工作在全嵌套
方式,發(fā)送EIO 命令結束中斷,邊沿觸發(fā)方式,IR0 對應的中斷向量號為90H,8259A 在系
統(tǒng)中的端口地址為FFDCH(A0=0)和FFDDH(A0=1),試編寫8259A 的初始化程序段。
初試化程序段為:
MOV AX,0FFDCH ;取8259A 的偶地址端口
MOV DX,AX
MOV AL,13H ;控制初始化命令字ICW1 設為13H,中斷請求為邊沿觸
;發(fā)方式,單片8259A,需寫入ICW4
OUT DX,AL ;設置ICW1
MOV AX,0FFDDH ;取8259A 的奇地址端口
MOV DX,AX
MOV AL,90H ;中斷類型碼初始化命令字ICW2 設為90H,對應于
;IR0 ~IR7 的中斷類型碼為90H~97H
OUT DX,AL ;設置ICW2
MOV AL,01H ;方式控制初始化命令字ICW4 設為01H,全嵌套方式,
;非緩沖方式,非自動中斷結束方式,工作于8086 系統(tǒng)中
OUT DX,AL ;設置ICW4
第九章?可編程接口芯片及應用習題
9.1 試按如下要求分別編寫初始化程序,已知計數(shù)器0 ~ 2 和控制字寄存器的端口地址
依次為204H ~ 207H。
(1)使計數(shù)器1 工作在方式0,僅用8 位二進制計數(shù),計數(shù)初值為128。
(2)使計數(shù)器0 工作在方式1,按BCD 碼計數(shù),計數(shù)值為3000。
(3)使計數(shù)器2 工作在方式2,按二進制計數(shù),計數(shù)值為02F0H。
初始化程序為:
(1)?MOV DX,207H
MOV AL,50H
OUT DX,AL
MOV DX,205H
MOV AL,80H
OUT DX,AL
(2)?MOV DX,207H
MOV AL,33H
OUT DX,AL
MOV DX,204H
MOV AX,3000H ;注意,不是3000
OUT DX,AL
MOV AL,AH
OUT DX,AL
(3)?MOV DX,207H
MOV AL,0B4H
OUT DX,AL
MOV DX,206H
MOV AL,0F0H
OUT DX,AL
MOV AL,02
OUT DX,AL
9.2 硬件如題9.2 圖,利用PC 內部8253 定時器0,并用中斷方式實現(xiàn)每隔1s 使發(fā)光
二極管亮暗交替顯示。(PC 內部8253 輸入時鐘頻率為1.1932MHz,8253 定時器0 端口地址
為40H,控制寄存器端口地址為43H。Y0 為350H)。
定時器計數(shù)值=1.1932MHz÷5=32864=83D5H
軟件計數(shù)值:50
程序為:(硬件圖見教材P345 題9.2 圖)
MOV AL,34H
OUT 43H,AL
MOV AL,0D5H
OUT 40H,AL
MOV AL,83H
OUT 40H,AL
MOV BL,50
┇
T0 中斷服務程序為:
DEC BL
JNZ EXIT1
MOV BL,50
MOV AL,BUF
NOT AL
MOV BUF,AL
MOV DX,350H
OUT DX,AL
EXIT1:MOV AL,20H
OUT 20H,AL;(設8259A 的端口地址為20H,21H)
IRET
9.3 硬件如題9.3 圖,8253 采用方式0,BCD 碼計數(shù)方式,初始值為1000,每按一次
按鈕S,計數(shù)器值減1。試編程實現(xiàn)顯示8253 當前計數(shù)值,直至計數(shù)值為0。8253 端口地
址范圍為80H ~ 83H。
(略。在何處顯示---屏幕/LED/液晶?)
9.4 圖9.4 為一簡化的鍵盤/數(shù)碼管顯示接口電路,假設端口線a’ ~ h’及1、2 腳送“1”
電平,可使顯示點亮并能實現(xiàn)掃描,試問U1、U2 及數(shù)碼顯示器的選用。
(1)U1 為?(同相驅動器?/ 反相驅動器)。
(2)U2 為?(同相驅動器?/ 反相驅動器)。
(3)數(shù)碼顯示器為?(共陰?/ 共陽)數(shù)碼管。
(4)若A 鍵閉合,則端口線3,4 的電平為?。
圖9.4 見教材P295
選用同相驅動器
選用反相驅動器
選用共陰數(shù)碼管
若A 鍵閉合,則端口線3,4 的電平為0,1
9.5 硬件如題?9.5 圖,試編程實現(xiàn)循環(huán)檢測S0、S1,當S0 按下,數(shù)碼管顯示0,當
S1 按下,數(shù)碼管顯示1,S0、S1 同時按下,則結束程序。8255 的端口地址范圍為80H83H。
程序為:
MOV AL,82H
OUT 83H,AL
AGAIN:?IN AL,81H
TEST AL,03
JZ EXIT
TEST AL,01
JZ NEXT
MOV AL,3FH
OUT 80H,AL
JMP AGAIN
NEXT:?TEST AL,02
JZ NEXT1
MOV AL,06
OUT 80H,AL
JMP AGAIN
NEXT1:?MOV AL,00
OUT 80H,AL
JMP AGAIN
EXIT:?MOV AH,4CH
INT 21H__