第一篇:微機(jī)原理與接口技術(shù)(北郵階段作業(yè)4)
一、單項選擇題(共20道小題,共100.0分)
1.8086的中斷優(yōu)先級由低到高的順序為______
A.單步中斷、可屏蔽中斷、不可屏蔽中斷、內(nèi)部中斷
B.可屏蔽中斷、不可屏蔽中斷、單步中斷、內(nèi)部中斷
C.內(nèi)步中斷、單部中斷、不可屏蔽中斷、可屏蔽中斷 D.內(nèi)部中斷、單步中斷、可屏蔽中斷、不可屏蔽中斷
知識點: 單元5、6、7習(xí)題 學(xué)生答[A;] 案: 得分: [5] 提示:
2.3.占有CPU時間最小的數(shù)據(jù)傳送方式是______
A.同步傳送
B.查詢傳送
C.中斷傳送 D.DMA傳送
知識點: 單元5、6、7習(xí)題 學(xué)生答[D;] 案: 得分: [5] 提示:
4.5.微型計算機(jī)輸入/輸出的控制方式有4種,其中以______控制的輸入/輸出是一種最主要的控制方式,因為其實時性強(qiáng),效率高 A.無條件傳送 B.程序查詢 C.中斷 D.DMA
知識點: 單元5、6、7習(xí)題 學(xué)生答[C;] 案: 得分: [5]
試題分
5.0
試題分值:
5.0
試題分值:
5.0
值: 提示:
6.7.8086CPU尋址I/O端口最多使用______條地址線。
A.8 B.10 C.16 D.20 知識點: 單元5、6、7習(xí)題 學(xué)生答[C;] 案: 得分: [5] 提示:
8.9.若8086處理器改為統(tǒng)一編址方式,可使用______條地址線來尋址端口
A.8 B.10 C.16 D.20 知識點: 單元5、6、7習(xí)題 學(xué)生答[D;] 案: 得分: [5] 提示:
10.11.8086/8088的中斷是向量中斷,其中斷服務(wù)程序的入口地址是由______提供
A.外設(shè)中斷源
B.CPU的中斷邏輯電路
C.從中斷控制器讀中斷類型號左移兩位
D.由中斷型號指向的中斷向量表中讀出
知識點: 單元5、6、7習(xí)題 學(xué)生答[D;] 案:
試題分值:
5.0
試題分值:
5.0 得分: [5] 提示:
試題分值:
5.0 12.13.采用DMA方式傳送數(shù)據(jù)時,每傳送一個數(shù)據(jù)要占用______的時間
A.一個指令周期 B.一個機(jī)器周期
C.一個時鐘周期
D.一個存儲周期
知識點: 單元5、6、7習(xí)題 學(xué)生答[D;] 案: 得分: [5] 提示:
14.15.系統(tǒng)總線中地址線的功能是_____
A.用于選擇主存單元地址
B.用于選擇進(jìn)行信息傳輸?shù)脑O(shè)備 C.用于選擇外存地址
D.用于指定主存和I/O設(shè)備接口電路的地址
知識點: 單元5、6、7習(xí)題 學(xué)生答[D;] 案: 得分: [5] 提示:
16.17.8253芯片有______個端口地址
A.2 B.3 C.4 D.6 知識點: 單元5、6、7習(xí)題 學(xué)生答[C;] 案:
試題分值:
5.0
試題分值:
5.0 得分: [5] 提示:
試題分值:
5.0 18.19.8255芯片有______種基本工作方式。
A.2 B.3 C.4 D.6 知識點: 單元5、6、7習(xí)題 學(xué)生答[B;] 案: 得分: [5] 提示:
20.21.8255芯片有______數(shù)據(jù)端口
A.3個16位 B.3個8位 C.4個16位 D.4個8位
知識點: 單元5、6、7習(xí)題 學(xué)生答[B;] 案: 得分: [5] 提示:
22.23.(錯誤)8253可編程定時/計數(shù)器的計數(shù)范圍是
A.1~255 B.1~256 C.1~65535 D.1~65536
知識點: 單元5、6、7習(xí)題 學(xué)生答[C;] 案:
試題分值:
5.0
試題分值:
5.0 得分: [0] 提示:
試題分值:
5.0 24.25.在8253的6種工作方式中,能夠自動重復(fù)工作的兩種方式是
A.方式1,方式2 B.方式2,方式3 C.方式2,方式4 D.方式3,方式5
知識點: 單元5、6、7習(xí)題 學(xué)生答[B;] 案: 得分: [5] 提示:
26.27.8259A是____
A.可編程DMA控制器 B.可編程中斷控制器 C.可編程定時/計數(shù)器 D.總線仲裁器
知識點: 單元5、6、7習(xí)題 學(xué)生答[B;] 案: 得分: [5] 提示:
28.29.8086系統(tǒng)中,中斷優(yōu)先級最低的是
A.INT n B.NMI C.INTR D.單步中斷
知識點: 單元5、6、7習(xí)題 學(xué)生答[D;] 案:
試題分值:
5.0
試題分值:
5.0 得分: [5] 提示:
試題分值:
5.0 30.31.CPU每次可以響應(yīng)
個中斷源的中斷請求
A.1 B.2 C.3 D.4 知識點: 單元5、6、7習(xí)題 學(xué)生答[A;] 案: 得分: [5] 提示:
32.33.獨立I/O端口編址方式中,端口地址范圍是______
A.00000H~FFFFFFH B.0000H~FFFFH C.00H~FFH D.0~128
知識點: 單元5、6、7習(xí)題 學(xué)生答[B;] 案: 得分: [5] 提示:
34.35.在8088/8086系統(tǒng)中使用8259A作為中斷控制器,試問8259A中的中斷屏蔽寄存器(IMR)中的屏蔽位與CPU的標(biāo)志寄存器中的IF位對中斷影響是什么關(guān)系______
A.屏蔽位與IF位都用來控制某一個中斷源的中斷請求 B.屏蔽位只使對應(yīng)中斷起開中斷或關(guān)中斷功能 C.屏蔽位和IF位功能完全一樣,可互相替代
D.屏蔽位只對一個中斷源屏蔽,而IF位對所有中斷源的中斷屏蔽
知識點: 單元5、6、7習(xí)題
試題分值:
5.0
試題分值:
5.0 學(xué)生答[D;] 案: 得分: [5] 提示:
試題分值:
5.0 36.37.斷點中斷的中斷類型碼是______
A.1 B.2 C.3 D.4 知識點: 單元5、6、7習(xí)題 學(xué)生答[C;] 案: 得分: [5] 提示:
38.39.CPU響應(yīng)INTR引腳上來的中斷請求的條件之一是______
A.IF=0 B.IF=1 C.TF=0 D.TF=1
知識點: 單元5、6、7習(xí)題 學(xué)生答[B;] 案: 得分: [5] 提示:
40.試題分值:
5.0
試題分值:
5.0 A.END 知識點: 單元4習(xí)題 學(xué)生答[C;] 案:
得分: [5] 提示:
2.試題分
5.0
值:
第二篇:微機(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)從功能上講,可分為(BIU)和(EU)兩部分。4、8086/8088的四個段寄存器為(DS)、(ES)、(SS)、(CS)
5、用來存放CPU狀態(tài)信息的寄存器是(FLAGS)。
6、用來存放指令地址的寄存器是(IP)。7、8086的16位標(biāo)志寄存器FLAGS中OF=1表示運算結(jié)果(溢出),ZF=1表示運算結(jié)果為零。PF=0表示運算結(jié)果的低8位中1的個數(shù)為(奇數(shù))。
8、8086的16位標(biāo)志寄存器FLAGS中IF=1表示CPU(允許)中斷,TF=1表示CPU進(jìn)入(單步)工作方式。
9、地址4000H:0300H,其物理地址是(40300H),段地址是(4000H),偏移地址是(0300H)。
11、I/O端口的尋址方式有兩種,分別是(直接尋址),(間接尋址)。
12、指令JO NEXT 表示OF=(1)時轉(zhuǎn)移。
13、將I/O設(shè)備端口內(nèi)容讀入AL中的指令助記符是(IN)。14、8086CPU的 I/O指令采用間接尋址時,使用的間接寄存器是(DX)。
15、設(shè)置DF=1的指令為(STD)。
16、清除CF標(biāo)志的指令為(CLC)。
17、一對操作堆棧的指令為(POP)和(PUSH)。
18、LOOPNZ的循環(huán)條件為(CX≠0且ZF=0)。
19、實現(xiàn)無符號數(shù)乘2的指令的助記符是(SHL),實現(xiàn)有符號數(shù)除2的指令的助記符是(SAR)。22、8086CPU引腳信號中中斷請求兩個信號名稱為(INT)和(NMI)。
26、I/O端口的編址方式一般有(存儲器統(tǒng)一編址)和(獨立編址)兩種
29.1片8259A中斷控制器可管理(8)級中斷,用9片8259A可構(gòu)成(64)級主從式中斷管理系統(tǒng)。
二: 填空題(每題2分, 共20分)1.8086CPU復(fù)位時, 寄存器 CS值為(FFFFH), 寄存器 IP的值為(0000H)2.8086CPU的8個8位通用寄存器名為(AL),(AH),(BL),(BH),(CL),(CH),(DL),(DH).3.若SS = 3240H, SP = 2000H, 棧頂?shù)膶嶋H地址為(34400H).4.指令 MOV AX, [BX] 的機(jī)器碼為 8BH, 07H , 指令 MOV [BX], AX的機(jī)器碼為(89H),(07H).5.8255A的工作方式有方式0功能為(基本輸入輸出), 方式1功能為(選通輸入輸出), 方式2功能為(雙向數(shù)據(jù)傳送).6.執(zhí)行指令 PUSH AX有 SP =(SPBUF DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA STAR PROC FAR PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA MOV DS, AX LEA BX, BUF1 MOV CX , COUNT-1 MOV AL, [BX] AG: INC BX CMP AL, [BX] JAE BIG MOV AL, [BX] BIG: DEC CX JNZ AG MOV BUF2, AL RET STAR ENDP CODE ENDS END STAR 問: 該程序執(zhí)行后BUF2中的值為(9).四、程序設(shè)計題(2*10)
1、編寫一個匯編語言程序,要求從鍵盤輸入一個小寫字母,將其轉(zhuǎn)換成大寫字母在屏幕上顯示出來。
DATA SEGMENT BUF DB 0DH,0AH,“PLEASE INPUT A CHAR:$” DATAENDS
STACK SEGMENT
DB 20 DUP(?)STACKENDS
CODESEGMENT
ASSUME DS:DATA,CS:CODE ,SS:STACK BEGIN: MOV AX,DATA
MOV DS,AX
LEA DX,BUF;9號調(diào)用顯示PLEASE INPUT A CHAR:
MOV AH,9
INT 21H
MOV AH,1;1號調(diào)用,從鍵盤接收1字符
INT 21H
CMP AL,61H /41H;若比“a”/A小轉(zhuǎn)PEND
JB PEND
CMP AL,7AH /5BH;若比“z”/Z大轉(zhuǎn)PEND
JA PEND;
ADD/SUB AL,20H;如在“a”與“z”之間則減去20變?yōu)榇髮懽址?/p>
MOV DL,AL
MOV AH,2;2號功能調(diào)用顯示一個字符
INT 21H
PEND: MOV AH,4CH;程序結(jié)束運行,返回DOS
INT 21H CODE ENDS
END BEGIN
2、已知芯片8253的端口地址為4F0H~4F3H,設(shè)計數(shù)器1工作在方式1,計數(shù)器初值為3060H,采用二進(jìn)制計數(shù),請設(shè)計實現(xiàn)上述功能的8253初始化程序。8253控制字格式如下:
因為計數(shù)器初值為3060H,即為16位的,所以讀/寫格式為11 因此控制字為:01110010 =72 控制字:MOV AL, 72H OUT 4F3H, AL
低8位:MOV AL, 60H OUT 4F1H, AL
高8位:MOV AL, 30H
OUT 4F1H, AL
六: 編程題(7分)編一個完整的程序, 數(shù)據(jù)段有10個符號的ASCII碼值數(shù)據(jù)塊 BUF , 若數(shù)據(jù)為0到 9的ASCII碼值, 在屏上顯示 Y , 否則顯示 N 解: DATA SEGMENT BUF DB 10 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA NAIN PROC FAR PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA MOV DS, AX MOV CX, 10 LEA BX, BUF AG: MOV AL, [BX] CMP AL, 30H JL DISNO CMP AL, 39H JG DISNO MOV AH, 02H MOV DL, ‘Y’ INT 21H JMP NEXT DISNO: MOV AH, 02H MOV DL, ‘N’ INT 21H NEXT: INC CX DEC CX JNZ AG RET MAIN ENDP CODE ENDS END MAIN 七: 接口編程(7分, 僅編程序段)8255A的A口,B口均工作于方式0, 從A口輸出數(shù)據(jù)30H, 將B口輸入的數(shù)據(jù)放入寄存器BL中.(注:8255A口地址為60H到63H)解: 1 0 0 0 X 0 1 X 方式控制字= 82H MOV AL, 82H OUT 63H, AL MOV AL, 30H OUT 60H, AL IN AL, 61H MOV BL, AL
第三篇:北郵數(shù)據(jù)庫原理與應(yīng)用階段作業(yè)
一、單項選擇題(共10道小題,共100.0分)
1.數(shù)據(jù)庫事務(wù)的隔離性通過_______實現(xiàn)。2.1.2.3.4.DBMS的事務(wù)管理子系統(tǒng) 應(yīng)用程序員
DBMS的并發(fā)控制機(jī)制 DBMS的恢復(fù)子系統(tǒng)
知識點: 事務(wù)的概念 學(xué)生答[C;] 案: 得分: 提示:
標(biāo)準(zhǔn)答
C;
案:
試題分
10.0
值: [10]
3.數(shù)據(jù)庫的一致性狀態(tài)由_______來負(fù)責(zé)。4.1.2.3.4.DBMS的事務(wù)管理子系統(tǒng) 應(yīng)用程序員
DBMS的并發(fā)控制機(jī)制 DBMS的恢復(fù)子系統(tǒng)
知識點: 事務(wù)的概念 學(xué)生答[B;] 案: 得分: 提示:
標(biāo)準(zhǔn)答
B;
案:
試題分
10.0
值: [10]
1.事務(wù)開始前,數(shù)據(jù)庫處于一致性的狀態(tài);事務(wù)結(jié)束后,數(shù)據(jù)庫必須仍處于一致性狀態(tài)。這指的是事務(wù)的_____。
2.1.2.3.4.一致性 隔離性 持久性 原子性
知識點: 事務(wù)的概念 學(xué)生答[A;] 案: 得分: 提示:
標(biāo)準(zhǔn)答
A;
案:
試題分
10.0
值: [10]
1.一個事務(wù)一旦提交之后,它對數(shù)據(jù)庫的影響必須是永久的,無論發(fā)生何種系統(tǒng)故障。這指的是事務(wù)的____。
2.1.2.3.4.一致性 隔離性 持久性 原子性
知識點: 事務(wù)的概念 學(xué)生答[C;] 案: 得分: 提示:
標(biāo)準(zhǔn)答
C;
案:
試題分
10.0
值: [10]
1.系統(tǒng)必須保證事務(wù)不受其它并發(fā)執(zhí)行事務(wù)的影響,這指的是事務(wù)的________。2.1.2.3.4.一致性 隔離性 持久性 原子性
知識點: 事務(wù)的概念 學(xué)生答[B;] 案: 得分: 提示:
標(biāo)準(zhǔn)答
B;
案:
試題分
10.0
值: [10]
1.一個事務(wù)中所有對數(shù)據(jù)庫的操作是一個不可分割的操作序列。每個事務(wù)的操作序列要么都被成功地執(zhí)行,要么一個也不被執(zhí)行,這指的是事務(wù)的______。
2.1.2.3.4.一致性 隔離性 持久性 原子性
知識點: 事務(wù)的概念 學(xué)生答[D;] 案: 得分: 提示:
標(biāo)準(zhǔn)答
D;
案:
試題分
10.0
值: [10]
1.DBS運行的最小邏輯單位是__________。
2.1.2.3.4.事務(wù) 表 屬性 語句
知識點: 事務(wù)的概念 學(xué)生答[A;] 案: 得分: 提示:
標(biāo)準(zhǔn)答
A;
案:
試題分
10.0
值: [10]
1.下列哪項不是數(shù)據(jù)庫的并發(fā)操作可能會帶來的問題?______
2.1.2.3.4.數(shù)據(jù)泄密 丟失修改 讀“臟”數(shù)據(jù) 不可重復(fù)讀
知識點: 并發(fā)操作與控制 學(xué)生答[A;] 案: 得分: 提示:
標(biāo)準(zhǔn)答
A;
案:
試題分
10.0
值: [10]
1.不允許任何其他事務(wù)對這個鎖定目標(biāo)再加任何類型鎖的是______。
2.1.2.3.4.共享鎖 排它鎖 死鎖 活鎖 知識點: 加鎖協(xié)議 學(xué)生答[B;] 案: 得分: 提示:
標(biāo)準(zhǔn)答
B;
案:
試題分
10.0
值: [10]
1.用于實現(xiàn)數(shù)據(jù)存取安全性控制的SQL 語句是______。
2.1.2.3.4.CREATE INDEX COMMIT ROLLBACK GRANT 和REVOKE 知識點: 數(shù)據(jù)庫的安全性 學(xué)生答[D;] 案: 得分: 提示:
標(biāo)準(zhǔn)答
D;
案:
試題分
10.0
值: [10]
第四篇:微機(jī)原理與接口技術(shù) 實驗報告一
評
閱
微機(jī)原理與接口技術(shù)
實驗報告一
姓名
匡越
學(xué)號
1715211016
時間
地點
實驗題目
一、實驗?zāi)康?.熟悉Keil軟件使用
2.熟悉MCS-51指令
3.學(xué)習(xí)簡單程序的調(diào)試方法
二、實驗說明
通過實驗了解單片機(jī)內(nèi)部存儲器的結(jié)構(gòu)和分配及讀寫存儲器的方法,熟悉MCS-51指令同時,學(xué)習(xí)單片機(jī)程序編程、調(diào)試方法。
三、實驗內(nèi)容及步驟
1.啟動PC機(jī),打開Keil軟件,軟件設(shè)置為模擬調(diào)試狀態(tài)。在所建的項目文件中輸入源程序1,進(jìn)行編譯,如有錯誤按提示找到該行并糾錯,重新編譯直到通過。
2.編譯無誤后,打開CPU窗口,選擇單步或跟蹤執(zhí)行方式運行程序,觀察CPU窗口各寄存器的變化并將觀察到的結(jié)果記錄到預(yù)習(xí)報告。
3.新建另一個項目輸入源文件2,打開CPU窗口,選擇單步或跟蹤執(zhí)行方式運行程序,觀察存儲塊數(shù)據(jù)變化情況記錄到預(yù)習(xí)報告。點擊復(fù)位按鈕,改變存儲塊數(shù)據(jù),點擊全速執(zhí)行快捷按鈕,點擊暫停按鈕,觀察存儲塊數(shù)據(jù)變化情況,記錄到預(yù)習(xí)報告。點擊復(fù)位按鈕,改變存儲塊數(shù)據(jù),分別LOOP、LOOP1設(shè)置斷點,點擊全速執(zhí)行快捷按鈕,在斷點處觀察寄存器及存儲塊數(shù)據(jù)變化情況。
WAVE軟件使用方法參考其幫助文件。
四、實驗程序流程框圖、實驗程序
1、源程序1
ORG
0000H
AJMP
MAIN
ORG
0030H
MAIN:
MOV
R0,#30H;
(R0)=
(00H)=
MOV
A,#40H;
(A)=
MOV
R6,A;
(A)=,(R6)=
MOV
A,@R0;
(R0)=
(A)=
MOV
40H,A;
(A)=
(40H)=
MOV
30H,40H;
(30H)=
(40H)=
MOV
R1,#40H;
(R1)=
MOV
@R1,#0AAH;(R1)=
(40H)=
MOV
SP,#60H;
(SP)=
PUSH
ACC;
(SP)=
(61H)=
PUSH
30H;
(SP)=
(62H)=
MOV
A,#0FFH;
(SP)=
(A)=
MOV
30H,#30H;
(SP)=
(30H)=
POP
ACC;
(SP)=
(A)=
POP
30H;
(SP)=
(30H)=
ADD
A,30H;
(30H)=
(A)=
Cy=
SUBB
A,#10;
(A)=
Cy=
MOV
R4,#00100100B;
(R4)=
H
MOV
A,#39H;
(A)
=
ADD
A,R4;
(A)
=
(R4=)
DA
A;
(A)
=
Cy=
MOV
28H,#55H;(28H)
=
Cy=
MOV
C,40H;
(PSW)
=
Cy=
MOV
26H,#00H;(26H)
=
Cy=
MOV
30H,C;
(30H)
=
(26H.1)
=
SJMP
$
j點擊project,選擇下拉式菜單中的New
project;
k選擇所要的單片機(jī),這里我們選擇常用的Ateml
公司的AT89C51;
l新建一個File,輸入源程序;
m將新建文件保存為text.asm的格式;
n鼠標(biāo)在屏幕左邊的Source
Group1
文件夾圖標(biāo)上右擊彈出菜單,在這里可以做在項目中增加減少文件等操作。選“Add
File
to
Group
‘Source
Group
1’”彈出文件窗口,選擇剛剛保存的文件;
o對程序進(jìn)行編譯運行;
使程序一得:
ORG
0000H
AJMP
MAIN
ORG
0030H
MAIN:
MOV
R0,#30H
;
(R0)=
0x30
(00H)=
0x0000
MOV
A,#40H
;
(A)=
0x40
MOV
R6,A
;
(A)=
0x40,(R6)=
0x40
MOV
A,@R0
;
(R0)=
0x30
(A)=
0x16
MOV
40H,A
;
(A)=0x16
(40H)=
0x0040
MOV
30H,40H
;
(30H)=
0x0030
(40H)=
0x0040
MOV
R1,#40H
;
(R1)=
0x40
MOV
@R1,#0AAH;(R1)=
0x40
(40H)=
0x0040
MOV
SP,#60H;
(SP)=
0x60
PUSH
ACC;
(SP)=
0x61
(61H)=
0x0061
PUSH
30H;
(SP)=
0x62
(62H)=
0x0062
MOV
A,#0FFH;
(SP)=
0x62
(A)=
0xff
MOV
30H,#30H;
(SP)=
0x62
(30H)=
0x0030
POP
ACC;
(SP)=
0x61
(A)=
0x16
POP
30H;
(SP)=
0x60
(30H)=
0x0030
ADD
A,30H;
(30H)=
0x0030
(A)=
0x2a
Cy=
0
SUBB
A,#10;
(A)=
0x20
Cy=
0
MOV
R4,#00100100B;
(R4)=
0x24
H
MOV
A,#39H;
(A)
=
0x39
ADD
A,R4;
(A)
=
0x5d
(R4=)
0x24
DA
A;
(A)
=
0x63
Cy=
0
MOV
28H,#55H;(28H)
=
0x0028
Cy=
0
MOV
C,40H;
(PSW)
=
0x80
Cy=
MOV
26H,#00H;(26H)
=
0x0026
Cy=
MOV
30H,C;
(30H)
=
0x0030
(26H.1)
=
0
SJMP
$
2、源程序2
設(shè)(30H)=4,(31H)=1,(32H)=3,(33H)=5,(34H)=2,(35H)=6
ORG
0000H
AJMP
MAIN
ORG
0030H
MAIN:
MOV
R0,#30H;30H→R0
MOV
R2,#6;6→R2
SORT:
MOV
A,R0;30H→A
MOV
R1,A;30H→R1
MOV
A,R2;6→A
MOV
R5,A;6→R5
CLR
F0;
狀態(tài)標(biāo)志位清零
DEC
R5;寄存器R5減一
MOV
A,@R1;R1→A
LOOP:
MOV
R3,A;A→R3
INC
R1
;寄存器R1增1
CLR
C
;進(jìn)位標(biāo)志位清零
MOV
A,@R1;31H→A
SUBB
A,R3;累加器內(nèi)容減去寄存器內(nèi)容
JNC
LOOP1;僅為標(biāo)志位為1,則進(jìn)行LOOP1
;以下代碼完成數(shù)據(jù)交換
SETB
F0;狀態(tài)標(biāo)志位置1
MOV
A,@R1;31H→A
XCH
A,R3;將A于與R3的數(shù)據(jù)交換
MOV
@R1,A;將4賦值給寄存器R1(31H)
DEC
R1;寄存器減一
MOV
A,R3;1→A
MOV
@R1,A;將1賦值給寄存器R1(30H)
INC
R1;寄存器R1增一
LOOP1:
MOV
A,@R1;4→A
DJNZ
R5,LOOP;寄存器R5減一,不為零則回到LOOP
JB
F0,SORT;狀態(tài)標(biāo)志位為零,則回到SORT
SJMP
$
第五篇:微機(jī)原理與接口技術(shù)實驗總結(jié)
微機(jī)原理與接口技術(shù)實驗總結(jié)
11107108
徐寒黎
一、實驗內(nèi)容以及設(shè)計思路
1、①試編寫一程序,比較兩個字符串STRING1、STRING2 所含字符是否相同,若相同輸出“MATCH”,若不相同輸出 “NO MATCH”。設(shè)計思路:定義一個數(shù)據(jù)段,在數(shù)據(jù)段中定義兩個字符串作為STRING1、STRING2以及幾個用于輸入提示的和輸出所需內(nèi)容的字符串,定義一個堆棧段用于存放,定義代碼段。關(guān)鍵步驟以及少量語句:第一步將STRING1和STRING2都實現(xiàn)用鍵盤輸入,方法是
MOV DX,OFFSET STRING2 MOV AH,0AH INT 21H 并且顯示在顯示器上,顯示方法將0AH改成09H,語句與上面類似。然后進(jìn)行比較第一個單元,MOV AL,[STRING1+1] CMP AL,[STRING2+1] JNZ NOMATCH 若字符串長度不等,則直接跳轉(zhuǎn),輸出輸出 “NO MATCH”; 若長度相等再逐個比較 LEA SI,[STRING1+2] LEA DI,[STRING2+2] MOV CL,[STRING1+1] MOV CH,0 CLD REPE CMPSB JCXZ MATCH,意思是全部相同就跳轉(zhuǎn)MATCH,輸出“MATCH”;不然進(jìn)入下面的NOMATCH。退出。
②試編寫求級數(shù)1^3+2^3 +3^3 …..前幾項和剛大于10000的程序。
設(shè)計思路:原先編寫的程序,設(shè)定和為10000,結(jié)果是14。但要求高一點的話,可以自己設(shè)置,實現(xiàn)用鍵盤輸入和的值。
一個難點是將輸入的ASCII碼字符串,轉(zhuǎn)換成與之相同的十進(jìn)制數(shù)的數(shù)值。關(guān)鍵的思路部分是:從1開始求級數(shù),將和的值存在AX里,要加下一項級數(shù)前,比如這時已經(jīng)加到4,PUSH一下AX,然后將5乘三遍,將乘積MOV到BX里,再POP AX,然后將BX的值加到AX里,然后將AX與N比較,如果比N小就繼續(xù)上述步驟,知道剛比N大就輸出數(shù)字。
③試編寫一程序,完成字符串中各字符出現(xiàn)頻度的統(tǒng)計,統(tǒng)計結(jié)果在屏幕上輸出。
設(shè)計思路:因為這個程序需要統(tǒng)計所有的字符,所以首先要定義一個存儲區(qū),用來存放26個字符以及每個字符出現(xiàn)的個數(shù)。用鍵盤控制輸入字符串以后,將字符串的第一個字符與這二十六個字符逐個比較,若有相同,在存放相應(yīng)次數(shù)的存儲單元的值上加1。然后比較第二個字符,依次類推,將字符串里的字符全部比較完。將個數(shù)大于1的字符以及字符的個數(shù)都輸出到屏幕上。退出語句。缺點和不足:這樣需要定義一個非常繁的存儲區(qū)。可以根據(jù)輸入的字符,然后進(jìn)行比較和統(tǒng)計。
④設(shè)計一個動畫程序。
設(shè)計思路:這個程序參考了網(wǎng)上的資料,沒有什么新意,是小鳥的圖形,可以用上下左右鍵進(jìn)行移動,可以退出。
步驟:首先設(shè)置堆棧段,數(shù)據(jù)段,代碼段,設(shè)置顯示方式等一些屬性,設(shè)置背景色,設(shè)置小鳥的初始位置以及寫出小鳥圖形的像素的點。功能性的語句是,用鍵盤接受一個輸入,將其與1bh比較,用JZ語句跳轉(zhuǎn)到退出。若不是便與48h比較,看是否為向上,是則跳轉(zhuǎn)到相應(yīng)語句,不是則繼續(xù)與50h比較;,看是否向下,是則跳轉(zhuǎn)到關(guān)于向下移動的相關(guān)語句,否則再與4bh比較,看是否向左,依次類推,根據(jù)鍵盤輸入的上下左右跳轉(zhuǎn)到不同的語句。再將小鳥的位置進(jìn)行與上下左右鍵的輸入相應(yīng)的移動。
最后編寫好退出語句。
2、硬件接口主要是了解8255與8253的功能,以及控制字。①I/O地址譯碼
只要對硬件概念清晰,很簡單的?;旧蠜]有什么創(chuàng)造性。收獲:熟悉實驗箱結(jié)構(gòu),了解每部分元件和標(biāo)注的意義。掌握I/O地址譯碼電路的工作原理。②可編程定時器8253 1,對照實驗電路圖,將計數(shù)器0設(shè)置為方式0,即數(shù)初值設(shè)為N(N<0fh),用手動逐個輸入單脈沖,編程使計數(shù)值在屏幕上顯示,并用邏輯筆觀察OUT0點平變化。
2,將計數(shù)器0、計數(shù)器1分別設(shè)置為方式3,計數(shù)初值設(shè)為1000用邏輯筆觀察out1輸出電平的變化。
收獲:掌握8253的基本工作原理和編程方法
③并行接口8255 1,試驗電路如圖所示,8255C口接邏輯電平開關(guān)K0~K7,A口接LED顯示電路L0~L7。3,數(shù)碼管靜態(tài)顯示:按下圖接好電路,將8255A口PA0~PA6分別與七段數(shù)碼管的段碼驅(qū)動輸入端a~g相連,位碼驅(qū)動輸入端S1接5V(選中),S0和dp接地(關(guān)閉)。編程從鍵盤輸入一位十進(jìn)制數(shù)(0-9),在七段數(shù)碼管上顯示。
4,數(shù)碼管動態(tài)顯示:按下圖接好電路,七段數(shù)碼管的連接不變,位碼驅(qū)動輸入端S1、S0接8255 C口的PC1和PC0。編程在兩個數(shù)碼管上顯示“56”。
動態(tài)顯示時,先送“5”的段碼送A口,再送02h到C口為位碼;經(jīng)一定延時后,送“6”的段碼送A口,再送01h到C口為位碼。循環(huán)完成,可以顯示數(shù)碼。5,數(shù)碼管動態(tài)顯示(選做):同圖接好電路,編程在兩個數(shù)碼管上顯示循環(huán)顯示“00-99”。只要搞清楚各個口的地址,以及選擇適當(dāng)?shù)目刂谱?,其實很簡單的?/p>
收獲:掌握8255的基本工作原理和編程方法,對方式0的認(rèn)識加深了。
二、試驗中遇到的問題 1在編寫程序時,我深深體會到,畫程序框圖的重要性,每一步跳轉(zhuǎn)的條件一定要搞清楚,Y和N不能搞反了,否則就錯了。
2實驗2,里面涉及的寄存器很多,很容易就會用亂了,還是很需要注意的。3比如那個小鳥動畫的題目,當(dāng)時在控制左右移動的時候,選擇的起始位置的語句沒寫對位置,每次按一個移位的鍵以后,都從最初的初始位置向某個方向移動。
4硬件方面的,一開始沒搞懂地址什么意思,所以連線時很懵懂,后來清楚了,發(fā)現(xiàn)就沒什么了。
三、心得感受
微機(jī)原理與接口技術(shù)的課程實驗歷時大半個學(xué)期,通過自己編寫、運行程序,不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。以前對于編程工具的使用還處于一知半解的狀態(tài)上,但是經(jīng)過一段上機(jī)的實踐,對于怎么去排錯、查錯,怎么去看每一步的運行結(jié)果,怎么去了解每個寄存器的內(nèi)容以確保程序的正確性上都有了很大程度的提高。
前四個簡單程序設(shè)計,加深了我們對初學(xué)的匯編語言指令的熟悉和理解,匯編語言直接描述機(jī)器指令,比機(jī)器指令容易記憶和理解。通過學(xué)習(xí)和使用匯編語言,向上為理解各種軟件系統(tǒng)的原理,打下技術(shù)理論基礎(chǔ);向下為掌握硬件系統(tǒng)的原理,打下實踐應(yīng)用基礎(chǔ)。不僅鞏固了書本所學(xué)的知識,還具有一定的靈活性,發(fā)揮了我們的創(chuàng)造才能。
后面幾個實驗是并行輸入輸出接口8255和計數(shù)器8253的功能的操作,加深了我們對硬件的熟悉,鍛煉了動手能力,發(fā)揮創(chuàng)造才能。
通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多編程問題,最后在自己的思考以及和同學(xué)的討論中,終于迎刃而解。