129019552840008750微機(jī)原理實(shí)驗(yàn)指導(dǎo)書(shū)_第1頁(yè)
129019552840008750微機(jī)原理實(shí)驗(yàn)指導(dǎo)書(shū)_第2頁(yè)
129019552840008750微機(jī)原理實(shí)驗(yàn)指導(dǎo)書(shū)_第3頁(yè)
129019552840008750微機(jī)原理實(shí)驗(yàn)指導(dǎo)書(shū)_第4頁(yè)
129019552840008750微機(jī)原理實(shí)驗(yàn)指導(dǎo)書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)須知一、預(yù)習(xí)要求1. 實(shí)驗(yàn)前認(rèn)真閱讀實(shí)驗(yàn)教程中有關(guān)內(nèi)容,明確實(shí)驗(yàn)?zāi)康摹?nèi)容和實(shí)驗(yàn)任務(wù)。2. 每次實(shí)驗(yàn)前做好充分的預(yù)習(xí),對(duì)所需預(yù)備知識(shí)做到心中有數(shù)。3. 實(shí)驗(yàn)前應(yīng)編好源程序,并對(duì)調(diào)試過(guò)程、實(shí)驗(yàn)結(jié)果進(jìn)行預(yù)測(cè)。二、實(shí)驗(yàn)要求1. 實(shí)驗(yàn)課請(qǐng)勿遲到,缺席。2. 愛(ài)護(hù)設(shè)備,保持清潔,不隨意更換設(shè)備。3. 認(rèn)真完成實(shí)驗(yàn)任務(wù),實(shí)驗(yàn)結(jié)果經(jīng)教師檢查。4. 做硬件實(shí)驗(yàn)時(shí),嚴(yán)禁帶電操作,即所有的接線(xiàn)、改線(xiàn)及拆線(xiàn)操作均應(yīng)在不帶電的狀態(tài)下進(jìn)行,并注意防止導(dǎo)線(xiàn)堵塞插孔。5. 發(fā)生事故,應(yīng)立即切斷電源,并馬上向教師報(bào)告,檢查原因,吸取教訓(xùn)。6. 實(shí)驗(yàn)完畢,請(qǐng)整理實(shí)驗(yàn)設(shè)備,正常關(guān)機(jī),再離開(kāi)實(shí)驗(yàn)室。三、報(bào)告要求每次實(shí)驗(yàn)后,應(yīng)遞

2、交一份實(shí)驗(yàn)報(bào)告,報(bào)告中應(yīng)包含下列內(nèi)容:1. 實(shí)驗(yàn)名稱(chēng)、實(shí)驗(yàn)人姓名、學(xué)號(hào)、班級(jí),所用設(shè)備號(hào)。2. 實(shí)驗(yàn)?zāi)康?、任?wù)。3. 硬件實(shí)驗(yàn)應(yīng)畫(huà)出各任務(wù)的完整電路圖。4. 畫(huà)出各任務(wù)程序流程圖。5. 寫(xiě)出實(shí)驗(yàn)調(diào)試情況,包括上機(jī)時(shí)遇到的問(wèn)題及解決辦法、實(shí)驗(yàn)結(jié)果分析等, 并附上調(diào)試好的程序清單(應(yīng)加適量注釋?zhuān)?. 總結(jié)實(shí)驗(yàn)中的心得體會(huì),提出對(duì)實(shí)驗(yàn)內(nèi)容、方案等的建議、意見(jiàn)或設(shè)想等。軟件部分實(shí)驗(yàn)實(shí)驗(yàn)一 DEBUG的使用【實(shí)驗(yàn)?zāi)康摹?學(xué)習(xí)使用DEBUG程序的各種命令。2掌握用DEBUG調(diào)試自編程序的方法,為以后實(shí)驗(yàn)打下基礎(chǔ)?!緦?shí)驗(yàn)性質(zhì)】驗(yàn)證性實(shí)驗(yàn)(學(xué)時(shí)數(shù):2H)?!緦?shí)驗(yàn)內(nèi)容】1進(jìn)入DEBUG后,首先用命令R查看當(dāng)前

3、DS和IP寄存器內(nèi)容,記錄此值。2練習(xí)R,D,A,U,T,P,G命令的使用。3用A命令匯編下列程序段,完成將DS:2000開(kāi)始的5個(gè)字節(jié)內(nèi)存內(nèi)容相加,并把相加的結(jié)果存放在DS:2005內(nèi)存單元中,用DEBUG調(diào)試運(yùn)行該程序,查看運(yùn)行結(jié)果,觀察程序段能否完成指定功能,若不能,說(shuō)明原因。 MOV CX,5MOV AL,0MOV BX,2000NEXT:ADD AL,BXINC BX LOOP NEXTMOV BX,ALINT 3步驟:1)用A命令將程序鍵入到100H開(kāi)始的內(nèi)存中,在鍵入時(shí)記下標(biāo)號(hào)NEXT的實(shí)際地址,在鍵入LOOP指令時(shí)NEXT用實(shí)際地址值代替。2)用U命令檢查鍵入的程序及對(duì)應(yīng)的機(jī)器

4、碼。3)用E2000 01 02 03 04 05將2000H開(kāi)始的前5個(gè)內(nèi)存單元的內(nèi)容修改為01、02、03、04、05,用D命令查看修改結(jié)果,并記錄結(jié)果。4)用T命令逐條運(yùn)行上述小程序指令,檢查并記錄有關(guān)寄存器、存儲(chǔ)單元內(nèi)容及ZF情況。5)用F2000 L05 02 03 04 05 06 將2000H開(kāi)始的5個(gè)內(nèi)存單元的內(nèi)容修改為02、03、04、05、06,用D命令查看修改結(jié)果,并記錄修改結(jié)果。6)用G=100 全速運(yùn)行上述小程序,用D2000 2005查看運(yùn)行結(jié)果并記錄運(yùn)行結(jié)果。4利用T,P,G命令,執(zhí)行下列程序段,注意它們的不同之處。(1) MOV DI,300MOV SI,400

5、MOV CX,3CLDREP MOVSBINT 3(2) 先在CS:200處匯編一條RET指令,再在CS:100處匯編。MOV BX,200CALL BXINT 3 然后從MOV BX,200處開(kāi)始執(zhí)行。5用命令A(yù)匯編下列指令,并判斷指令正誤并說(shuō)明原因。(1) ROR AX,8(2) LEA DI,AX(3) MOV DS,2010(4) PUSH AL(5) OUT 900,AL(6) MOV BX,0【預(yù)習(xí)要求】1仔細(xì)閱讀附錄中“匯編語(yǔ)言上機(jī)操作過(guò)程及程序調(diào)試技術(shù)”部分的內(nèi)容。2根據(jù)實(shí)驗(yàn)要求,對(duì)各項(xiàng)結(jié)果進(jìn)行預(yù)測(cè)。【思考題】1指令MOV BX,AX中,操作數(shù)BX的尋址方式是什么?在DEBUG

6、下執(zhí)行完該指令后,如何查看執(zhí)行結(jié)果?2可否隨意在DEBUG提示符“-”后不帶參數(shù)發(fā)出命令G?什么情況下使用命令G時(shí),可不用“=”給出執(zhí)行首地址?【報(bào)告要求】1分析任務(wù)5中各條指令錯(cuò)誤原因。2說(shuō)明命令T和P的區(qū)別。3寫(xiě)出任務(wù)3的編輯調(diào)試過(guò)程,并附上調(diào)試記錄。4回答思考題。【實(shí)驗(yàn)提示】1DEBUG的進(jìn)入如果是首次進(jìn)入DEBUG編程,則只要在DOS提示符下鍵入DEBUG ,即可進(jìn)入DEBUG環(huán)境,顯示提示符“-”。如果要對(duì)某個(gè)程序使用DEBUG進(jìn)行調(diào)試,只要在DOS提示符下鍵入DEBUG 文件名,即可進(jìn)入DEBUG環(huán)境,顯示提示符“-”。如:Cdebug exam.exe2程序的匯編與反匯編源程序可

7、以在DEBUG下,用匯編命令A(yù)輸入到內(nèi)存中,只需在DEBUG提示符“-”下,鍵入?yún)R編命令A(yù) ,并在顯示“段寄存器地址:偏移地址”后面鍵入你自己編寫(xiě)的程序,每鍵入一條,按一次回車(chē)鍵。-A 127B:0100MOV CX,5 127B:0103MOV AL,0 127B:0105MOV BX,2000 如果進(jìn)入DEBUG時(shí)是使用“DEBUG 文件名”進(jìn)入的,那么在進(jìn)入DEBUG狀態(tài)后,可用反匯編命令U,將調(diào)入的程序顯示出來(lái):-U 127B:0100B90500MOV CX,5127B:0103B000MOV AL,0127B:0105BB0020MOV BX,20003在DEBUG狀態(tài)下,對(duì)所編寫(xiě)

8、文件存盤(pán)的步驟給程序命名-N 文件名.COM 將文件長(zhǎng)度放入BX、CX中(高位放入BX,低位放入CX中)-R BX (注意!由于文件長(zhǎng)度一般較小,所以切記BX中付0值)-R CX (文件最末偏移地址減去文件開(kāi)始的偏移地址即文件長(zhǎng)度)用寫(xiě)盤(pán)命令W把正在調(diào)試的內(nèi)存中程序?qū)懭氪疟P(pán)中-W 地址(文件開(kāi)始地址)退出DEBUG狀態(tài)用Q命令:-Q 4在DEBUG狀態(tài)下,建議使用DOS分配給用戶(hù)的內(nèi)存可用區(qū)在DEBUG狀態(tài)下,用戶(hù)可對(duì)所有寄存器、RAM內(nèi)存隨意查看和修改,但由于對(duì)DOS操作系統(tǒng)在內(nèi)存中存放情況不了解,可能會(huì)將存放有操作系統(tǒng)程序的內(nèi)存內(nèi)容破壞,從而可能引起系統(tǒng)的異常,出現(xiàn)死機(jī)現(xiàn)象,故建議使用DO

9、S分配給用戶(hù)的內(nèi)存可用區(qū),其低端地址是剛進(jìn)入DEBUG時(shí),用命令R查看到的DS:IP。5用連續(xù)執(zhí)行命令G應(yīng)注意問(wèn)題用連續(xù)執(zhí)行命令G執(zhí)行程序時(shí),注意給出執(zhí)行程序的首地址,并注意執(zhí)行的程序中有返回DEBUG功能的程序段,如指令I(lǐng)NT 20H或斷點(diǎn)設(shè)置INT 3,否則發(fā)出命令后,很容易出現(xiàn)死機(jī),原因是無(wú)返回程序段使系統(tǒng)返回命令接受狀態(tài),CPU將不斷到內(nèi)存中取指令、執(zhí)行指令,使用戶(hù)失去對(duì)系統(tǒng)的控制。為避免這種情況,可在用戶(hù)程序段結(jié)尾加上一條INT 20H指令,或INT 3指令。6關(guān)于任務(wù)5DS:2000單元開(kāi)始的5個(gè)字節(jié)內(nèi)容,可用填充命令F給其賦值。-F 2000 L5 01 02 03 04 05(

10、在執(zhí)行程序前用F命令給單元賦值)之后,運(yùn)行任務(wù)5程序段,檢查運(yùn)行結(jié)果是否正確。實(shí)驗(yàn)二 兩個(gè)多位十進(jìn)制數(shù)相加實(shí)驗(yàn)【實(shí)驗(yàn)?zāi)康摹? 熟悉在PC機(jī)上建立、匯編、連接、調(diào)試和運(yùn)行匯編語(yǔ)言程序的過(guò)程。2 掌握數(shù)據(jù)傳送和算術(shù)運(yùn)算指令的用法。3 熟悉和掌握用DEBUG調(diào)試程序的方法?!緦?shí)驗(yàn)性質(zhì)】驗(yàn)證性實(shí)驗(yàn)(學(xué)時(shí)數(shù):2H)?!緦?shí)驗(yàn)內(nèi)容】1將兩個(gè)多位十制數(shù)相加,要求加數(shù)和被加數(shù)均以ASCII碼形式各自順序存放在以DATAl和DATA2為首的5個(gè)內(nèi)存單元中(低位在前),結(jié)果送DATA3處。2將上題改為高字節(jié)在前低字節(jié)在后的形式存放數(shù)據(jù),程序如何改變?3上述程序只顯示了相加結(jié)果,沒(méi)有顯示加數(shù)和被加數(shù),如果按47193

11、+28056=75249格式顯示,程序如何修改?4如果考慮5位十進(jìn)制數(shù)向更高位有進(jìn)位情況,程序如何修改?實(shí)驗(yàn)說(shuō)明:匯編語(yǔ)言沒(méi)有十進(jìn)制加法指令,ADD/ADC加法指令的運(yùn)算對(duì)象是二進(jìn)制數(shù),如果要進(jìn)行BCD碼數(shù)的加法,需要對(duì)結(jié)果進(jìn)行修正。組合BCD碼的加法調(diào)整指令為DAA,它針對(duì)AL寄存器中的組合BCD碼數(shù)之和進(jìn)行修正。對(duì)于未組合BCD碼的加法調(diào)整指令為AAA(加法的ASCII碼調(diào)整指令),它將存于AL寄存器中的一位ASCII碼數(shù)加法運(yùn)算的結(jié)果調(diào)整為一位拆開(kāi)型十進(jìn)制數(shù),仍保留在AL中,如果向高位有進(jìn)位(AF=1),則進(jìn)到AH中。對(duì)于多字節(jié)的ASCII碼相加,只能從最低位開(kāi)始逐個(gè)字節(jié)地進(jìn)行加法操作,

12、并隨即進(jìn)行調(diào)整。內(nèi)容1參考程序清單(WJSY2.ASM):DATASEGMENTDATA1DB 33H,39H,31H,37H,34HDATA2DB 36H,35H,30H,38H,32HDATA3 DB 5 DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AXMOV CX,5;計(jì)數(shù)MOV SI,0;做變址用,因從DATA1的第一個(gè)數(shù)取數(shù),故SI=0CLCNEXT:MOV AL,DATA1SI;取被加數(shù)給ALADC AL,DATA2SI;取加數(shù)和AL相加AAA;未組合十進(jìn)制數(shù)加法調(diào)整指令MOV DAT

13、A3SI,AL;結(jié)果送至DATA3處INC SI;修改SI指向下一位數(shù) LOOP NEXTMOV SI,5;因顯示是從高位到低位,故SI=5L: ADD DATA3SI-1,30H;還原成ASCII碼 MOV DL,DATA3SI-1 MOV AH,02;送顯示 INT 21H DEC SI JNZ L MOV AH,4CH;返回DOS INT 21HCODEENDS END START運(yùn)行結(jié)果:75249【實(shí)驗(yàn)要求】1 實(shí)驗(yàn)內(nèi)容1、內(nèi)容2為基礎(chǔ)題,必須做,完成后可得7分。2 實(shí)驗(yàn)內(nèi)容3為提高題,完成后可再加2分。3 實(shí)驗(yàn)內(nèi)容4為提高題,完成后可再加1分?!绢A(yù)習(xí)要求】 1仔細(xì)閱讀課本及相應(yīng)教材

14、。 2參照程序框圖編制源程序,準(zhǔn)備好多組運(yùn)算數(shù)據(jù),以供校驗(yàn)?!舅伎碱}】1一個(gè)段的大小為多少?一定是64KB嗎?如何在DEBUG下查看程序在內(nèi)存的存放情況?2加數(shù)與被加數(shù)都是ASCII碼形式,在作相加運(yùn)算時(shí),是否要先轉(zhuǎn)換為十六進(jìn)制數(shù)?【報(bào)告要求】1報(bào)告要寫(xiě)實(shí)驗(yàn)?zāi)康摹?shí)驗(yàn)內(nèi)容。2列出運(yùn)行正確的源程序清單,加上適當(dāng)注釋?zhuān)瑢?xiě)出執(zhí)行結(jié)果及結(jié)果分析。3回答思考題。4. 寫(xiě)出實(shí)驗(yàn)總結(jié)?!緦?shí)驗(yàn)提示】打開(kāi)MASM文件夾,有四個(gè)文件EDIT.COM,MASM.EXE,LINK.EXE,DEBUG.COM我們要用到。1進(jìn)入EDIT編輯環(huán)境建立和修改匯編源程序文件(文件名要以.ASM結(jié)尾)2用MASM命令匯編源文件以

15、產(chǎn)生相應(yīng)的目標(biāo)文件(OBJ文件)3用LINK命令連接目標(biāo)文件以產(chǎn)生可執(zhí)行文件(EXE文件)4用DEBUG調(diào)試、運(yùn)行可執(zhí)行程序。參考程序框圖:注:該框圖考慮了五位十進(jìn)制數(shù)向更高位有進(jìn)位的情況。顯示被加數(shù)和加數(shù)清除進(jìn)位標(biāo)志CX計(jì)數(shù)值5執(zhí)行ADC帶進(jìn)位加法運(yùn)算AAA調(diào)整AH0結(jié)果送緩沖數(shù)據(jù)區(qū)調(diào)整偏移量CX-1=0?AH將FR低8位AHAH01BXAH 十六進(jìn)制結(jié)果轉(zhuǎn)化為ASCII碼表示的數(shù)字串 顯示結(jié)果NY結(jié)束實(shí)驗(yàn)三 字符串匹配程序【實(shí)驗(yàn)?zāi)康摹?掌握提示信息的使用方法及鍵盤(pán)輸入字符串的用法。2進(jìn)一步掌握串操作指令的用法。【實(shí)驗(yàn)性質(zhì)】驗(yàn)證性實(shí)驗(yàn)(學(xué)時(shí)數(shù):3H)?!緦?shí)驗(yàn)內(nèi)容】1編寫(xiě)程序,實(shí)現(xiàn)兩個(gè)字符串比

16、較,當(dāng)兩字符串完全相同時(shí),才顯示“MATCH”,如果有一個(gè)字符不同,則顯示“NO MATCH”。字符串由鍵盤(pán)輸入。2編寫(xiě)程序,實(shí)現(xiàn)密碼的設(shè)置。要求:首先在屏幕上提示:“Please input the password:”,然后從鍵盤(pán)輸入密碼,接著提示:“Please input the password again:”,從鍵盤(pán)再輸入一遍密碼,如果兩次輸入的密碼相同,則提示:“OK! Succed in setting up password !”,如果兩次輸入的密碼不同,則提示:“Sorry, Please input password again:”,讓用戶(hù)重新設(shè)置密碼,直至設(shè)置成功。3利

17、用密碼登錄系統(tǒng),密碼可由程序員自己設(shè)定,在數(shù)據(jù)段定義。首先在屏幕上提示:“Please input the password:” ,從鍵盤(pán)輸入密碼,如果密碼正確,顯示:“Welcome to using the system!”,如果密碼不正確,顯示“Password error,Please input password again:”,等待用戶(hù)輸入密碼,密碼最多輸入3次,超過(guò)3次,顯示“Sorry! You cant enter the system!”,程序結(jié)束。實(shí)驗(yàn)內(nèi)容1 參考程序清單:CRLFMACRO;宏定義MOV AH,02HMOV DL,0DH;回車(chē)INT 21HMOV AH,

18、02HMOV DL,0AH;換行INT 21HENDMDATASEGMENTMESS1DBMATCH,0DH,0AH,$MESS2DBNO MATCH,0DH,0AH,$MESS3DB INPUT STRING1:,0DH,0AH,$MESS4DBINPUT STRING2:,0DH,0AH,$STR1DB20,?,21 DUP(0);字符串1數(shù)據(jù)緩沖區(qū)STR2DB20,?,21 DUP(0);字符串2數(shù)據(jù)緩沖區(qū)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOV AX,DATAMOV DS,AXMOV ES,AXMOV AH,09

19、HMOV DX,OFFSET MESS3 ;顯示提示信息INT 21HMOV AH,0AH;接收鍵入的字符串1MOV DX,OFFSET STR1INT 21HCRLF;宏調(diào)用,實(shí)現(xiàn)回車(chē)換行MOV AH,09HMOV DX,OFFSET MESS4 ;顯示提示信息INT 21HMOV AH,0AH;接收鍵入的字符串2MOV DX,OFFSET STR2INT 21HCRLFmov al,str1+1cmp al,str2+1;比較兩字符串的長(zhǎng)度 jnz NEQQ;若長(zhǎng)度不等則轉(zhuǎn)NEQQCLD;清方向標(biāo)志MOV CL,SI+1 ;字串1的實(shí)際長(zhǎng)度MOV CH,0LEA SI,STR1+2 ;字串

20、1字符所在區(qū)域偏移地址LEA DI,STR2+2 ;字串2字符所在區(qū)域偏移地址 REPE CMPSB ;字串1和字串2的所有字符做比較JZ EQQ;相等轉(zhuǎn)EQQNEQQ:MOV DX,OFFSET MESS2MOV AH,09 ;不相等顯示“NO MATCH”INT 21HJMP STOPEQQ:MOV DX,OFFSET MESS1MOV AH,09;顯示“MATCH”INT 21HSTOP:MOV AH,4CH;返回DOSINT 21HCODEENDSEND START【實(shí)驗(yàn)要求】1 實(shí)驗(yàn)內(nèi)容1、內(nèi)容2為基礎(chǔ)題,必須做,完成后可得8分。2 實(shí)驗(yàn)內(nèi)容3為提高題,完成后可再加2分。【預(yù)習(xí)要求】

21、1 仔細(xì)閱讀課本中有關(guān)DOS功能調(diào)用INT 21H中0AH號(hào)功能調(diào)用及串操作類(lèi)指令部分的內(nèi)容?!緢?bào)告要求】1報(bào)告要寫(xiě)實(shí)驗(yàn)?zāi)康?、?shí)驗(yàn)內(nèi)容。2列出運(yùn)行正確的源程序清單,加上適當(dāng)注釋?zhuān)瑢?xiě)出執(zhí)行結(jié)果及結(jié)果分析。3回答思考題。4. 寫(xiě)出實(shí)驗(yàn)總結(jié)?!舅伎碱}】調(diào)用INT 21H中的0AH號(hào)功能時(shí),用0AH輸入的字符串,不加處理,能否直接用09H號(hào)功能輸出?【實(shí)驗(yàn)提示】1在串比較操作時(shí),一定要注意以下三點(diǎn):源串一定放在數(shù)據(jù)段,目的串一定放在附加段;源串偏移地址的首地址一定放在SI寄存器中,目的串偏移地址首地址一定放在DI寄存器中;串長(zhǎng)度一定放在CX中。清方向標(biāo)志CLD。2INT 21H中0AH號(hào)功能調(diào)用關(guān)于輸

22、入數(shù)據(jù)的緩沖區(qū)開(kāi)辟問(wèn)題輸入緩沖區(qū)格式:DATASEGMNETBUFF1DB 20, ?, 21 DUP(0)DATAENDS預(yù)定最大輸入字符數(shù)BUFF131H實(shí)際輸入字符數(shù)32H33H從鍵盤(pán)輸入字符的ASCII碼34H 3實(shí)驗(yàn)環(huán)境可打開(kāi)CMASM2文件夾,點(diǎn)擊CMASM文件,進(jìn)入集成匯編環(huán)境來(lái)建立、匯編、連接、調(diào)試程序。N實(shí)驗(yàn)四 從鍵盤(pán)輸入數(shù)據(jù)并顯示實(shí)驗(yàn)【實(shí)驗(yàn)?zāi)康摹空莆战邮真I盤(pán)數(shù)據(jù)的方法,并了解數(shù)制轉(zhuǎn)換的原理。【實(shí)驗(yàn)性質(zhì)】驗(yàn)證性實(shí)驗(yàn)(學(xué)時(shí)數(shù):2H)?!緦?shí)驗(yàn)內(nèi)容】編寫(xiě)程序,將鍵盤(pán)收到的四位十六進(jìn)制轉(zhuǎn)換為等值的二進(jìn)制數(shù),再顯示在終端上?!绢A(yù)習(xí)要求】1仔細(xì)閱讀實(shí)驗(yàn)指導(dǎo)書(shū)及相應(yīng)教材。2參照給定程序框圖

23、編制源程序?!緢?bào)告要求】1報(bào)告要寫(xiě)實(shí)驗(yàn)?zāi)康?、?shí)驗(yàn)內(nèi)容。2列出運(yùn)行正確的源程序清單,加上適當(dāng)注釋?zhuān)瑢?xiě)出執(zhí)行結(jié)果及結(jié)果分析。3寫(xiě)出實(shí)驗(yàn)總結(jié)?!緦?shí)驗(yàn)提示】代碼轉(zhuǎn)換是計(jì)算機(jī)和外設(shè)打交道的重要技術(shù)。外部設(shè)備通常用ASCII碼(如鍵盤(pán)輸入的程序)或BCD碼輸入計(jì)算機(jī),而計(jì)算機(jī)都將其轉(zhuǎn)換為二進(jìn)制數(shù),運(yùn)算完了之后計(jì)算機(jī)又必須將其轉(zhuǎn)換為ASCII碼或BCD碼送到輸出設(shè)備。顯示請(qǐng)輸入“十六進(jìn)制數(shù)”調(diào)用GETNUM,接收鍵入數(shù)值,保存在BX中計(jì)數(shù)值16送CXBX中內(nèi)容循環(huán)左移1位BL送DL,屏蔽DL高7位DL加30H,變成二進(jìn)制數(shù)位對(duì)應(yīng)字符的ASCII碼顯示CX-1=0?返回DOSYN主程序參考框圖:子程序GETN

24、UM框圖:保存寄存器 DX清0 讀取鍵入字符的ASCII碼送AL 將本次鍵入的數(shù)字加進(jìn)DX中是回車(chē)或空格鍵?AL值小于30H嗎?是數(shù)字0-9?是字母A-F?是字母a-f?顯示輸入出錯(cuò)信息回車(chē)換行恢復(fù)寄存器返回YNYYYYNNNN第二部分 硬件部分實(shí)驗(yàn)實(shí)驗(yàn)十一 定時(shí)器8253與中斷控制器8259A實(shí)驗(yàn)【實(shí)驗(yàn)?zāi)康摹?掌握計(jì)數(shù)器/定時(shí)器8253的工作原理和編程方法。2掌握8259中斷控制器的工作原理。3掌握中斷處理程序的編寫(xiě)?!緦?shí)驗(yàn)性質(zhì)】驗(yàn)證性實(shí)驗(yàn)(學(xué)時(shí)數(shù):2H)。【實(shí)驗(yàn)內(nèi)容】1該實(shí)驗(yàn)用PC機(jī)內(nèi)部的中斷控制器8259A,中斷源用TPC-H實(shí)驗(yàn)箱上的8253來(lái)產(chǎn)生,電路如圖1所示,將8253計(jì)數(shù)器0,

25、計(jì)數(shù)器1分別設(shè)置為方式3和方式2,計(jì)數(shù)初值設(shè)為2000,使8253每隔4秒產(chǎn)生一次低電平的中斷請(qǐng)求。 CLK0 GATE0OUT0 CLK1 GATE1OUT1CSGND WR RD接1MHZ輸出端接IRQ7280H287HIOWIOR8253圖1 8253與8259 實(shí)驗(yàn)電路圖2硬件電路如附圖1所示。3編寫(xiě)程序,要求每次主機(jī)響應(yīng)外中斷IRQ7時(shí),顯示THIS IS A 8259A INTERRUPT !,在鍵盤(pán)上敲任意一個(gè)鍵,程序退出。4修改電路和程序,直接用手動(dòng)產(chǎn)生單個(gè)脈沖作為中斷請(qǐng)求信號(hào),要求每按一次開(kāi)關(guān)產(chǎn)生一次中斷,在屏幕上顯示一次This is a IRQ7 interrupt!,中

26、斷10次后程序退出。【實(shí)驗(yàn)步驟】1斷開(kāi)電源,按虛線(xiàn)位置連接好接線(xiàn),經(jīng)檢查無(wú)誤后合上電源。2輸入準(zhǔn)備好的源程序,并進(jìn)行匯編連接調(diào)試。3運(yùn)行程序觀察結(jié)果。【預(yù)習(xí)要求】1復(fù)習(xí)8253和8259A工作原理,編程方法和使用方法。2根據(jù)給定的參考程序框圖,在實(shí)驗(yàn)前編寫(xiě)出源程序?!舅伎碱}】1在8253計(jì)數(shù)器/定時(shí)器中,時(shí)鐘信號(hào)CLK、門(mén)脈沖信號(hào)GATE分別起什么作用?2初始化時(shí)設(shè)置為非自動(dòng)結(jié)束方式,那么在中斷服務(wù)程序?qū)⒔Y(jié)束時(shí)必須設(shè)置什么操作命令?如果不設(shè)置這種命令會(huì)發(fā)生什么現(xiàn)象?3 8259A的中斷屏蔽寄存器IMR和8086/8088的中斷允許標(biāo)志IF有什么差別?在中斷響應(yīng)過(guò)程中,它們?cè)鯓优浜掀饋?lái)工作?4在

27、那些情況下需用CLI指令關(guān)中斷?在那些情況下需用STI指令開(kāi)中斷?【報(bào)告要求】1畫(huà)出程序框圖。2整理好運(yùn)行正確的源程序,并加上注釋。3總結(jié)8259的編程方法。重點(diǎn)總結(jié)中斷服務(wù)程序的實(shí)際入口地址是怎樣得到的。4總結(jié)實(shí)驗(yàn)調(diào)試過(guò)程中遇到的問(wèn)題。5回答思考題。【編程提示】1在TPC-H實(shí)驗(yàn)系統(tǒng)的接口卡上有一個(gè)跳線(xiàn)開(kāi)關(guān)(JP),可以選擇IRQ2、IRQ3、IRQ4、IRQ7引到試驗(yàn)箱上的IRQ插孔,出廠(chǎng)設(shè)置的是IRQ7。2中斷控制器8259的地址為20H、21H,IRQ7對(duì)應(yīng)的中斷類(lèi)型號(hào)為0FH,編程時(shí)要根據(jù)中斷類(lèi)型號(hào)設(shè)置中斷向量,8259中斷屏蔽寄存器IMR對(duì)應(yīng)位要清零(允許中斷),中斷服務(wù)程序結(jié)束返

28、回前要使用中斷結(jié)束命令:MOV AL,20HOUT 20H,AL3程序退出返回操作系統(tǒng)前應(yīng)將8259中斷屏蔽寄存器IMR對(duì)應(yīng)位置1(以關(guān)閉中斷)。CLI關(guān)中斷開(kāi)始設(shè)置IRQ7的中斷矢量讀8259中斷屏蔽寄存器允許IRQ7中斷STI開(kāi)中斷關(guān)閉IRQ7中斷有鍵按下么?STI開(kāi)中斷結(jié)束YN(a) 主程序參考框圖返回DOS程序參考框圖:開(kāi)始保存寄存器顯示中斷響應(yīng)提示信息發(fā)中斷結(jié)束命令恢復(fù)寄存器開(kāi)中斷中斷返回(b)中斷服務(wù)程序框圖實(shí)驗(yàn)十二 8255和LED數(shù)碼管顯示實(shí)驗(yàn)【實(shí)驗(yàn)?zāi)康摹?掌握并行接口8255A的工作原理及使用方法。2了解七段數(shù)碼管顯示數(shù)字的原理。3掌握多位數(shù)碼顯示的接口技術(shù)。【實(shí)驗(yàn)性質(zhì)】驗(yàn)證

29、性實(shí)驗(yàn)(學(xué)時(shí)數(shù):2H)?!緦?shí)驗(yàn)內(nèi)容】1靜態(tài)顯示:按圖2連接好電路,將8255A的A口PA0PA6分別與七段數(shù)碼管的段碼驅(qū)動(dòng)輸入端ag相連,位碼驅(qū)動(dòng)輸入端S1接+5V(選中),S0、dp接地(關(guān)閉)。編程從鍵盤(pán)輸入一位十進(jìn)制數(shù)字(09),在七段數(shù)碼管上顯示出來(lái)。2動(dòng)態(tài)顯示(選做):按圖3連接好電路,七段數(shù)碼管段碼連接不變,位碼驅(qū)動(dòng)輸入端S1S0接8255C口的PC1、PC0。編程在兩個(gè)數(shù)碼管上顯示56。圖2 圖3【實(shí)驗(yàn)步驟】1 斷開(kāi)電源,按虛線(xiàn)位置連接好接線(xiàn),經(jīng)檢查無(wú)誤后合上電源。2 輸入準(zhǔn)備好的源程序,并進(jìn)行匯編連接調(diào)試。3 運(yùn)行程序觀察結(jié)果?!绢A(yù)習(xí)要求】1 復(fù)習(xí)8255A工作原理、編程方法和

30、使用方法。2 參考給定的程序框圖,在實(shí)驗(yàn)前編寫(xiě)出源程序?!舅伎碱}】18255A的三個(gè)端口在使用時(shí)有什么差別?28255A的方式0一般使用在什么場(chǎng)合?在方式0時(shí),如果使用應(yīng)答信號(hào)進(jìn)行聯(lián)絡(luò),應(yīng)該怎么辦?3 當(dāng)8255A工作在中斷方式2時(shí),CPU是如何區(qū)分輸入或輸出的?【報(bào)告要求】1畫(huà)出程序框圖。2整理運(yùn)行正確的源程序,并加上注釋。3總結(jié)實(shí)驗(yàn)調(diào)試過(guò)程中遇到的問(wèn)題及解決的辦法。4回答思考題?!揪幊烫崾尽?實(shí)驗(yàn)臺(tái)上的七段數(shù)碼管為共陰極,碼段采用同相驅(qū)動(dòng),輸入端加高電平,選中的數(shù)碼管亮,位碼加反相驅(qū)動(dòng)器,位碼輸入端高電平選中。2七段數(shù)碼管的字形代碼如下表:程序參考框圖:開(kāi)始將8255設(shè)為A口輸出從鍵盤(pán)接收

31、字符是數(shù)字么?將所得字符的ASCII碼減30H查表求出對(duì)應(yīng)的段碼將段碼自8255A口輸出返回DOSa) 靜態(tài)顯示程序開(kāi)始將8255設(shè)為A口輸出送5的段碼至A口送位碼02H 至C口延時(shí)送6的段碼至A口送位碼01H 至C口延時(shí)有鍵按下么?返回DOSb) 動(dòng)態(tài)顯示程序YNNY實(shí)驗(yàn)十三 串行通信實(shí)驗(yàn)【實(shí)驗(yàn)?zāi)康摹?了解串行通信的一般原理和RS-232C串行通信接口標(biāo)準(zhǔn)。2熟悉BIOS系統(tǒng)功能調(diào)用INT 14H的使用?!緦?shí)驗(yàn)性質(zhì)】驗(yàn)證性實(shí)驗(yàn)(學(xué)時(shí)數(shù):2H)?!緦?shí)驗(yàn)內(nèi)容】利用串口1進(jìn)行雙機(jī)通信,硬件連接如圖4所示。RI 9DSR 6RTS 7CTS 81 DCD2 RXD3 TXD4 DTR5 GNDDCD 1RXD 2TXD 3DTR 4GND 59 RI6 DSR7 RTS8 CTS甲機(jī)串行口乙機(jī)串行口圖4 串行通信電路圖1要求從甲機(jī)鍵盤(pán)輸入的字符在乙機(jī)屏幕上顯示,乙機(jī)鍵盤(pán)輸入的字符在甲機(jī)屏幕上顯示,按q鍵雙方退出,返回操作系統(tǒng)。利用BIOS串行通信中斷進(jìn)行編程,采用查詢(xún)方式,波特率2400,偶校驗(yàn),1位停止位,7位數(shù)據(jù)位。2實(shí)驗(yàn)說(shuō)明本實(shí)驗(yàn)為雙機(jī)通信實(shí)驗(yàn),實(shí)驗(yàn)的硬件連

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論