微機(jī)實(shí)驗(yàn)報(bào)告_第1頁(yè)
微機(jī)實(shí)驗(yàn)報(bào)告_第2頁(yè)
微機(jī)實(shí)驗(yàn)報(bào)告_第3頁(yè)
微機(jī)實(shí)驗(yàn)報(bào)告_第4頁(yè)
微機(jī)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

微機(jī)實(shí)驗(yàn)報(bào)告學(xué)院:計(jì)算機(jī)科學(xué)與工程學(xué)院專業(yè):軟件工程學(xué)號(hào):5姓名:張旭試驗(yàn)一顯示程序與數(shù)據(jù)傳送試驗(yàn)試驗(yàn)?zāi)康?)掌握在PC機(jī)上以十六進(jìn)制形式顯示數(shù)據(jù)的措施。2)掌握部分DOS功能調(diào)用使用措施。3)掌握與數(shù)據(jù)有關(guān)的不一樣尋址方式。4)熟悉Windows集成操作軟件Tdpit的操作環(huán)境和操作措施。試驗(yàn)設(shè)備PC微機(jī)一臺(tái)、TD-PIT++試驗(yàn)系統(tǒng)一套3.試驗(yàn)內(nèi)容及闡明1.顯示程序試驗(yàn)一般來(lái)說(shuō),有諸多程序需要顯示輸出提醒運(yùn)行的狀況和成果,有的還需要將數(shù)據(jù)區(qū)中的內(nèi)容顯示在屏幕上。本試驗(yàn)規(guī)定將指定數(shù)據(jù)區(qū)的數(shù)據(jù)以十六進(jìn)制數(shù)形式顯示在屏幕上,并運(yùn)用DOS功能調(diào)用完畢某些提醒信息的顯示。通過(guò)本試驗(yàn),初步掌握試驗(yàn)系統(tǒng)配套操作軟件的使用。試驗(yàn)中所使用DOS功能調(diào)用(INT21H)闡明如下。(1)顯示單個(gè)字符輸出入口:AH=02H調(diào)用參數(shù):DL=輸出字符(2)顯示字符串入口:AH=09H調(diào)用參數(shù):DS;DX=串地址,‘$’為結(jié)束字符(3)鍵盤輸入并回顯入口:AH=01H返回參數(shù):AL=輸出字符(4)返回DOS系統(tǒng)入口:AH=4CH調(diào)用參數(shù):AL=輸出字符2.數(shù)據(jù)傳送試驗(yàn)本試驗(yàn)規(guī)定將數(shù)據(jù)段中的一種字符串傳送到附加段中,并輸出附加段中的目的字符串到屏幕上。顯示程序試驗(yàn)的程序:STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTUSE16MESDB‘Pressanykeytoexit!’,0AH,0DH,0AH,0DH,’$’MES1DB‘Showaashex:’,0AH,0DH,’$’SDDB‘a(chǎn)’DATAENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESMOVAH,09HINT21HMOVDX,OFFSETMES1MOVAH,09HINT21HMOVSI,0FFSETSDMOVAL,DS:[SI]ANDAL,0F0HSHRAL,4CMPAL,0AHJBC2ADDAL,07HC2:ADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAL,DS:[SI]ANDAL,0FHCMPAL,0AHJBC3ADDAL,07HC3:ADDAL,30HMOVDL,ALMOVAH,02HINT21HKEY:MOVAH,1INT16HJZKEYMOVAX,4C00HINT21HCODEENDSENDSTART數(shù)據(jù)傳送試驗(yàn)程序:DATASEGMENT MSRDB"HELLO,WORLD,$" LENEQU$-MSRDATAENDSEXDASEGMENT MSDDBLENDUP(?)EXDAENDSMYSTACKSEGMENTSTACK DW20DUPMYSTACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:EXDASTART:MOVAX,DATA MOVDS,AX MOVAX,EXDA MOVES,AX MOVSI,OFFSETMSR MOVDI,OFFSETMSD MOVCX,LENNEXT:MOVAL,[SI] MOVES:[DI],AL INCSI INCDI DECCX JNCNEXT PUSHES POPDS MOVDX,OFFSETMSD MOVAH,9 INT21HKEY:MOVAH,1 INT16H JZKEY MOVAX,4C00H INT21HCODEENDS ENDSTART試驗(yàn)二數(shù)碼轉(zhuǎn)換程序試驗(yàn)1、試驗(yàn)?zāi)康恼莆詹灰粯舆M(jìn)制數(shù)及編碼互相轉(zhuǎn)換的程序設(shè)計(jì)措施。2、試驗(yàn)設(shè)備PC微機(jī)一臺(tái)、TD-PIT++試驗(yàn)系統(tǒng)一套。3、試驗(yàn)內(nèi)容及闡明計(jì)算機(jī)輸入設(shè)備輸入的信息一般是由ASCII碼或BCD碼表達(dá)的數(shù)據(jù)或字符,CPU一般均用二進(jìn)制數(shù)進(jìn)行計(jì)算或其他信息處理,處理成果的輸出又必須根據(jù)外設(shè)的規(guī)定變?yōu)锳SCII碼、BCD碼或七段顯示碼等。因此,在應(yīng)用軟件中,各類數(shù)制的轉(zhuǎn)換和代碼的轉(zhuǎn)換是必不可少的。計(jì)算機(jī)與外設(shè)間的數(shù)碼對(duì)應(yīng)關(guān)系如表2-1所示。數(shù)碼轉(zhuǎn)換關(guān)系如圖2-1所示。圖2-1計(jì)算機(jī)與外設(shè)間的數(shù)碼轉(zhuǎn)換關(guān)系1.將ASCII碼表達(dá)的十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)十進(jìn)制數(shù)可以表達(dá)為:Dn×10n+Dn-1×10n-1+…+D0×100=Di×10i其中Di代表十進(jìn)制數(shù)1、2、3…9、0。上式可以轉(zhuǎn)換為:ΣDi×10i=((…(Dn×10+Dn-1)×10)+Dn-2)×10+…+D1)×10+D0由上式可歸納十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制的措施:從十進(jìn)制數(shù)的最高位Dn開(kāi)始作乘10加次位的操作,依次類推,則可求出二進(jìn)制數(shù)成果。本試驗(yàn)規(guī)定將緩沖區(qū)中的一種五位十進(jìn)制數(shù)00012的ASCII碼轉(zhuǎn)換成二進(jìn)制數(shù),并將轉(zhuǎn)換成果按位顯示在屏幕上。2.將十進(jìn)制數(shù)的ASCII碼轉(zhuǎn)換為BCD碼本試驗(yàn)規(guī)定將鍵盤輸入的一種五位十進(jìn)制數(shù)54321的ASCⅡ碼寄存在數(shù)據(jù)區(qū)中,轉(zhuǎn)換為BCD碼后,并將轉(zhuǎn)換成果按位分別顯示于屏幕上。若輸入的不是十進(jìn)制數(shù)的ASCⅡ碼,則輸出“FF”。提醒:一字節(jié)ASCⅡ碼取其低四位即變?yōu)锽CD碼。3.將十六進(jìn)制數(shù)的ASCII碼轉(zhuǎn)換為十進(jìn)制數(shù)十六位二進(jìn)制數(shù)的值域?yàn)?-65535,最大可轉(zhuǎn)換為五位十進(jìn)制數(shù)。五位十進(jìn)制數(shù)可表達(dá)為:ND=D4×104+D3×103+D2×102+D1×10+D0因此,將十六位二進(jìn)制數(shù)轉(zhuǎn)換為五位ASCⅡ碼表達(dá)的十進(jìn)制數(shù),就是求D1-D4,并將它們轉(zhuǎn)化為ASCⅡ碼。本試驗(yàn)規(guī)定將緩沖區(qū)中寄存的000CH的ASCII碼轉(zhuǎn)換成十進(jìn)制數(shù),并將轉(zhuǎn)換結(jié)果顯示在屏幕上。4.BCD碼轉(zhuǎn)換為二進(jìn)制碼本試驗(yàn)規(guī)定將四個(gè)二位十進(jìn)制數(shù)的BCD碼寄存在某一內(nèi)存單元中,轉(zhuǎn)換出的二進(jìn)制數(shù)碼存入其后的內(nèi)存單元中,轉(zhuǎn)換結(jié)束,送屏幕顯示。4、試驗(yàn)環(huán)節(jié)(1)運(yùn)行Tdpit集成操作軟件,按照各試驗(yàn)規(guī)定分別編寫(xiě)試驗(yàn)程序。(2)對(duì)試驗(yàn)程序進(jìn)行編譯、鏈接。(3)使用運(yùn)行功能執(zhí)行程序,觀測(cè)運(yùn)行成果。(4)使用調(diào)試功能調(diào)試程序,觀測(cè)在調(diào)試過(guò)程中,程序指令執(zhí)行之后各寄存器及數(shù)據(jù)區(qū)的內(nèi)容。更改數(shù)據(jù)區(qū)中的數(shù)據(jù),反復(fù)測(cè)試,驗(yàn)證程序功能。試驗(yàn)程序2.1:STACK1SEGMENTSTACK DW256DUP(?)STACK1ENDSDDATASEGMENTMES1DB'Theasciicodeofdecimalcodeare:$'BUFDB30H,30H,30H,31H,32H DB 10HDUP(0)DDATAENDSCODESEGMENT ASSUMECS:CODE,DS:DDATASTART:MOVAX,DDATA MOVDS,AX MOVSI,OFFSETBUF MOVBX,000AH MOVCX,0004H MOVAH,00H MOVAL,[SI] SUBAL,30H A1:IMULBX ADDAL,[SI+01] INCSI LOOPA1 MOV[SI],AX MOVDX,OFFSETMES1 MOVAH,09H INT21H INCSI CALLSHOW DECSI CALLSHOWWAIT1:MOVAH,1 INT16H JZWAIT1 MOVAX,4C00H INT21HSHOWPROCNEAR MOVAL,DS:[SI] ANDAL,0F0H SHRAL,4 CMPAL,0AH JBC2 ADDAL,07H C2: ADDAL,30H MOVDL,AL MOVAH,02H INT21H MOVAL,DS:[SI] ANDAL,0FH CMPAL,0AH JBC3 ADDAL,07H C3:ADDAL,30H MOVDL,AL MOVAH,02H INT21H RET ENDP CODEENDS ENDSTART 程序2.2:STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDDATASEGMENTMES1DB'TheBCDcodeofdecimalare:$'BUFDB31H,32H,33H,34H,35HDB10HDUP(0)DDATAENDSCODESEGMENTASSUMECS:CODE,DS:DDATASTART:MOVAX,DDATAMOVDS,AXMOVCX,0005HMOVDI,OFFSETBUFA1:MOVBL,0FFHMOVAL,[DI]CMPAL,3AHJNBA2SUBAL,30HJBA2MOVBL,ALA2:MOVAL,BLMOV[DI+05H],ALINCDILOOPA1MOVSI,DIMOVCX,05HMOVDX,OFFSETMES1MOVAH,09HINT21HA3:CALLSHOWMOVDL,20HMOVAH,02HINT21HINCSILOOPA3WAIT1:MOVAH,1INT16HJZWAIT1MOVAX,4C00HINT21HSHOWPROCNEARMOVAL,DS:[SI]ANDAL,0F0HSHRAL,4CMPAL,0AHJBC2ADDAL,07HC2:ADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAL,DS:[SI]ANDAL,0FHCMPAL,0AHJBC3ADDAL,07HC3:ADDAL,30HMOVDL,ALMOVAH,02HINT21HRETENDPCODEENDSENDSTART程序2.3:STACK1SEGMENTSTACK DW256DUP(?)STACK1ENDSDDATASEGMENTMES1DB'Theasciicodeofhexare:$'BUFDB0CH,00H DB 10HDUP(0)DDATAENDSCODESEGMENT ASSUMECS:CODE,DS:DDATASTART:MOVAX,DDATA MOVDS,AX MOVSI,OFFSETBUF MOVDX,[SI] MOVBX,SI ADDBX,2 ADDSI,7A1:DECSIMOVAX,DXMOVDX,0000HMOVCX,000AHDIVCXXCHGAX,DXADDAL,30HMOV[SI],ALCMPDX,0000HJNEA1A2:CMPSI,BXJZA3DECSIMOVAL,30HMOV[SI],ALJMPA2A3:MOVCX,5MOVSI,OFFSETBUFADDSI,2MOVDX,OFFSETMES1MOVAH,09HINT21HA4:CALLSHOWMOVDL,20HMOVAH,02HINT21HINCSILOOPA4WAIT1:MOVAH,1INT16HJZWAIT1MOVAX,4C00HINT21HSHOWPROCNEARMOVAL,DS:[SI]ANDAL,0F0HSHRAL,4CMPAL,0AHJBC2ADDAL,07HC2:ADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAL,DS:[SI]ANDAL,0FHCMPAL,0AHJBC3ADDAL,07HC3:ADDAL,30HMOVDL,ALMOVAH,02HINT21HRETENDPCODEENDSENDSTART程序2.4:STACK1SEGMENTSTACK DW256DUP(?)STACK1ENDSDDATASEGMENTMES1DB'THEBCDCODEOFBINARYARE:$'BUFDB01H,07H,03H,04H,05H,01H,06H,08HDB10HDUP(0)DDATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATASTART:MOVAX,DDATA MOVDS,AX MOVCX,0004H MOVDI,OFFSETBUFA1:MOVAL,[DI] ADDAL,AL MOVBL,AL ADDAL,AL ADDAL,AL ADDAL,BL INCDI MOVAH,00H ADDAL,[DI] MOV[DI+07H],AX INCDI LOOPA1 MOVDX,OFFSETMES1 MOVAH,09H INT21H MOVCX,04H MOVDI,OFFSETBUF ADDDI,08HA2:MOVAX,[DI] CALLSHWORD MOVDL,20H MOVAH,02H INT21H INCDI INCDI LOOPA2WAIT1:MOVAH,1 INT16H JZWAIT1 MOVAX,4C00H INT21HSHWORDPROCNEAR MOVBL,AH CALLSHOW MOVBL,AL CALLSHOW RET ENDPSHOWPROCNEWA PUSHAX PUSHDX MOVAL,BL ANDAL,0F0H SHRAL,4 CMPAL,0AH JBC2 ADDAL,07HC2:ADDAL,30H MOVDL,AL MOVAH,02H INT21H MOVAL,BL ANDAL,0FH CMPAL,0AH JBC3 ADDAL,07HC3:ADDAL,30H MOVDL,AL MOVAH,02H INT21H POPDH POPAX RET ENDPCODEENDS ENDSTART試驗(yàn)三運(yùn)算類指令編程試驗(yàn)1、試驗(yàn)?zāi)康?)掌握運(yùn)算類指令編程及調(diào)試措施。2)掌握運(yùn)算類指令對(duì)各狀態(tài)標(biāo)志位的影響及測(cè)試措施。2、試驗(yàn)設(shè)備PC微機(jī)一臺(tái)、TD-PIT++試驗(yàn)系統(tǒng)一套。3、試驗(yàn)內(nèi)容及闡明80x86指令系統(tǒng)提供了實(shí)現(xiàn)加、減、乘、除運(yùn)算的基本指令,可對(duì)表3-1所示的數(shù)據(jù)類型進(jìn)行算術(shù)運(yùn)算。數(shù)制二進(jìn)制BCD碼帶符號(hào)無(wú)符號(hào)組合非組合運(yùn)算符+.-./.*+.-+.-./.*操作數(shù)字節(jié),字,多精度字節(jié)(二位數(shù)字)字節(jié)(一位數(shù)字)表3-1數(shù)據(jù)類型算術(shù)運(yùn)算表1.二進(jìn)制雙精度加法運(yùn)算本試驗(yàn)規(guī)定計(jì)算X+Y=Z,將成果Z輸出到屏幕,其中X=001565A0H,Y=0021B79EH。試驗(yàn)運(yùn)用累加器AX,先求低十六位和,并存入低址存儲(chǔ)單元,后求高16位和,再存入高址存儲(chǔ)單元。由于低位和也許向高位有進(jìn)位,因而高位字相加語(yǔ)句需用ADC指令,則低位相加有進(jìn)位時(shí),CF=1,高位字相加時(shí),同步加上CF中的1。在80386以上微機(jī)中可以直接使用32位寄存器和32位加法指令完畢本試驗(yàn)的功能。2.十進(jìn)制數(shù)的BCD碼減法運(yùn)算本試驗(yàn)規(guī)定計(jì)算X-Y=Z,其中,X、Y、Z為BCD碼,其中X=0400H,Y=0102H。3.乘法運(yùn)算本試驗(yàn)規(guī)定實(shí)現(xiàn)十進(jìn)制數(shù)的乘法,被乘數(shù)和乘數(shù)均以BCD碼形式寄存于內(nèi)存中,被乘數(shù)為54320H,乘數(shù)為3H,運(yùn)算結(jié)束后,將乘積在屏幕上顯示。4.用減奇數(shù)開(kāi)平方運(yùn)算80x86指令系統(tǒng)中有乘除法指令但沒(méi)有開(kāi)平方指令,因此,開(kāi)平方運(yùn)算是通過(guò)程序來(lái)實(shí)現(xiàn)的。用減奇數(shù)法可求得近似平方根,獲得平方根的整數(shù)部分。我們懂得,N個(gè)自然數(shù)中的奇數(shù)之和等于N,即:21+3+5=9=321+3+5+7=16=421+3+5+7+9+11+13+15=64=82若要做S的開(kāi)方運(yùn)算,那麼就可以從S中逐次減去自然數(shù)中的奇數(shù)1,3,5,7…,一直進(jìn)行到相減數(shù)為0或不夠減下一種自然數(shù)的奇數(shù)為止,然后記錄減去自然數(shù)的奇數(shù)個(gè)數(shù),它就是S的近似平方根。本試驗(yàn)規(guī)定運(yùn)用減奇法計(jì)算0040H的開(kāi)平方值,并將運(yùn)算成果顯示在屏幕上。4、試驗(yàn)環(huán)節(jié)(1)運(yùn)行Tdpit集成操作軟件,按各試驗(yàn)規(guī)定編寫(xiě)試驗(yàn)程序。(2)分別對(duì)試驗(yàn)程序進(jìn)行編譯、鏈接。(3)使用運(yùn)行功能運(yùn)行程序,觀測(cè)運(yùn)行成果。(4)使用調(diào)試功能調(diào)試程序,觀測(cè)在調(diào)試過(guò)程中,各運(yùn)算指令執(zhí)行后,各寄存器、標(biāo)志位及數(shù)據(jù)區(qū)內(nèi)容的變化。(5)更改數(shù)據(jù)區(qū)中的數(shù)據(jù),反復(fù)測(cè)試,驗(yàn)證程序功能。試驗(yàn)程序3.1:STACK1SEGMENTSTACK DW256DUP(?)STACK1ENDSDATASEGMENTMES1DB'THERESULTIS:$'XLDW65A0HXHDW0015HYLDW0B79EHYHDW0021HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATA MOVDS,AX MOVDX,OFFSETMES1 MOVAH,09H INT21H MOVAX,XL ADDAX,YL MOVBX,AX MOVAX,XH ADCAX,YH PUSHBX CALLSHWORD POPBX MOVAX,BX CALLSHWORDWAIT1:MOVAH,1 INT16H JZWAIT1 MOVAX,4C00H INT21HSHWORDPROCNEAR MOVBL,AL CALLSHOW RET ENDPSHOWPROCNEAR PUSHAX PUSHDX MOVAL,BL ANDAL,0F0H SHRAL,4 CMPAL,0AH JBC2 ADDAL,07HC2:ADDAL,30H MOVDL,AL MOVAH,02H INT21H MOVAL,BL ANDAL,0FH CMPAL,0AH JBC3 ADDAL,07HC3:ADDAL,30H MOVDL,AL MOVAH,02H INT21H POPDX POPAX RET ENDPCODEENDS ENDSTART程序3.2:STACK1SEGMENTSTACK DW256(?)STACK1ENDSDATASEGMENTMES1DB'THERESULTIS:$'XDW0400HYDW0102HDATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATASTART:MOVAX,DATA MOVDS,AX MOVAH,00H SAHF MOVSI,OFFSETX MOVAL,[SI] SBBAL,[SI+02H] DAS PUSHF ANDAL,0FH POPF MOVBL,AL INCSI MOVAL,[SI] SBBAL,[SI+02H] DAS PUSHF ANDAL,0FH POPF MOVBH,AL MOVDX,OFFSETMES1 MOVAH,09H INT21H MOVAX,BX CALLSHWORDWAIT1:MOVAH,1 INT16H JZWAIT1 MOVAX,4C00H INT21HSHWORDPROCNEAR MOVBL,AH CALLSHOW MOVBL,AL CALLSHOW RET ENDPSHOWPROCNEAR PUSHAX PUSHDX MOVAL,BL ANDAL,0F0H SHRAL,4 CMPAL,0AH JBC2 ADDAL,07HC2:ADDAL,30H MOVDL,AL MOVAH,02H INT21H MOVAL,BL ANDAL,0FH CMPAL,0AH JBC3 ADDAL,07HC3:ADDAL,30H MOVDL,AL MOVAH,02H INT21H POPDX POPAX RET ENDPCODEENDS ENDSTART程序3.3:STACK1SEGMENTSTACK SU256(?)STACK1ENDSDATASEGMENTMES1DB'THERESULTIS:$'ERRMESDB'ERROREXIST:$'DATA1DB00H,022H,03H,04H,05HDATA2DB03HRESULTDB06HDUP(0)DATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATASTART:MOVAX,DATA MOVDS,AX MOVSI,OFFSETDATA2 MOVBL,[SI] ANDBL,0FH CMPBL,09H JNCERROR MOVSI,OFFSETDATA1 MOVDI,OFFSETRESULT MOVCX,0005HA1:MOVAL,[SI+04H] ANDAL,0FH CMPAL,0FH JNCERROR DECSI MULBL AAM ADDAL,[DI+05H] AAA MOV[DI+05H],AL DECDI MOVDX,OFFSETMES1 MOVAH,09H INT21H MOVCX,06H MOVSI,OFFSETRESULTA2:MOVCALLSHOW MOVDL,20H MOVAH,02H INT21H INCSI LOOPA2WAIT:MOVAH,1 INT16H JZWAIT1 MOVAX,4C00H INT21HERROR:MOVDX,OFFSETERRMES MOVAH,09H INT21H MOVAX,4C00H INT21HSHOWPROCNEAR MOVAL,DS:[SI] ANDAL,0F0H SHRAL,4 CMPAL,0AH JBC2 ADDAL,07HC2:ADDAL,30H MOVDL,AL MOVAH,02H INT21H MOVAL,DS:[SI] ANDAL,0FH CMPAL,0AH JBC3 ADDAL,07HC3:ADDAL,30H MOVDL,AL MOVAH,02H INT21H RET ENDPCODEENS ENDSTART程序3.4:STACK1SEGMENTSTACK DW256DUP(?)STACK1ENDSDDATASEGMENTMES1DB'THESQUAREROOTOF$'MES2DB'IS:$'NUMBDW0040HDDATAENDSCODESEGMENT ASSUMECS:CODE,DS:DDATASTART:MOVAX,DDATA MOVDS,AX MOVDX,OFFSETMES1 MOVAH,09H INT21H MOVSI,OFFSETNUMB MOVAX,[SI] CALLSHWORD MOVDX,OFFSETMES2 MOVAH,09H INT21H MOVAX,[SI] MOVCL,00H MOVDX,0001HA1:SUBAX,DX JBA2 INCCL ADDDX,02H JMPA1A2:MOVBL,CL CALLSHOWWAIT:MOVAH,1 INT16H JZWAIT1 MOVAX,4C00H INT21HSHWORDPROCNEAR MOVBL,AH CALLSHOW MOVBL,AL CALLSHOW RET ENDPSHOWPROCNEAR PUSHAX PUSHDX MOVAL,BL ANDAL,0F0H SHRAL,4 CMPAL,0AH JBC2 ADDAL,07HSHOWPROCNEAR PUSHAX PUSHDX MOVAL,BL ANDAL,0F0H CMPAL,0AH JBC2 ADDAL,07HC2:ADDAL,30H MOVDL,AL MOVAH,02H INT21H MOVAL,BL ANDAL,0FH CMPAL,0AH JBC3 ADDAL,07HC3:ADDAL,30H MOVDL,AL MOVAH,02H INT21H POPDX POPAX RET ENDPCODEENDS ENDSTART試驗(yàn)四8/32位I/O接口試驗(yàn)1、試驗(yàn)?zāi)康?)掌握基本I/O接口電路的設(shè)計(jì)措施。2)熟悉I/O操作指令及8/32位I/O端口的操作措施。3)理解LED點(diǎn)陣的基本構(gòu)造。4)學(xué)習(xí)LED點(diǎn)陣掃描顯示程序的設(shè)計(jì)措施。2、試驗(yàn)設(shè)備PC微機(jī)一臺(tái)、TD-PIT++試驗(yàn)系統(tǒng)一套。3、試驗(yàn)內(nèi)容(1)運(yùn)用8位I/O接口,實(shí)現(xiàn)微機(jī)對(duì)外部輸入數(shù)據(jù)的讀取和對(duì)輸出數(shù)據(jù)的輸出。用撥動(dòng)開(kāi)關(guān)和數(shù)據(jù)燈作為輸入和輸出顯示設(shè)備,將讀到開(kāi)關(guān)的數(shù)據(jù)顯示在數(shù)據(jù)燈上。(2)運(yùn)用32位的I/O接口,按照32位的I/O操作方式,操作點(diǎn)陣LED顯示單元的16行×16列點(diǎn)陣。(3)使用32位I/O接口單元的32位輸出O0~O31控制點(diǎn)陣LED單元R0~R15和L0~L15。編寫(xiě)程序,在16×16點(diǎn)陣上顯示中文(學(xué)生姓名)。4、試驗(yàn)原理1.輸入接口設(shè)計(jì)輸入接口一般用三態(tài)緩沖器實(shí)現(xiàn),外部設(shè)備輸入數(shù)據(jù)通過(guò)三態(tài)緩沖器,通過(guò)數(shù)據(jù)總線傳送給微機(jī)系統(tǒng)。74LS245是一種8通道雙向的三態(tài)緩沖器,其管腳構(gòu)造如圖4-1所示。DIR引腳控制緩沖器數(shù)據(jù)方向,DIR為1表達(dá)數(shù)據(jù)由A[7:0]至B[7:0],DIR為0表達(dá)數(shù)據(jù)由B[7:0]至A[7:0]。G引腳為緩沖器的片選信號(hào),低電平有效。圖4-174LS245雙向三態(tài)緩沖器管腳圖2.輸出接口設(shè)計(jì)輸出接口一般用鎖存器實(shí)現(xiàn),從總線送出的數(shù)據(jù)可以暫存在鎖存器中。74LS374/74LS574是一種8通道上沿觸發(fā)鎖存器。74LS574管腳構(gòu)造如圖4-2所示。D[7:0]為輸入數(shù)據(jù)線,Q[7:0]為輸出數(shù)據(jù)線。CLK引腳為鎖存控制信號(hào),上升沿有效。當(dāng)上升沿屆時(shí),輸出數(shù)據(jù)線鎖存輸入數(shù)據(jù)線上的數(shù)據(jù)。OE引腳為鎖存器的片選信號(hào),低電平有效。圖4-274LS574上沿觸發(fā)鎖存器管腳圖3.8位I/O接口設(shè)計(jì)用一組74LS245和74LS374/574可以構(gòu)成一種8位的I/O接口電路,既實(shí)現(xiàn)數(shù)據(jù)的輸入又實(shí)現(xiàn)數(shù)據(jù)的輸出,輸入輸出可以占用同一種端口。是輸入還是輸出用總線讀寫(xiě)信號(hào)來(lái)辨別。總線讀信號(hào)IOR和片選信號(hào)CS相“或”來(lái)控制輸入接口74LS245的使能信號(hào)G??偩€寫(xiě)信號(hào)IOW和片選信號(hào)CS相“或”來(lái)控制輸出接口74LS574的鎖存信號(hào)CLK。試驗(yàn)系統(tǒng)中基本I/O接口單元就實(shí)現(xiàn)了這種的電路,8位I/O電路連接如圖4-3所示。INAL,DX;將IA[7:0]連接設(shè)備的8位數(shù)據(jù)通過(guò)數(shù)據(jù)總線D[7:0]輸入到AL。OUTDX,AL;將AL中的數(shù)據(jù)通過(guò)數(shù)據(jù)總線D[7:0]輸出到OA[7:0]連接的設(shè)備。圖4-3用74LS245和74LS574構(gòu)成的8位I/O接口電路4.32位I/O接口設(shè)計(jì)用四組8位的I/O接口電路可以構(gòu)成一種32位的I/O接口電路,可以一次進(jìn)行32位數(shù)據(jù)寬度的I/O操作。I/O讀、寫(xiě)、片選信號(hào)對(duì)輸入輸出的控制基本和8位I/O接口電路相似,不過(guò),對(duì)于32位數(shù)據(jù)總線,每個(gè)字節(jié)都對(duì)應(yīng)著一位字節(jié)使能信號(hào),共有4位字節(jié)使能信號(hào)BE0~BE3,因此每個(gè)8位I/O接口電路與否有效要受BE[3:0]的控制。INEAX,DX;將I[31:0]連接設(shè)備的32位數(shù)據(jù)通過(guò)數(shù)據(jù)總線D[31:0]輸入到EAX。OUTDX,EAX;將EAX中的數(shù)據(jù)通過(guò)數(shù)據(jù)總線D[31:0]輸出到O[31:0]連接的設(shè)備。5.16×16點(diǎn)陣工作原理8×8點(diǎn)陣LED相稱于8×8個(gè)發(fā)光管構(gòu)成的陣列,對(duì)于共陽(yáng)極LED來(lái)說(shuō),其中每一行共用一種陽(yáng)極(行控制),每一列共用一種陰極(列控制)。行控制和列控制滿足對(duì)的的電平就可使對(duì)應(yīng)行列的發(fā)光管點(diǎn)亮。試驗(yàn)平臺(tái)上點(diǎn)陣LED的管腳及相應(yīng)的行、列控制位如圖4-4所示。圖4-4點(diǎn)陣LED管腳圖共陽(yáng)極和共陰極LED的內(nèi)部構(gòu)造分別如圖4-5和4-6所示。圖4-5共陽(yáng)極LED內(nèi)部構(gòu)造圖圖4-6共陰極LED內(nèi)部構(gòu)造圖4、試驗(yàn)闡明及環(huán)節(jié)1.8位I/O操作試驗(yàn)本試驗(yàn)實(shí)現(xiàn)的是將開(kāi)關(guān)K[7:0]的數(shù)據(jù)通過(guò)輸入數(shù)據(jù)通道讀入CPU的寄存器,然后再通過(guò)輸出數(shù)據(jù)通道將該數(shù)據(jù)輸出到數(shù)據(jù)燈顯示,該程序循環(huán)運(yùn)行,直到按動(dòng)PC鍵盤上任意按鍵再退出程序。試驗(yàn)程序流程如圖4-7所示。參照試驗(yàn)接線如圖5-8所示。試驗(yàn)環(huán)節(jié)如下:(1)按圖4-8連接試驗(yàn)線路圖。(2)運(yùn)行Tdpit集成操作軟件,根據(jù)試驗(yàn)內(nèi)容,編寫(xiě)試驗(yàn)程序,對(duì)試驗(yàn)程序進(jìn)行編譯、鏈接。(3)運(yùn)行程序,撥動(dòng)開(kāi)關(guān),觀看數(shù)據(jù)燈顯示與否對(duì)的。圖4-78位I/O接口設(shè)計(jì)試驗(yàn)參照流程圖圖4-88位I/O接口設(shè)計(jì)試驗(yàn)參照接線圖2.32位I/O操作試驗(yàn)本試驗(yàn)運(yùn)用點(diǎn)陣LED顯示單元的16×16點(diǎn)陣,將16行控制和16列控制合成一種32位端口來(lái)操作(列控制連接到發(fā)光管的陽(yáng)極,行控制連接發(fā)光管的陰極,列為“1”,對(duì)應(yīng)的行為“0”,則對(duì)應(yīng)的一列發(fā)光管點(diǎn)亮)。用32位I/O接口單元中的32位輸出O[31:0]的高16位控制16列,低16位控制16行,即一次I/O操作就可完畢LED點(diǎn)陣的一次顯示。試驗(yàn)規(guī)定控制點(diǎn)陣循環(huán)逐行顯示,直到按動(dòng)PC鍵盤上任意按鍵再停止程序退出。試驗(yàn)環(huán)節(jié)如下:(1)試驗(yàn)接線圖如圖4-9所示,按圖連接試驗(yàn)線路圖。(2)運(yùn)行Tdpit集成操作軟件,根據(jù)試驗(yàn)內(nèi)容,編寫(xiě)試驗(yàn)程序,對(duì)試驗(yàn)程序進(jìn)行編譯、鏈接。(3)運(yùn)行程序,觀看LED點(diǎn)陣顯示與否對(duì)的。3.點(diǎn)陣顯示試驗(yàn)運(yùn)用取字模軟件得到中文字符數(shù)組,設(shè)計(jì)程序,在點(diǎn)陣上顯示學(xué)生姓名。試驗(yàn)參照接線如圖4-9所示。試驗(yàn)環(huán)節(jié)如下:(1)按圖4-9連接試驗(yàn)線路圖。(2)運(yùn)行Tdpit集成操作軟件,根據(jù)試驗(yàn)規(guī)定編寫(xiě)試驗(yàn)程序,編譯、鏈接。(3)運(yùn)行程序,觀測(cè)點(diǎn)陣的顯示,驗(yàn)證程序功能。使用點(diǎn)陣顯示符號(hào)時(shí),必須首先得到顯示符號(hào)的編碼,這可以根據(jù)需要通過(guò)不同的工具獲得。試驗(yàn)程序4.1:IOYOEQU3000HSTACK1SEGMENTSTACK DW256DUP(?)STACK1ENDSCODESEGMENT ASSUMECS:CODESTART:MOVDX,IOYO INAL,DX OUTDX,AL MO

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論