版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
微型計(jì)算機(jī)原理實(shí)驗(yàn)報(bào)告
實(shí)驗(yàn)顯示程序?qū)嶒?yàn)
一般來(lái)說(shuō),程序需要顯示輸出提示運(yùn)行的狀況和結(jié)果,有的還需要將數(shù)據(jù)區(qū)中的內(nèi)容顯示
在屏幕上。木實(shí)驗(yàn)要求將指定數(shù)據(jù)區(qū)的數(shù)據(jù)以十六進(jìn)制數(shù)形式顯示在屏幕上,并通過(guò)DOS
功能調(diào)用完成一些提示信息的顯示。實(shí)驗(yàn)中可使用DOS功能調(diào)用(INT21H)。
流程圖
2.試驗(yàn)程序
DATASEGMENT
MESDB'Showaashex:',OAH,ODH.$
SDDB'a,
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMES
MOVAH,09H
INT2IH
MOVDI,OFFSETSD
MOVAL,DS:[DI]
ANDAL,OFOH
SHRAL,4
CMPAL,OAH
JBC2
ADDAL,07H
C2:ADDAL,30H
MOVDL,AL
MOVAH.02H
INT2IH
MOVAL,DS:[DI]
ANDAL,OFH
CMPAL,OAH
JBC3
ADDAL,07H
C3:ADDAL,30H
MOVDL,AL
MOVAH.02H
INT2IH
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
實(shí)驗(yàn)二數(shù)據(jù)傳送實(shí)驗(yàn)
三、實(shí)驗(yàn)內(nèi)容
將數(shù)據(jù)段中的一個(gè)字符串傳送到附加段中,并輸出附加段中的目標(biāo)字符串到屏幕上
1.試驗(yàn)程序
DATASEGMENT
MSRDB”HELLO,WORLD!$”
LENEQU$-MSR
DDATAENDS
EXDASEGMENT
MSDDBLENDUPC?)
EXDAENDS
MYSTACKSEGMENTSTACK
DW20DUP(?)
MYSTACKENDS
CODESEGMENT
ASSUMECS:CODE,DS:DDATA,ES:EXDA
START:MOVAX,DDATA
MOVDS,AX
MOVAX,EXDA
MOVES,AX
MOVSI.OFFSETMSR
MOVDI,OFFSETMSD
MOVCX,LEN
NEXT:MOVAL,[SI]
MOVES:[DI],AL
INCSI
INCDI
DECex
JNZNEXT
PUSHES
POPDS
MOVDX,OFFSETMSD
MOVAH.9
INT2IH
MOVAX.4C00H
INT21H
CODEENDS
ENDSTART
MOVBX,0
MOVCX,LEN
NEXT:MOVAL,MSRIBX]
MOVES:MSD[BX],AL
INCBX
LOOPNEXT
2.實(shí)驗(yàn)結(jié)果
前"[非使用中>ord3.Exe]
HELLO,WORLD?
實(shí)驗(yàn)三數(shù)碼轉(zhuǎn)換程序?qū)嶒?yàn)
1.將ASCII碼表示的十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)
1.流程圖
1
2.試驗(yàn)程序
DATASSEGMENT
NUMBERDBDOO12'
DATASENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATAS
START:MOVAX,DATAS
MOVDS,AX
MOVCX,4
MOVSI.OFFSETNUMBER
MOVALJSI]
SUBAL.30H
MOVAH.OOH
MOVBLJO
LI:MULBL
ADDAL,[SI+1]
SUBAL.30H
INCSI
DECCX
JNZLI
MOVCX,8
MOVBL,AL
NEXT:SHLBLJ
JCONE
MOVDL,3()H
JMPEXIT
ONE:MOVDL,31H
EXIT:MOVAH,02H
INT21H
DECCX
JNZNEXT
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3.實(shí)驗(yàn)結(jié)果
2.將十進(jìn)制數(shù)的ASCII碼轉(zhuǎn)換為BCD碼
本實(shí)驗(yàn)要求將鍵盤(pán)輸入的一個(gè)五位十進(jìn)制數(shù)54321的ASCH碼存放入數(shù)據(jù)區(qū)中,轉(zhuǎn)換為
BCD碼后,并將轉(zhuǎn)換結(jié)果按位分別顯示于屏幕上。假設(shè)輸入的不是十進(jìn)制數(shù)的ASCII碼,
那么輸出"FF"。提示:一字節(jié)ASCII碼取其低四位即變?yōu)锽CD碼
1.實(shí)驗(yàn)流程圖
2.實(shí)驗(yàn)程序
DATASSEGMENT
BUFDB6
DB9
DB6DUP(?)
BUFEDB'FFS,
DATASENDS
CODESEGMENT
ASSUMEDS:DATAS,CS:CODE
START:MOVAX,DATAS
MOVDS,AX
MOVDXQFFSETBUF
MOVAHJO
INT2IH
MOVCH,5
MOVSI.DX
L2:MOVBLJSI+2]
INCSI
CMPBL39H
JALI
SUBBL.30H
ANDBL,OFH
MOVDH,4
MOVCL,4
;SHLALCL
ROLBL,CL
NEXT:SHLBL,1
JCONE
MOVDL,30H
JMPEXIT
ONE:MOVDL,31H
EXIT:MOVAH,2
INT21H
DECDH
JNZNEXT
DECCH
JNZL2
JMPL3
LI:MOVDX,OFFSETBUFE
MOVAH.9
INT21H
L3:MOVAH.4CH
INT21H
CODEENDS
ENDSTART
3.實(shí)驗(yàn)結(jié)果
三回漢」
09C:\Windows\system32\cmd.exe
54321
[=回漢
CDC:\Windows\system32\cmd.exe一一_
O1O1O1OOQO1100100001
請(qǐng)按任意鍵繼續(xù).?.
3.將十六進(jìn)制數(shù)的ASCII碼轉(zhuǎn)換為十進(jìn)制數(shù)
十六位二進(jìn)制數(shù)的值域?yàn)?-65535,最大可轉(zhuǎn)換為五位十進(jìn)制數(shù)。五位十進(jìn)制數(shù)可表示
為:
432
ND=D,X10+D3X10+D2X10+D1X10+Do
因此,將十六位二進(jìn)制數(shù)轉(zhuǎn)換為五位ASCII碼表示的十進(jìn)制數(shù),就是求D「D1,并將它們轉(zhuǎn)化為ASCII
碼。本實(shí)驗(yàn)要求將緩沖區(qū)中存放的OOOCII的ASCII碼轉(zhuǎn)換成十進(jìn)制數(shù),并將轉(zhuǎn)結(jié)果顯示在屏幕
1.實(shí)驗(yàn)流程圖
1
2.實(shí)驗(yàn)程序
DATASEGMENT
BUFDB5
DB9
DB5DUP(?)
HEXDB4DUP(?)
DECIDB5DUP(O);$'
SIDBU6JINZHI:$'
S2DB0AH,0DH:10JINZHI:$'
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:MOVAX,DATA
MOVDS,AX
LEADX,S1
MOVAH.9
1NT21H
LEADX,BUF
MOVAHJO
INT21H
MOVSL2
MOVDI,0
CHECK:MOVAL,ISI][BUF|
CMPAL.40H
JSNUM
CMPAL,47H
JSCAPITAL
SUBAL.57H
JMPSTORE
NUM:SUBAL,30H
JMPSTORE
CAPITAL:SUBAL,37H
JMPSTORE
STORE:MOVHEX[DI],AL
INCDI
INCSI
CMPDI,4
JNZCHECK
LEADX,S2
MOVAH,9
INT21H
MOVAX.WORDPTRHEX
SHLAL.4
ADDAH,AL
MOVCH,AH
MOVAX,WORDPTR2[HEX]
SHLAL,4
ADDAL,AH
MOVAH,CH
MOVSI.5
MOVBX,10
MOVDX,0
CMPAX,0
JNSCONV
NEGAX
PUSHAX
PUSHDX
MOVDL,2DH
MOVAH,2
INT21H
POPDX
POPAX
CONV:DECSI
DIVBX
ADDDX,30H
MOVDECIISI1.DL
XORDX,DX
CMPAX,0
JNZCONV
LEADX.DECI
MOVAH,9
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3.實(shí)驗(yàn)結(jié)果
3SC:\Windows\system32\cmd.exe
16JINZHI:7FB2
1OJINZHI:32690
請(qǐng)按任意鍵繼續(xù)..
4.BCD碼轉(zhuǎn)換為二進(jìn)制碼
本實(shí)驗(yàn)要求將四個(gè)二位十進(jìn)制數(shù)的BCD碼存放在某一內(nèi)存單元中,轉(zhuǎn)換出的二進(jìn)制數(shù)碼存入其后的內(nèi)
存單元中,轉(zhuǎn)換結(jié)束,送屏幕顯示。
1.實(shí)驗(yàn)流程圖
轉(zhuǎn)換完否?
1y
送價(jià)幕顯示
2.實(shí)驗(yàn)程序
DMASEGMENT
DASCDB3
DB9
DB3DUP(?)
SIDBOAH,OAH,ODH;IOJINZHIMA:$'
S2DB0AH,0DH:BCDMA:$'
S3DB0AH,0DH:2JINZHIMA:S
STODB8DUP(?)
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:MOVAX,DATA
MOVDS,AX
MOVDI,0
MOVSI.4
LOOPER:CALLWHOLE
DECSI
JNZLOOPER
JMPEXIT
WHOLE:LEADX,SI
MOVAH.9
INT2IH
LEADX,DASC
MOVAH,10
INT21H
LEADX.S2
MOVAH.9
INT21H
MOVAX,WORDPTR2[DASC]
SUBAX,3O3OH
SHLAL.4
ADDAL,AH
MOV[DI][STO],AL
MOVCH.2
MOVCL,4
PRE1:MOVDX,30H
ROLAL,I
JNCDISP1
ADDDX,01H
DISP1:PUSHAX
MOVAH,02
INT21H
POPAX
DECCL
JNZPRE1
PUSHAX
MOVDL,20H
MOVAH,2
INT2IH
POPAX
DECCH
MOVCL,4
JNZPRE1
LEADX.S3
MOVAH,9
INT21H
MOVAL,[DI][STO]
MOVBL,AL
ANDBL,0FH
SHRAL.4
MOVCL,1()
MULCL
ADDAL,BL
INCDI
MOV[DI][STO],AL
INCDI
MOVCX,8
PRE2:MOVDX,30H
ROLAL,I
JNCDISP2
ADDDX,()1H
DISP2:PUSHAX
MOVAH.02
INT21H
POPAX
LOOPPRE2
RET
EXIT:MOVAH,4CH
INT21H
CODEENDS
ENDSTART
33C:\Windows\system32\cmd.exe=1回漢
10JINZHIMfi:56三
BCDMA:01010110
2JINZHIHA:00111000
實(shí)驗(yàn)四運(yùn)算類程序?qū)嶒?yàn)
1.二進(jìn)制雙精度加法運(yùn)算
本實(shí)驗(yàn)要求計(jì)算x+y=z,將結(jié)果z輸出到屏幕,其中x=001565a0h,y=0021b79eh.
1.實(shí)驗(yàn)流程圖
2.實(shí)驗(yàn)程序
DATASEGMENT
XDD421C65A0H
YDD3C41B69BH
SDB'X+Y=$'
SUMDB4DUP(()(
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:MOVAX,DATA
MOVDS,AX
MOVAX.WORDPTRX
MOVBX,WORDPTRY
ADDAX,BX
MOVWORDPTRSUM,AX
MOVAX,WORDPTR2[X[
MOVBX.WORDPTR2[Y[
ADCAX,BX
MOVWORDPTR2[SUM],AX
LEADX,S
MOVAH.9
INT21H
MOVCX,4
MOVSI,3
CHECK:MOVAL,SUM[SI[
MOVAH.AL
SHRAL,4
CMPAL.OAH
JSDISPI
ADDAL,07H
DISPI:ADDAL,30H
MOVDL,AL
PUSHAX
MOVAH.02H
INT21H
POPAX
ANDAH,0FH
CMPAHQAH
JSDISP2
ADDAH,07H
DISP2:ADDAH,30H
MOVDL,AH
MOVAH,02H
INT21H
DECSI
LOOPCHECK
EXIT:MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3.實(shí)驗(yàn)結(jié)果
03C:\Windows\system32\cmd.exe回漢
X+Y=7E5E1C3B
請(qǐng)按任意鍵繼續(xù)..?
(2)減法程序
1.實(shí)驗(yàn)流程圖
2.實(shí)驗(yàn)程序
DATASEGMENT
XDW0400H
YDWO1O2H
SDB'Z*Y=$'
ZDW2DVP(O)
DATAENDS
CODESEGMENT
ASSUMECS:COI)E,DS:DATA
START:MOVAX,DATA
MOVDS,AX
LEADX,S
MOVAH,9
INT21H
MOVAX,WORDPTRX
MOVBX,WORDPTRY
SL1RAl.,El.
AAS
SUBAH,BH
AAS
MOVZ,AX
ADDAX,3O3OH
MOVBX,AX
MOVDL,3OH
MOVAH,2
TNT2111
MOVHL,BH
MOVAH,2
1NT21H
MOVI)L,30H
MOVAH,2
INT21H
MOVDL,BL
MOVAH,2
INT21H
EXIT:MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3.實(shí)驗(yàn)結(jié)果
I3BC:\Windows\system32\cmd.exe
2=X-Y=0208
請(qǐng)按任意腱繼續(xù)...
實(shí)驗(yàn)五分支程序設(shè)計(jì)實(shí)驗(yàn)
實(shí)驗(yàn)內(nèi)容:實(shí)驗(yàn)可以使用BH,BL作為暫存現(xiàn)行的最大值和最小值,且在程序的初始,
將BH和BL初始化為首字節(jié)的內(nèi)容,然后進(jìn)入循環(huán)操作。在循環(huán)操作中,依次從字節(jié)序列中
逐個(gè)取出一個(gè)字節(jié)的內(nèi)容與BH,BL進(jìn)行比擬,假設(shè)取出的字節(jié)內(nèi)容比BH的內(nèi)容大或比BL
中的內(nèi)容小,那么修改之。當(dāng)循環(huán)結(jié)束操作時(shí),將BH,BL分別送屏幕顯示。
1.實(shí)驗(yàn)流程圖
cx=字節(jié)個(gè)數(shù)
CX=€?
結(jié)束
2.實(shí)驗(yàn)程序
DATASEGMENT
BUFDB'Themaxnumber:$'
CUFDB0AH,0DH;Thcmininumberf
DUFDB0D9H,07H.8BH,0C5H,0EBH,04H,9DH,0F9H
DATAENDS
CODESEGMENT
ASSUMEDS:DATA,CS:CODE
START:MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETBUF
MOVAH,9
INT21H
MOVSI.OFFSETDUF
MOVCH,7
MOV
MOVBLJSI|
LI:INCSI
MOVALJSI]
CMPAL,BH
JBL2
MOVBH,AL
L2:CMPAL,BL
JAL3
MOVBL,AL
L3:DECCH
JNZLI
;MOVBH.0B9H
XIANSHI:MOVAL,BH;顯示BH和BL
MOVCL,4
SHRAL.CL
CMPAL,0AH
JBCl
ADDAL,07H
Cl:ADDAL,30H
MOVDUAL
MOVAH,2
INT2IH
MOVAL,BH
ANDAL,0FH
CMPAL,0AH
JBC2
ADDAL,07H
C2:ADDAL,30H
MOVDL,AL
MOVAH,2
INT21H
MOVDX.OFFSETCUF
MOVAH,9
INT21H
;MOVBL.0B9H
MOVAL,BL
MOVCL,4
SHRAL.CL
CMPAL,0AH
JBC3
ADDAL,07H
C3:ADDAL,30H
MOVDUAL
MOVAH,2
INT2IH
MOVAL,BL
ANDAL,0FH
CMPAL,0AH
JBC4
ADDAL,07H
C4:ADDAL,30H
MOVDL,AL
MOVAH.2
INT21H
MOVAH.4CH
INT21H
CODEENDS
ENDSTART
3.實(shí)驗(yàn)結(jié)果
0C:\Windows\system32\cmd.exe=|回|漢]
Themaxnumber:F9▲
Themininumber:04
請(qǐng)按任意鍵繼續(xù)...
實(shí)驗(yàn)六循環(huán)程序設(shè)計(jì)實(shí)驗(yàn)
實(shí)驗(yàn)內(nèi)容:本實(shí)驗(yàn)要求通過(guò)求某數(shù)據(jù)區(qū)內(nèi)負(fù)數(shù)的個(gè)數(shù)來(lái)表現(xiàn)循環(huán)程序的結(jié)構(gòu)形式。要求
實(shí)驗(yàn)程序在數(shù)據(jù)區(qū)中存放一組數(shù)據(jù),為統(tǒng)計(jì)負(fù)數(shù)的個(gè)數(shù),逐個(gè)判斷區(qū)內(nèi)的數(shù)據(jù),然后將所
有數(shù)據(jù)中但凡符號(hào)位為1的數(shù)據(jù)的個(gè)數(shù)累加起來(lái),即得到區(qū)內(nèi)所包含負(fù)數(shù)的個(gè)數(shù)
1.實(shí)驗(yàn)流程圖
2.實(shí)驗(yàn)程序
DATASSEGMENT
BUFDB'Thenumberofnegtive:$*
CUFDB12H,88H,82H,89H,33H,90H,01HJ0H,0BDH,01H
DATASENDS
CODESSEGMENT
ASSUMECS:CODES,DS:DATAS
START:MOVAX,DATAS
MOVDS,AX
MOVDXQFFSETBUF
MOVAH,9
INT2IH
MOVBL,0
MOVCXJO
LEASI,CUF
L2:MOVAL.[SI]
INCSI
ANDAL,80H
JZLI
INCBL
L1:DECCX
JNZL2
ADDBL,30H
MOVDL,BL
MOVAH,2
INT21H
MOVAX,4C0()H
INT21H
CODESENDS
ENDSTART
3.實(shí)驗(yàn)結(jié)果
QBC:\Windows\system32\cmd.exe*Im一回
Thenumberofnegtiu?:5
請(qǐng)按任意鍵繼續(xù)...
接口實(shí)驗(yàn)
實(shí)驗(yàn)一8259中斷控制器應(yīng)用實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/p>
1.學(xué)習(xí)可編程中斷控制器8259的工作原理。
2.掌握可編程中斷控制器8259的應(yīng)用編程方法。
二、實(shí)驗(yàn)內(nèi)容
1.單中斷實(shí)驗(yàn)。利用系統(tǒng)總線上中斷請(qǐng)求信號(hào)INTR,設(shè)計(jì)一個(gè)單中斷應(yīng)用。使用單次脈
沖模擬中斷產(chǎn)生。編寫(xiě)中斷處理程序,在顯示器屏幕上顯示一個(gè)字符。
單
系
次
統(tǒng)
執(zhí)
總
沖
線
單
元
實(shí)驗(yàn)步驟如下:
①實(shí)驗(yàn)接線圖如圖2-1所示,按圖接線。
②運(yùn)行Tdpit集成操作軟件,調(diào)用程序代碼(T8259-1.ASM),填寫(xiě)程序代碼中的空缺處,
編譯、鏈接。
(程序源碼路徑:C:\TangDu\PitPP\ASM\)
③使用運(yùn)行命令運(yùn)行程序,重復(fù)按單次脈沖開(kāi)關(guān)KK1+,顯示屏?xí)@示字符“9",說(shuō)明
響應(yīng)了中斷。
2.擴(kuò)展中斷源查詢方式應(yīng)用實(shí)驗(yàn)。利用實(shí)驗(yàn)平臺(tái)上8259控制器對(duì)系統(tǒng)總線上的中斷線
INTR進(jìn)行擴(kuò)展。編寫(xiě)程序?qū)?259控制器的IRO和IRI中斷請(qǐng)求進(jìn)行處理。
實(shí)驗(yàn)步驟如下:
①實(shí)驗(yàn)接線圖如圖2-3所示,按圖接線。
②運(yùn)行Tdpit集成操作軟件,調(diào)用程序代碼(T8259-2.ASM),填寫(xiě)程序代碼中的空缺處,
編譯、鏈接。
(程序源碼路徑:C:\TangDu\PitPP\ASM\)
③使用運(yùn)行命令運(yùn)行程序,按動(dòng)KK1+、KK2+按鍵,觀察中斷是否產(chǎn)生。
三、實(shí)驗(yàn)所用儀表及設(shè)備
1.PC機(jī)一臺(tái)。
2.TD-PIT++實(shí)驗(yàn)系統(tǒng)一套。
四.實(shí)驗(yàn)代碼
1.單中斷實(shí)驗(yàn)。
INTRJVADDEQU01C8H;INTR對(duì)應(yīng)的中斷矢量地址
INTR_OCW1EQU0A1H;INTR對(duì)應(yīng)PC機(jī)內(nèi)部8259的0CW1地址
INTR.0CW2EQUOAOH;INTR對(duì)應(yīng)PC機(jī)內(nèi)部8259的0CW2地址
INTRIMEQUOFBH;INTR對(duì)應(yīng)的中斷屏蔽字
STACK1SEGMENTSTACK
DW256DUP(?)
STACK1ENDS
DATASEGMENT
MESDB'Pressanykeytoexit!',0AH,0DH,0AH,0DH,$
CS.BAKDW?;保存INTR原中斷處理程序入口段地址的變量
IP-BAKDW?;保存INTR原中斷處理程序入口偏移地址的變量
IM_BAKDB?;保存INTR原中斷屏蔽字的變量
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMES;顯示退出提示
MOVAH,09H
INT2IH
CLI
MOVAX,0000H;替換INTR的中斷矢量
MOVES,AX
MOVDIJNTRJVADD
MOVAX,ES:[DI]
MOVIP_BAK,AX;保存INTR原中斷處理程序人口偏移地址
MOVAX,OFFSETMYISR
MOVES:[DI],AX;設(shè)置當(dāng)前中斷處理程序入口偏移地址
ADDDI,2
MOVAX,ES:[DI]
MOVCS_BAK,AX;保存INTR原中斷處理程序入口段地址
MOVAX,SEGMYISR
MOVES:[DI],AX;設(shè)置當(dāng)前中斷處理程序入口段地址
MOVDX,INTR_OCW1;沒(méi)置中斷屏蔽存放器,翻開(kāi)INTR屏蔽位
INAL,DX
MOVIM_BAK,AL;保存INTR原中斷屏蔽字
ANDAL,INTR」M
OUTDX,AL
STI
WAIT1:MOVAH,1;判斷是否有按鍵按下
INT16H
JZWAIT1;無(wú)按鍵那么跳回繼續(xù)等待,有那么退出
QUIT:CLI
MOVAX,0000H;恢復(fù)INTR原中斷矢量
MOVES,AX
MOVDIJNTRJVADD
MOVAX,IP_BAK「灰復(fù)INTR原中斷處理程序人口偏移地址
MOVES:(DIJ,AX
ADDDI,2
MOVAX,CS_BAK;恢復(fù)INTR原中斷處理程序入口段地址
MOVES:[DI],AX
MOVDXJNTR_OCW1;恢復(fù)INTR原中斷屏蔽存放器的屏蔽字
MOVAL,IM_BAK
OUTDX,AL
STI
MOVAX,4C00H;返回至UDOS
INT21H
MYISRPROCNEAR;中斷處理程序MYISR
PUSHAX
MOVDL,39H;輸出字符9
MOVAH,2
INT21H
MOVDL,ODH;輸出字符回車
MOVAH,2
INT21H
MOVDL,0AH;輸出字符換行
MOVAH,2
INT21H
OVER:MOVDX,INTR_OCW2;向PC機(jī)內(nèi)部8259發(fā)送中斷結(jié)束命令
MOVAL,20H
OUTDX,AL
MOVAL,20H
OUT20H,AL
POPAX
IRET
MYISRENDP
CODEENDS
ENDSTART
2.擴(kuò)展中斷源查詢方式應(yīng)用實(shí)驗(yàn)。
INTR_IVADDEQU01C8H;INTR對(duì)應(yīng)的中斷矢量地址
INTR_OCW1EQU0A1H;INTR對(duì)應(yīng)PC機(jī)內(nèi)部8259的0CW1地址
INTR_OCW2EQU0A0H;INTR對(duì)應(yīng)PC機(jī)內(nèi)部8259的0CW2地址
INTRIMEQU0FBH;INTR對(duì)應(yīng)的中斷屏蔽字
IOYOEQU30(X)H;片選IOYO對(duì)應(yīng)的端口始地址
MY8259JCW1EQUIOYO+OOH;實(shí)驗(yàn)系統(tǒng)中8259的ICW1端口地址
MY8259JCW2EQUIOY0+04H;實(shí)驗(yàn)系統(tǒng)中8259的ICW2端口地址
MY8259JCW3EQUIOY0+04H;實(shí)驗(yàn)系統(tǒng)中8259的ICW3端口地址
MY8259」CW4EQUIOY0+04H;實(shí)驗(yàn)系統(tǒng)中8259的ICW4端口地址
MY8259_OCW1EQUIOY0+04H;實(shí)驗(yàn)系統(tǒng)中8259的OCW1端口地址
MY8259_OCW2EQUIOYO+OOH;實(shí)驗(yàn)系統(tǒng)中8259的OCW2端口地址
MY8259_OCW3EQUIOYO+OOH;實(shí)驗(yàn)系統(tǒng)中8259的OCW3端口地址
STACK!SEGMENTSTACK
DW256DUP(?)
STACK1ENDS
DATASEGMENT
MESDB'Pressanykeytoexit!',0AH,0DH,0AH,0DH;$'
CS-BAKDW?;保存INTR原中斷處理程序入口段地址的變量
IP_BAKDW?;保存INTR原中斷處理程序人口偏移地址的變量
IM_BAKDB?;保存INTR原中斷屏蔽字的變量
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:MOVAX,DATA
MOVDS,AX
MOVDX.OFFSETMES;顯示退出提示
MOVAH,09H
INT2IH
CLI
MOVAX,0000H;替換INTR的中斷矢量
MOVES,AX
MOVDIJNTRJVADD
MOVAX,ES:[DI]
MOVIP_BAK,AX;保存INTR原中斷處理程序入口偏移地址
MOVAX,OFFSETMYISR
MOVES:1DI],AX設(shè)置當(dāng)前中斷處理程序入口偏移地址
ADDDI,2
MOVAX,ES:|DI)
MOVCS_BAK,AX;保存INTR原中斷處理程序入口段地址
MOVAX,SEGMYISR
MOVES:[DI],AX設(shè)置當(dāng)前中斷處理程序入口段地址
MOVDX,INTR_OCW1;設(shè)置中斷屏蔽存放器,翻開(kāi)INTR的屏蔽位
INAL,DX
MOVIM_BAK,AL;保存INTR原中斷屏蔽字
ANDALJNTRJM
OUTDX,AL
MOVDX.MY8259JCWI;初始化實(shí)驗(yàn)系統(tǒng)中8259的ICW1
MOVALJ3H;邊沿觸發(fā)、單片8259、需要ICW4
OUTDX,AL
MOVDX,MY8259_ICW2;初始化實(shí)驗(yàn)系統(tǒng)中8259的ICW2
MOVAL,08H
OUTDX,AL
MOVDX,MY8259」CW4;初始化實(shí)驗(yàn)系統(tǒng)中8259的ICW4
MOVAL,0IH俳自動(dòng)結(jié)束EOI
OUTDX,AL
MOVDX,MY8259_OCW3;向8259的OCW3發(fā)送讀取IRR命令
MOVAL,OAH
OUTDX,AL
MOVDX,MY8259_OCW1;初始化實(shí)驗(yàn)系統(tǒng)中8259的0CW1
MOVAL,0FCH;翻開(kāi)IR0和IR1的屏蔽位
OUTDX,AL
STI
WAIT1:MOVAH,1;判斷是否有按鍵按卜
INTI6H
JZWAIT1;無(wú)按鍵那么跳回繼續(xù)等待,有那么退出
QUIT:CLI
MOVAX,0000H;恢復(fù)INTR原中斷矢量
MOVES,AX
MOVDIJNTRJVADD
MOVAX,IP_BAK「恢復(fù)INTR原中斷處理程序入口偏移地址
MOVES:[DI],AX
ADDDI,2
MOVAX,CS_BAK;恢復(fù)INTR原中斷處理程序入口段地址
MOVES:(DILAX
MOVDXJNTR_OCW1;恢復(fù)INTR原中斷屏蔽存放器的屏蔽字
MOVAL,IM_BAK
OUTDX,AL
STI
MOVAX,4C00H;返回到DOS
INT21H
MYISRPROCNEAR;中斷處理程序MYISR
PUSHAX
QUERY:MOVDX,MY8259_OCW3;向8259的OCW3發(fā)送讀取IRR命令
INAL,DX;讀出IRR存放器值
ANDAL,01H
CMPAUOIH
JEIROISR;假設(shè)為IR0請(qǐng)求,跳到IR0處理程序
JNEIRIISR;假設(shè)為IRI請(qǐng)求,跳到IR1處理程序
JMPOVER
IROISR:MOVAL,30H;IR0處理,顯示字符串STR0
MOVAH,OEH
INTIOH
MOVAL,20H
INTIOH
JMPOVER
IR1ISR:MOVAL,31H;IR1處理,顯示字符串STR1
MOVAH,0EH
INTiOH
MOVAL,20H
INTIOH
JMPOVER
OVER:MOVDX,INTR_OCW2;向PC機(jī)內(nèi)部8259發(fā)送中斷結(jié)束命令
MOVAL,20H
OUTDX,AL
MOVAL,20H
OUT20H,AL
POPAX
1RET
MYISRENDP
CODEENDS
ENDSTART
五.實(shí)驗(yàn)現(xiàn)象及分析
1.單中斷實(shí)驗(yàn)。
按單次脈沖開(kāi)關(guān)KK1+,顯示屏?xí)@示字符“9"
,|g|x|
2.擴(kuò)展中斷源查詢方式應(yīng)用實(shí)驗(yàn)。
注:與03H與,和與01H與時(shí)的優(yōu)先級(jí)不一樣。
和03h與,同時(shí)按應(yīng)當(dāng)出1;
和Olh與,同時(shí)按應(yīng)當(dāng)出0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026江蘇南京鼓樓醫(yī)院招聘衛(wèi)技人員340人筆試重點(diǎn)題庫(kù)及答案解析
- 天水市2026屆協(xié)議培養(yǎng)師范畢業(yè)生 雙向選擇簽約活動(dòng)(141人)筆試重點(diǎn)題庫(kù)及答案解析
- 2025廣西百色平果市發(fā)展和改革局城鎮(zhèn)公益性崗位人員招聘1人考試重點(diǎn)試題及答案解析
- 2026年金融咨詢服務(wù)協(xié)議
- 2025年水產(chǎn)養(yǎng)殖飼料配方推廣合作合同協(xié)議
- 2025福建省程農(nóng)投資集團(tuán)有限公司招聘人員11人筆試參考題庫(kù)附帶答案詳解(3卷合一版)
- 2025湖北省農(nóng)業(yè)信貸融資擔(dān)保有限公司部分崗位面向社會(huì)公開(kāi)招聘7人筆試參考題庫(kù)附帶答案詳解(3卷)
- 2025津藥子弟兵預(yù)備隊(duì)提提提前招募啦實(shí)習(xí)生筆試參考題庫(kù)附帶答案詳解(3卷合一版)
- 2025江西仁安實(shí)業(yè)有限公司招聘網(wǎng)絡(luò)安全工程師1人筆試參考題庫(kù)附帶答案詳解(3卷)
- 2025廣東珠海市立潮人力資源服務(wù)有限公司公開(kāi)招聘3名工作人員筆試參考題庫(kù)附帶答案詳解(3卷合一版)
- 《學(xué)前教育學(xué)》課程教學(xué)大綱
- 2024年廣東省深圳市羅湖區(qū)高一上學(xué)期期末化學(xué)試題及答案
- DB11∕T 1678-2019 城市軌道交通廣告設(shè)施設(shè)置規(guī)范
- 2024新版(北京版)三年級(jí)英語(yǔ)上冊(cè)單詞帶音標(biāo)
- 松下-GF2-相機(jī)說(shuō)明書(shū)
- 工程維保及售后服務(wù)方案
- 醫(yī)院科室主任的工作總結(jié)
- 附表:醫(yī)療美容主診醫(yī)師申請(qǐng)表
- 畢節(jié)市織金縣化起鎮(zhèn)污水處理工程環(huán)評(píng)報(bào)告
- 黑布林英語(yǔ)閱讀初一年級(jí)16《柳林風(fēng)聲》譯文和答案
- 河流動(dòng)力學(xué)-同濟(jì)大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
評(píng)論
0/150
提交評(píng)論