![微機(jī)原理實(shí)驗(yàn)兩份_第1頁(yè)](http://file4.renrendoc.com/view4/M02/11/00/wKhkGGYX3HeAbz-MAABTha6f1zA215.jpg)
![微機(jī)原理實(shí)驗(yàn)兩份_第2頁(yè)](http://file4.renrendoc.com/view4/M02/11/00/wKhkGGYX3HeAbz-MAABTha6f1zA2152.jpg)
![微機(jī)原理實(shí)驗(yàn)兩份_第3頁(yè)](http://file4.renrendoc.com/view4/M02/11/00/wKhkGGYX3HeAbz-MAABTha6f1zA2153.jpg)
![微機(jī)原理實(shí)驗(yàn)兩份_第4頁(yè)](http://file4.renrendoc.com/view4/M02/11/00/wKhkGGYX3HeAbz-MAABTha6f1zA2154.jpg)
![微機(jī)原理實(shí)驗(yàn)兩份_第5頁(yè)](http://file4.renrendoc.com/view4/M02/11/00/wKhkGGYX3HeAbz-MAABTha6f1zA2155.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
完美.格式.編輯專業(yè).資料.整理微型計(jì)算機(jī)原理實(shí)驗(yàn)報(bào)告 學(xué)號(hào) 姓名 班級(jí)測(cè)控實(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)程序DATASEGMENTMESDB'Showaashex:',0AH,0DH,'$'SDDB'a'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESMOVAH,09HINT21HMOVDI,OFFSETSDMOVAL,DS:[DI]ANDAL,0F0HSHRAL,4CMPAL,0AHJBC2ADDAL,07HC2:ADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAL,DS:[DI]ANDAL,0FHCMPAL,0AHJBC3ADDAL,07HC3:ADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAX,4C00HINT21HCODEENDSENDSTART實(shí)驗(yàn)二數(shù)據(jù)傳送實(shí)驗(yàn)三、實(shí)驗(yàn)內(nèi)容將數(shù)據(jù)段中的一個(gè)字符串傳送到附加段中,并輸出附加段中的目標(biāo)字符串到屏幕上試驗(yàn)程序DATASEGMENTMSRDB"HELLO,WORLD!$"LENEQU$-MSRDDATAENDSEXDASEGMENTMSDDBLENDUP(?)EXDAENDSMYSTACKSEGMENTSTACKDW20DUP(?)MYSTACKENDSCODESEGMENTASSUMECS:CODE,DS:DDATA,ES:EXDASTART:MOVAX,DDATAMOVDS,AXMOVAX,EXDAMOVES,AXMOVSI,OFFSETMSRMOVDI,OFFSETMSDMOVCX,LENNEXT:MOVAL,[SI]MOVES:[DI],ALINCSIINCDIDECCXJNZNEXTPUSHESPOPDSMOVDX,OFFSETMSDMOVAH,9INT21HMOVAX,4C00HINT21HCODEENDSENDSTARTMOVBX,0MOVCX,LENNEXT:MOVAL,MSR[BX]MOVES:MSD[BX],ALINCBXLOOPNEXT2.實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)三數(shù)碼轉(zhuǎn)換程序?qū)嶒?yàn)將ASCII碼表示的十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)流程圖2.試驗(yàn)程序DATASSEGMENTNUMBERDB'00012'DATASENDSCODESEGMENTASSUMECS:CODE,DS:DATASSTART:MOVAX,DATASMOVDS,AXMOVCX,4MOVSI,OFFSETNUMBERMOVAL,[SI]SUBAL,30HMOVAH,00HMOVBL,10L1:MULBLADDAL,[SI+1]SUBAL,30HINCSIDECCXJNZL1MOVCX,8MOVBLNEXT:SHLBL,1JCONEMOVDL,30HJMPEXITONE:MOVDL,31HEXIT:MOVAH,02HINT21HDECCXJNZNEXTMOVAH,4CHINT21HCODEENDSENDSTART3.實(shí)驗(yàn)結(jié)果將十進(jìn)制數(shù)的ASCII碼轉(zhuǎn)換為BCD碼本實(shí)驗(yàn)要求將鍵盤(pán)輸入的一個(gè)五位十進(jìn)制數(shù)54321的ASCII碼存放入數(shù)據(jù)區(qū)中,轉(zhuǎn)換為BCD碼后,并將轉(zhuǎn)換結(jié)果按位分別顯示于屏幕上。若輸入的不是十進(jìn)制數(shù)的ASCII碼,則輸出“FF”。提示:一字節(jié)ASCII碼取其低四位即變?yōu)锽CD碼實(shí)驗(yàn)流程圖2.實(shí)驗(yàn)程序DATASSEGMENTBUFDB6DB?DB6DUP(?)BUFEDB'FF$'DATASENDSCODESEGMENTASSUMEDS:DATAS,CS:CODESTART:MOVAX,DATASMOVDS,AXMOVDX,OFFSETBUFMOVAH,10INT21HMOVCH,5MOVSI,DXL2:MOVBL,[SI+2]INCSICMPBL,39HJAL1SUBBL,30HANDBL,0FHMOVDH,4MOVCL,4;SHLAL,CLROLBL,CLNEXT:SHLBL,1JCONEMOVDL,30HJMPEXITONE:MOVDL,31HEXIT:MOVAH,2INT21HDECDHJNZNEXTDECCHJNZL2JMPL3L1:MOVDX,OFFSETBUFEMOVAH,9INT21HL3:MOVAH,4CHINT21HCODEENDSENDSTART3.實(shí)驗(yàn)結(jié)果3.將十六進(jìn)制數(shù)的ASCII碼轉(zhuǎn)換為十進(jìn)制數(shù)十六位二進(jìn)制數(shù)的值域?yàn)?-65535,最大可轉(zhuǎn)換為五位十進(jìn)制數(shù)。五位十進(jìn)制數(shù)可表示為:ND=D4×104+D3×103+D2×102+D1×10+D0因此,將十六位二進(jìn)制數(shù)轉(zhuǎn)換為五位ASCII碼表示的十進(jìn)制數(shù),就是求D1-D4,并將它們轉(zhuǎn)化為ASCII碼。本實(shí)驗(yàn)要求將緩沖區(qū)中存放的000CH的ASCII碼轉(zhuǎn)換成十進(jìn)制數(shù),并將轉(zhuǎn)結(jié)果顯示在屏幕實(shí)驗(yàn)流程圖實(shí)驗(yàn)程序DATASEGMENTBUFDB5DB?DB5DUP(?)HEXDB4DUP(?)DECIDB5DUP(0),'$'S1DB'16JINZHI:$'S2DB0AH,0DH,'10JINZHI:$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,S1MOVAH,9INT21HLEADX,BUFMOVAH,10INT21HMOVSI,2MOVDI,0CHECK:MOVAL,[SI][BUF]CMPAL,40HJSNUMCMPAL,47HJSCAPITALSUBAL,57HJMPSTORENUM:SUBAL,30HJMPSTORECAPITAL:SUBAL,37HJMPSTORESTORE:MOVHEX[DI],ALINCDIINCSICMPDI,4JNZCHECKLEADX,S2MOVAH,9INT21HMOVAX,WORDPTRHEXSHLAL,4ADDAH,ALMOVCH,AHMOVAX,WORDPTR2[HEX]SHLAL,4ADDAL,AHMOVAH,CHMOVSI,5MOVBX,10MOVDX,0CMPAX,0JNSCONVNEGAXPUSHAXPUSHDXMOVDL,2DHMOVAH,2INT21HPOPDXPOPAXCONV:DECSIDIVBXADDDX,30HMOVDECI[SI],DLXORDX,DXCMPAX,0JNZCONVLEADX,DECIMOVAH,9INT21HMOVAH,4CHINT21HCODEENDSENDSTART3.實(shí)驗(yàn)結(jié)果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)流程圖2.實(shí)驗(yàn)程序DATASEGMENTDASCDB3DB?DB3DUP(?)S1DB0AH,0AH,0DH,'10JINZHIMA:$'S2DB0AH,0DH,'BCDMA:$'S3DB0AH,0DH,'2JINZHIMA:$'STODB8DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDI,0MOVSI,4LOOPER:CALLWHOLEDECSIJNZLOOPERJMPEXITWHOLE:LEADX,S1MOVAH,9INT21HLEADX,DASCMOVAH,10INT21HLEADX,S2MOVAH,9INT21HMOVAX,WORDPTR2[DASC]SUBAX,3030HSHLAL,4ADDAL,AHMOV[DI][STO],ALMOVCH,2MOVCL,4PRE1:MOVDX,30HROLAL,1JNCDISP1ADDDX,01HDISP1:PUSHAXMOVAH,02INT21HPOPAXDECCLJNZPRE1PUSHAXMOVDL,20HMOVAH,2INT21HPOPAXDECCHMOVCL,4JNZPRE1LEADX,S3MOVAH,9INT21HMOVAL,[DI][STO]MOVBLANDBL,0FHSHRAL,4MOVCL,10MULCLADDAL,BLINCDIMOV[DI][STO],ALINCDIMOVCX,8PRE2:MOVDX,30HROLAL,1JNCDISP2ADDDX,01HDISP2:PUSHAXMOVAH,02INT21HPOPAXLOOPPRE2RETEXIT:MOVAH,4CHINT21HCODEENDSENDSTART實(shí)驗(yàn)四運(yùn)算類程序?qū)嶒?yàn)二進(jìn)制雙精度加法運(yùn)算本實(shí)驗(yàn)要求計(jì)算x+y=z,將結(jié)果z輸出到屏幕,其中x=001565a0h,y=0021b79eh.實(shí)驗(yàn)流程圖2.實(shí)驗(yàn)程序DATASEGMENTXDD421C65AYDD3C41B69BHSDB'X+Y=$'SUMDB4DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,WORDPTRXMOVBX,WORDPTRYADDAX,BXMOVWORDPTRSUM,AXMOVAX,WORDPTR2[X]MOVBX,WORDPTR2[Y]ADCAX,BXMOVWORDPTR2[SUM],AXLEADX,SMOVAH,9INT21HMOVCX,4MOVSI,3CHECK:MOVAL,SUM[SI]MOVAH,ALSHRAL,4CMPAL,0AHJSDISP1ADDAL,07HDISP1:ADDAL,30HMOVDL,ALPUSHAXMOVAH,02HINT21HPOPAXANDAH,0FHCMPAH,0AHJSDISP2ADDAH,07HDISP2:ADDAH,30HMOVDL,AHMOVAH,02HINT21HDECSILOOPCHECKEXIT:MOVAH,4CHINT21HCODEENDSENDSTART3.實(shí)驗(yàn)結(jié)果(2)減法程序1.實(shí)驗(yàn)流程圖2.實(shí)驗(yàn)程序DATASEGMENTXDW0400HYDW0102HSDB'Z=X-Y=$'ZDW2DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,SMOVAH,9INT21HMOVAX,WORDPTRXMOVBX,WORDPTRYSUBAL,BLAASSUBAH,BHAASMOVZ,AXADDAX,3030HMOVBX,AXMOVDL,30HMOVAH,2INT21HMOVDL,BHMOVAH,2INT21HMOVDL,30HMOVAH,2INT21HMOVDL,BLMOVAH,2INT21HEXIT:MOVAH,4CHINT21HCODEENDSENDSTART3.實(shí)驗(yàn)結(jié)果實(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)行比較,若取出的字節(jié)內(nèi)容比BH的內(nèi)容大或比BL中的內(nèi)容小,則修改之。當(dāng)循環(huán)結(jié)束操作時(shí),將BH,BL分別送屏幕顯示。實(shí)驗(yàn)流程圖2.實(shí)驗(yàn)程序DATASEGMENTBUFDB'Themaxnumber:$'CUFDB0AH,0DH,'Themininumber:$'DUFDB0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9HDATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETBUFMOVAH,9INT21HMOVSI,OFFSETDUFMOVCH,7MOVBH,[SI]MOVBL,[SI]L1:INCSIMOVAL,[SI]CMPAL,BHJBL2MOVBH,ALL2:CMPAL,BLJAL3MOVBLL3:DECCHJNZL1;MOVBH,0B9HXIANSHI:MOVAL,BH;顯示BH和BLMOVCL,4SHRAL,CLCMPAL,0AHJBC1ADDAL,07HC1:ADDAL,30HMOVDL,ALMOVAH,2INT21HMOVAL,BHANDAL,0FHCMPAL,0AHJBC2ADDAL,07HC2:ADDAL,30HMOVDL,ALMOVAH,2INT21HMOVDX,OFFSETCUFMOVAH,9INT21H;MOVBL,0B9HMOVAL,BLMOVCL,4SHRAL,CLCMPAL,0AHJBC3ADDAL,07HC3:ADDAL,30HMOVDL,ALMOVAH,2INT21HMOVAL,BLANDAL,0FHCMPAL,0AHJBC4ADDAL,07HC4:ADDAL,30HMOVDL,ALMOVAH,2INT21HMOVAH,4CHINT21HCODEENDSENDSTART3.實(shí)驗(yàn)結(jié)果實(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ù)實(shí)驗(yàn)流程圖2.實(shí)驗(yàn)程序DATASSEGMENTBUFDB'Thenumberofnegtive:$'CUFDB12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01HDATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXMOVDX,OFFSETBUFMOVAH,9INT21HMOVBL,0MOVCX,10LEASI,CUFL2:MOVAL,[SI]INCSIANDAL,80HJZL1INCBLL1:DECCXJNZL2ADDBL,30HMOVDL,BLMOVAH,2INT21HMOVAX,4C00HINT21HCODESENDSENDSTART3.實(shí)驗(yàn)結(jié)果接口實(shí)驗(yàn)實(shí)驗(yàn)一8259中斷控制器應(yīng)用實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?.學(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è)字符。實(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.?dāng)U展中斷源查詢方式應(yīng)用實(shí)驗(yàn)。利用實(shí)驗(yàn)平臺(tái)上8259控制器對(duì)系統(tǒng)總線上的中斷線INTR進(jìn)行擴(kuò)展。編寫(xiě)程序?qū)?259控制器的IR0和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)。INTR_IVADDEQU01C8H;INTR對(duì)應(yīng)的中斷矢量地址INTR_OCW1EQU0A1H;INTR對(duì)應(yīng)PC機(jī)內(nèi)部8259的OCW1地址INTR_OCW2EQU0A0H;INTR對(duì)應(yīng)PC機(jī)內(nèi)部8259的OCW2地址INTR_IMEQU0FBH;INTR對(duì)應(yīng)的中斷屏蔽字STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTMESDB'Pressanykeytoexit!',0AH,0DH,0AH,0DH,'$'CS_BAKDW?;保存INTR原中斷處理程序入口段地址的變量IP_BAKDW?;保存INTR原中斷處理程序入口偏移地址的變量IM_BAKDB?;保存INTR原中斷屏蔽字的變量DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMES;顯示退出提示 MOVAH,09H INT21H CLIMOVAX,0000H;替換INTR的中斷矢量MOVES,AXMOVDI,INTR_IVADDMOVAX,ES:[DI]MOVIP_BAK,AX;保存INTR原中斷處理程序入口偏移地址MOVAX,OFFSETMYISRMOVES:[DI],AX;設(shè)置當(dāng)前中斷處理程序入口偏移地址ADDDI,2MOVAX,ES:[DI]MOVCS_BAK,AX;保存INTR原中斷處理程序入口段地址MOVAX,SEGMYISRMOVES:[DI],AX;設(shè)置當(dāng)前中斷處理程序入口段地址MOVDX,INTR_OCW1;設(shè)置中斷屏蔽寄存器,打開(kāi)INTR屏蔽位INAL,DXMOVIM_BAK,AL;保存INTR原中斷屏蔽字ANDAL,INTR_IMOUTDXSTIWAIT1:MOVAH,1;判斷是否有按鍵按下INT16HJZWAIT1;無(wú)按鍵則跳回繼續(xù)等待,有則退出QUIT:CLIMOVAX,0000H;恢復(fù)INTR原中斷矢量MOVES,AXMOVDI,INTR_IVADDMOVAX,IP_BAK;恢復(fù)INTR原中斷處理程序入口偏移地址MOVES:[DI],AXADDDI,2MOVAX,CS_BAK;恢復(fù)INTR原中斷處理程序入口段地址MOVES:[DI],AXMOVDX,INTR_OCW1;恢復(fù)INTR原中斷屏蔽寄存器的屏蔽字MOVAL,IM_BAKOUTDXSTIMOVAX,4C00H;返回到DOSINT21HMYISRPROCNEAR;中斷處理程序MYISRPUSHAXMOVDL,39H;輸出字符9MOVAH,2INT21HMOVDL,0DH;輸出字符回車MOVAH,2INT21HMOVDL,0AH;輸出字符換行MOVAH,2INT21HOVER:MOVDX,INTR_OCW2;向PC機(jī)內(nèi)部8259發(fā)送中斷結(jié)束命令MOVAL,20HOUTDXMOVAL,20HOUT20H,ALPOPAXIRETMYISRENDPCODEENDSENDSTART2.?dāng)U展中斷源查詢方式應(yīng)用實(shí)驗(yàn)。INTR_IVADDEQU01C8H;INTR對(duì)應(yīng)的中斷矢量地址INTR_OCW1EQU0A1H;INTR對(duì)應(yīng)PC機(jī)內(nèi)部8259的OCW1地址INTR_OCW2EQU0A0H;INTR對(duì)應(yīng)PC機(jī)內(nèi)部8259的OCW2地址INTR_IMEQU0FBH;INTR對(duì)應(yīng)的中斷屏蔽字IOY0EQU3000H;片選IOY0對(duì)應(yīng)的端口始地址MY8259_ICW1EQUIOY0+00H;實(shí)驗(yàn)系統(tǒng)中8259的ICW1端口地址MY8259_ICW2EQUIOY0+04H;實(shí)驗(yàn)系統(tǒng)中8259的ICW2端口地址MY8259_ICW3EQUIOY0+04H;實(shí)驗(yàn)系統(tǒng)中8259的ICW3端口地址MY8259_ICW4EQUIOY0+04H;實(shí)驗(yàn)系統(tǒng)中8259的ICW4端口地址MY8259_OCW1EQUIOY0+04H;實(shí)驗(yàn)系統(tǒng)中8259的OCW1端口地址MY8259_OCW2EQUIOY0+00H;實(shí)驗(yàn)系統(tǒng)中8259的OCW2端口地址MY8259_OCW3EQUIOY0+00H;實(shí)驗(yàn)系統(tǒng)中8259的OCW3端口地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTMESDB'Pressanykeytoexit!',0AH,0DH,0AH,0DH,'$'CS_BAKDW?;保存INTR原中斷處理程序入口段地址的變量IP_BAKDW?;保存INTR原中斷處理程序入口偏移地址的變量IM_BAKDB?;保存INTR原中斷屏蔽字的變量DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMES;顯示退出提示 MOVAH,09H INT21H CLIMOVAX,0000H;替換INTR的中斷矢量MOVES,AXMOVDI,INTR_IVADDMOVAX,ES:[DI]MOVIP_BAK,AX;保存INTR原中斷處理程序入口偏移地址MOVAX,OFFSETMYISRMOVES:[DI],AX;設(shè)置當(dāng)前中斷處理程序入口偏移地址ADDDI,2MOVAX,ES:[DI]MOVCS_BAK,AX;保存INTR原中斷處理程序入口段地址MOVAX,SEGMYISRMOVES:[DI],AX;設(shè)置當(dāng)前中斷處理程序入口段地址MOVDX,INTR_OCW1;設(shè)置中斷屏蔽寄存器,打開(kāi)INTR的屏蔽位INAL,DXMOVIM_BAK,AL;保存INTR原中斷屏蔽字ANDAL,INTR_IMOUTDXMOVDX,MY8259_ICW1;初始化實(shí)驗(yàn)系統(tǒng)中8259的ICW1MOVAL,13H;邊沿觸發(fā)、單片8259、需要ICW4OUTDXMOVDX,MY8259_ICW2;初始化實(shí)驗(yàn)系統(tǒng)中8259的ICW2MOVAL,08HOUTDXMOVDX,MY8259_ICW4;初始化實(shí)驗(yàn)系統(tǒng)中8259的ICW4MOVAL,01H;非自動(dòng)結(jié)束EOIOUTDXMOVDX,MY8259_OCW3;向8259的OCW3發(fā)送讀取IRR命令MOVAL,0AHOUTDXMOVDX,MY8259_OCW1;初始化實(shí)驗(yàn)系統(tǒng)中8259的OCW1MOVAL,0FCH;打開(kāi)IR0和IR1的屏蔽位OUTDXSTIWAIT1:MOVAH,1;判斷是否有按鍵按下INT16HJZWAIT1;無(wú)按鍵則跳回繼續(xù)等待,有則退出QUIT:CLIMOVAX,0000H;恢復(fù)INTR原中斷矢量MOVES,AXMOVDI,INTR_IVADDMOVAX,IP_BAK;恢復(fù)INTR原中斷處理程序入口偏移地址MOVES:[DI],AXADDDI,2MOVAX,CS_BAK;恢復(fù)INTR原中斷處理程序入口段地址MOVES:[DI],AXMOVDX,INTR_OCW1;恢復(fù)INTR原中斷屏蔽寄存器的屏蔽字MOVAL,IM_BAKOUTDXSTIMOVAX,4C00H;返回到DOSINT21HMYISRPROCNEAR;中斷處理程序MYISRPUSHAXQUERY:MOVDX,MY8259_OCW3;向8259的OCW3發(fā)送讀取IRR命令I(lǐng)NAL,DX;讀出IRR寄存器值A(chǔ)NDAL,01HCMPAL,01HJEIR0ISR;若為IR0請(qǐng)求,跳到IR0處理程序JNEIR1ISR;若為IR1請(qǐng)求,跳到IR1處理程序JMPOVERIR0ISR:MOVAL,30H;IR0處理,顯示字符串STR0MOVAH,0EHINT10HMOVAL,20HINT10HJMPOVERIR1ISR:MOVAL,31H;IR1處理,顯示字符串STR1MOVAH,0EHINT10HMOVAL,20HINT10HJMPOVEROVER:MOVDX,INTR_OCW2;向PC機(jī)內(nèi)部8259發(fā)送中斷結(jié)束命令MOVAL,20HOUTDXMOVAL,20HOUT20H,ALPOPAXIRETMYISRENDPCODEENDSENDSTART五.實(shí)驗(yàn)現(xiàn)象及分析1.單中斷實(shí)驗(yàn)。按單次脈沖開(kāi)關(guān)KK1+,顯示屏?xí)@示字符“9”2.擴(kuò)展中斷源查詢方式應(yīng)用實(shí)驗(yàn)。注:與03H與,和與01H與時(shí)的優(yōu)先級(jí)不一樣。和03h與,同時(shí)按應(yīng)當(dāng)出1;和01h與,同時(shí)按應(yīng)當(dāng)出0。六.思考題1.單中斷與多中斷有何不同?單中斷只需要中斷一次,不存在優(yōu)先級(jí)的問(wèn)題。而多中斷需要考慮優(yōu)先級(jí)的問(wèn)題,以及是否允許中斷嵌套。2.如何改變中斷優(yōu)先級(jí)的順序?首先通過(guò)選擇中斷優(yōu)先級(jí)管理方式,有全嵌套方式、特殊嵌套方式、優(yōu)先級(jí)自動(dòng)循環(huán)方式、優(yōu)先級(jí)特殊循環(huán)方式、查詢方式。其中有的是不能改變優(yōu)先級(jí)的,如全嵌套方式,其IR0級(jí)別最高,IR7最低。而本代碼中使用的查詢方式,根據(jù)查詢得到的中斷值來(lái)決定誰(shuí)的優(yōu)先級(jí)高,其中有一個(gè)AND指令,若是和03H與,同時(shí)觸發(fā)時(shí),響應(yīng)的是IR1;而用01H與,同時(shí)觸發(fā),響應(yīng)的是IR0。3.可編程中斷控制器8259A在協(xié)助CPU處理中斷事務(wù)中起哪些作用?用于管理和控制80X86的外部中斷請(qǐng)求,可實(shí)現(xiàn)中斷優(yōu)先級(jí)判定,提供中斷類型號(hào),屏蔽中斷輸入等。4.可屏蔽中斷與8259A是什么關(guān)系?8259A可以提供中斷屏蔽的方式,通過(guò)置位復(fù)位IR0到IR7控制中斷類型號(hào)。實(shí)驗(yàn)二8255并口控制器應(yīng)用實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?.掌握8255的工作方式及應(yīng)用編程。2.掌握8255典型應(yīng)用電路的接法。二、實(shí)驗(yàn)內(nèi)容1.基本輸入輸出實(shí)驗(yàn)。編寫(xiě)程序,使8255的A口為輸出,B口為輸入,完成撥動(dòng)開(kāi)關(guān)到數(shù)據(jù)燈的數(shù)據(jù)傳輸。要求只要開(kāi)關(guān)撥動(dòng),數(shù)據(jù)燈的顯示就改變。實(shí)驗(yàn)說(shuō)明:本實(shí)驗(yàn)使8255的端口A作為輸出口工作在方式0,端口B作為輸入口工作在方式0。用一組開(kāi)關(guān)信號(hào)接入端口B,端口A輸出線接至一組數(shù)據(jù)燈上,然后通過(guò)對(duì)8255芯片編程來(lái)實(shí)現(xiàn)輸入輸出功能。圖3-28255基本輸入輸出實(shí)驗(yàn)參考接線圖實(shí)驗(yàn)步驟如下:①實(shí)驗(yàn)接線圖如圖3-2所示,按圖連接實(shí)驗(yàn)線路圖。②運(yùn)行Tdpit集成操作軟件,根據(jù)實(shí)驗(yàn)內(nèi)容,調(diào)用程序代碼(T8255-1.ASM),填寫(xiě)程序代碼中的空缺處,編譯、鏈接。(程序源碼路徑:C:\TangDu\PitPP\ASM\)③運(yùn)行程序,改變撥動(dòng)開(kāi)關(guān),同時(shí)觀察LED顯示,驗(yàn)證程序功能。2.流水燈顯示實(shí)驗(yàn)。編寫(xiě)程序,使8255的A口和B口均為輸出,數(shù)據(jù)燈D7~D0由左向右,每次僅亮一個(gè)燈,循環(huán)顯示,D15~D8與D7~D0正相反,由右向左,每次僅點(diǎn)亮一個(gè)燈,循環(huán)顯示。實(shí)驗(yàn)說(shuō)明:使8255的A口和B口均為輸出,數(shù)據(jù)燈D7~D0由左向右,每次僅亮一個(gè)燈,循環(huán)顯示,D15~D8與D7~D0正相反,由右向左,每次僅點(diǎn)亮一個(gè)燈,循環(huán)顯示。參考實(shí)驗(yàn)程序流程如圖3-3所示。 圖3-3流水燈顯示參考程序流程圖實(shí)驗(yàn)步驟如下:①實(shí)驗(yàn)接線圖如圖3-4所示,按圖連接實(shí)驗(yàn)線路圖。②運(yùn)行Tdpit集成操作軟件,根據(jù)實(shí)驗(yàn)內(nèi)容,調(diào)用程序代碼(T8255-2.ASM),填寫(xiě)程序代碼中的空缺處,編譯、鏈接。(程序源碼路徑:C:\TangDu\PitPP\ASM\)③運(yùn)行程序,觀察LED燈的顯示,驗(yàn)證程序功能。④自己設(shè)計(jì)流水燈的流動(dòng)模式,編寫(xiě)程序并實(shí)現(xiàn)。
圖3-48255流水燈顯示參考接線圖三、實(shí)驗(yàn)所用儀表及設(shè)備1.PC機(jī)一臺(tái)。2.TD-PIT++實(shí)驗(yàn)系統(tǒng)一套。四.程序代碼1.基本輸入輸出實(shí)驗(yàn)。IOY0EQU3000H;片選IOY0對(duì)應(yīng)的端口始地址MY8255_AEQUIOY0+00H*4;8255的A口地址MY8255_BEQUIOY0+01H*4;8255的B口地址MY8255_CEQUIOY0+02H*4;8255的C口地址MY8255_MODEEQUIOY0+03H*4;8255的控制寄存器地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,MY8255_MODE;初始化8255工作方式MOVAL,83H;工作方式0,A口輸出,B口輸入OUTDXLOOP1:MOVDX,MY8255_B;讀B口INAL,DXMOVDX,MY8255_A;寫(xiě)A口OUTDXMOVAH,1;判斷是否有按鍵按下INT16HJZLOOP1;無(wú)按鍵則跳回繼續(xù)循環(huán),有則退出QUIT:MOVAX,4C00H;結(jié)束程序退出INT21HCODEENDSENDSTART2.流水燈顯示實(shí)驗(yàn)。IOY0EQU3000H;片選IOY0對(duì)應(yīng)的端口始地址MY8255_AEQUIOY0+00H*4;8255的A口地址MY8255_BEQUIOY0+01H*4;8255的B口地址MY8255_CEQUIOY0+02H*4;8255的C口地址MY8255_MODEEQUIOY0+03H*4;8255的控制寄存器地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTLADB?;定義數(shù)據(jù)變量LBDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,MY8255_MODE;定義8255工作方式MOVAL,81H;工作方式0,A口和B口為輸出OUTDXMOVDX,MY8255_A;寫(xiě)A口發(fā)出的起始數(shù)據(jù)MOVAL,80HOUTDXMOVLA,ALMOVDX,MY8255_B;寫(xiě)B(tài)口發(fā)出的起始數(shù)據(jù)MOVAL,01HOUTDXMOVLB,ALLOOP1:CALLDALLYMOVAL,LA;將A口起始數(shù)據(jù)右移再寫(xiě)入A口ROLAL,1MOVLA,ALMOVDX,MY8255_AOUTDXMOVAL,LB;將B口起始數(shù)據(jù)左移再寫(xiě)入B口RORAL,1MOVLB,ALMOVDX,MY8255_BOUTDXMOVAH,1;判斷是否有按鍵按下INT16HJZLOOP1;無(wú)按鍵則跳回繼續(xù)循環(huán),有則退出QUIT:MOVAX,4C00H;結(jié)束程序退出INT21HDALLYPROCNEAR;軟件延時(shí)子程序PUSHCXPUSHAXMOVCX,0FFFHD1:MOVAX,0FFFFHD2:DECAXJNZD2LOOPD1POPAXPOPCXRETDALLYENDPCODEENDSENDSTART五.實(shí)驗(yàn)現(xiàn)象及分析基本輸入輸出實(shí)驗(yàn)。數(shù)據(jù)燈亮D7D6D5D4D3D2D1D0無(wú)影響開(kāi)關(guān)打開(kāi)常亮K7K6K5K4K3K2K1K0只要對(duì)應(yīng)的開(kāi)關(guān)撥動(dòng),數(shù)據(jù)燈的顯示就會(huì)發(fā)生改變。2.流水燈顯示實(shí)驗(yàn)。D15-D8從右到左、D7-D0從左到右依次亮起來(lái),循環(huán)往復(fù),周而復(fù)始。六.思考題1.并口通信需要注意哪些問(wèn)題?并口通信具有傳輸速得快、效率高的優(yōu)點(diǎn),但要求的數(shù)據(jù)線較多,不適合長(zhǎng)距離傳輸。2.比較并口通信與串口通信的異同。同:都是傳輸數(shù)據(jù)的作用。異:串口只用一根數(shù)據(jù)線,但是可以長(zhǎng)距離、穩(wěn)定的傳輸,在遠(yuǎn)程通信時(shí)更是不可或缺。并口則更多是用于短距離大容量傳輸。3.8255A端口與外設(shè)之間的單向和雙向傳送是指什么?3個(gè)并口中哪個(gè)并口具有雙向傳送功能?單向是指一根數(shù)據(jù)線只能做輸入或者只能做輸出,而雙向是指一根數(shù)據(jù)線既可以做輸入也可以做輸出。只有A口可以雙向選通(C方式)。實(shí)驗(yàn)三8254定時(shí)/計(jì)數(shù)器應(yīng)用實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?.掌握8254的工作方式及應(yīng)用編程。2.掌握8254典型應(yīng)用電路的接法。二、實(shí)驗(yàn)內(nèi)容1.計(jì)數(shù)應(yīng)用實(shí)驗(yàn)。編寫(xiě)程序,應(yīng)用8254的計(jì)數(shù)功能,用開(kāi)關(guān)模擬計(jì)數(shù),使每當(dāng)按動(dòng)KKI+五次后,產(chǎn)生一次計(jì)數(shù)中斷,并在屏幕上顯示一個(gè)字符‘5’實(shí)驗(yàn)說(shuō)明:編寫(xiě)程序,將8254的計(jì)數(shù)器0設(shè)置為方式0,計(jì)數(shù)值為5,用微動(dòng)開(kāi)關(guān)KKl+作為CLK0時(shí)鐘,OUT0連接INTR,每當(dāng)KKl+按動(dòng)5次后產(chǎn)生中斷請(qǐng)求,在屏幕上顯示字符“5”圖4-18254計(jì)數(shù)應(yīng)用實(shí)驗(yàn)一參考接線圖實(shí)驗(yàn)步驟如下:①實(shí)驗(yàn)接線如圖4-1所示,按圖接線。②運(yùn)行Tdpit集成
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GGFG-PAB-Exatecan-TFA-生命科學(xué)試劑-MCE-7805
- 2025年度私教健身中心教練團(tuán)隊(duì)合作協(xié)議
- 2025年度水產(chǎn)養(yǎng)殖技術(shù)支持租地合同
- 二零二五年度私人酒店健身教練用工協(xié)議
- 材料采購(gòu)合同
- 食堂操作間衛(wèi)生與消毒措施
- 河道清淤施工方案6篇
- 個(gè)人不服勞動(dòng)合同糾紛仲裁起訴狀范本
- 上海簡(jiǎn)易離婚合同模板
- 上海市商品住宅銷售合同模板
- 貴州省工傷待遇申請(qǐng)表(綜合柜員)
- 籍貫對(duì)照表完整版
- 畢業(yè)生就業(yè)推薦表word模板
- a320飛機(jī)剎車系統(tǒng)原理及故障分析
- GB 5009.228-2016食品安全國(guó)家標(biāo)準(zhǔn)食品中揮發(fā)性鹽基氮的測(cè)定
- 并聯(lián)電容器課件
- 彼得圣吉:第五項(xiàng)修煉課件
- 色素性皮膚病
- 《社會(huì)主義市場(chǎng)經(jīng)濟(jì)理論(第三版)》第二章社會(huì)主義市場(chǎng)經(jīng)濟(jì)改革論
- 學(xué)校預(yù)算管理內(nèi)部控制制度
- anthone溫控儀說(shuō)明書(shū)LU920
評(píng)論
0/150
提交評(píng)論