資源描述:
《指令系統(tǒng)和匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn).》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、--第二章指令系統(tǒng)和匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)本章實(shí)驗(yàn)主要包括指令系統(tǒng)和匯編語(yǔ)言程序設(shè)計(jì)兩部分。采用軟件模擬調(diào)試的方法,目的在于通過(guò)這些實(shí)驗(yàn)可以使學(xué)生鞏固所學(xué)知識(shí),加深對(duì)MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)、指令系統(tǒng)的理解,更進(jìn)一步掌握匯編語(yǔ)言程序設(shè)計(jì)的方法和技巧。第一節(jié)指令系統(tǒng)實(shí)驗(yàn)實(shí)驗(yàn)一熟悉鍵盤操作及數(shù)傳指令編程設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?.熟悉軟件模擬調(diào)試的環(huán)境及鍵盤操作。2.掌握匯編語(yǔ)言程序設(shè)計(jì)的方法,加深對(duì)指令的理解。3.學(xué)會(huì)軟件模擬調(diào)試和察看修改觀察項(xiàng)的方法。二、實(shí)驗(yàn)內(nèi)容印證數(shù)據(jù)傳送指令的功能、尋址方式以及PC指針、SP指針、DPTR指針、Ri指針?lè)謩e
2、對(duì)代碼段、堆棧段、外擴(kuò)數(shù)據(jù)存儲(chǔ)器段、位尋址區(qū)等不同存儲(chǔ)器的訪問(wèn)方式。三、實(shí)驗(yàn)步驟1.進(jìn)入調(diào)試軟件環(huán)境,輸入源程序;2.匯編源程序;3.用單步方式運(yùn)行程序;4.檢查并記錄各寄存器和存儲(chǔ)單元內(nèi)容的變化。---四、程序清單---1.內(nèi)部RAM數(shù)據(jù)傳送需要查看的數(shù)據(jù)有30H,31H,A,R0等。ORG0000HMOVR0,#30HMOV30H,#45HMOV31H,#46HMOVR2,30HMOV02H,31HMOVA,#87HMOV0E0H,30HMOV30H,AMOV31H,@R0SJMP$END2.外部數(shù)據(jù)傳送需要查看的數(shù)據(jù)有外部數(shù)據(jù)存儲(chǔ)
3、器單元2000H,外部程序存儲(chǔ)器單元2001H。ORG0000HMOVA,#89H---MOVDPTR,#2000H---MOVX@DPTR,AINCDPTRCLRAMOVCA,@A+DPTRSJMP$ORG2000HDB44HDB78HDB67HEND3.堆棧操作需要查看的數(shù)據(jù)有50H、51H、A及SP指針和堆棧區(qū)中數(shù)據(jù)隨PUSH和POP指令執(zhí)行后的變化情況和數(shù)據(jù)的存放次序等。1可用于保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)的程序ORG0000HMOVSP,#5FHMOV50H,#3BHMOV51H,#2FH---MOVA,#12H---PUSH50HPU
4、SH51HPUSHACCPOP0E0HPOP51HPOP50HSJMP$END2可用于數(shù)據(jù)交換的程序ORG0100HMOVSP,#6FHMOV50H,#3BHMOV51H,#2FHPUSH50HPUSH51HPOP50HPOP51HSJMP$END---4.數(shù)據(jù)交換記錄每條指令運(yùn)行后的結(jié)果,從而加深對(duì)各種不同的交換指令的理解。ORG0000HMOVA,#58HSWAPAMOV40H,AMOVA,#30HMOVR0,#30HMOV@R0,#09HXCHDA,@R0MOV50H,#1MOVA,#89HXCHA,50HMOVR7,#3XCHA
5、,R7XCHA,@R0SJMP$END---五、思考題---1.寄存器尋址與寄存器間接尋址有什么區(qū)別?2.PC指針與SP指針有什么區(qū)別?3.DPTR指針與Ri(R0,R1指針有什么區(qū)別?4.立即尋址與直接尋址有什么區(qū)別?4.同一個(gè)特殊功能寄存器不同表達(dá)形式。實(shí)驗(yàn)二數(shù)傳指令和算數(shù)運(yùn)算指令編程設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?.掌握數(shù)據(jù)塊的傳送操作和算術(shù)運(yùn)算指令的應(yīng)用。2.進(jìn)一步掌握匯編語(yǔ)言設(shè)計(jì)和調(diào)試方法。3.掌握觀察窗口的使用方法。4.學(xué)會(huì)給存儲(chǔ)單元賦初值的方法。二、實(shí)驗(yàn)內(nèi)容1.數(shù)據(jù)區(qū)傳送(1把內(nèi)部RAM40H~4FH置初值0A0H~0AFH;(2而后把
6、40H~4FH內(nèi)容傳送到外部RAM9800H~980FH中;(3再把9800~980FH內(nèi)容傳送到50H~5FH中。---2.多字節(jié)十進(jìn)制加法---加數(shù)放在30H開(kāi)始的單元中(最低位放在30H,按從小到大的順序存放,被加數(shù)和結(jié)果存放在20H開(kāi)始的單元(最低位在20H中,字節(jié)數(shù)放在2FH中,最高進(jìn)位位放在7FH中的最低位。三、實(shí)驗(yàn)步驟1.分別用單步和連續(xù)運(yùn)行方式,調(diào)試上述兩個(gè)程序;2.在執(zhí)行第二個(gè)程序之前,給被加數(shù)和加數(shù)單元賦初值;3.在觀察窗口中觀察結(jié)果。四、實(shí)驗(yàn)程序清單1.數(shù)據(jù)塊傳送程序:ORG0000HMAIN:MOVR0,#40H
7、MOVR2,#10HMOVA,#0A0HA1:MOV@R0,AINCR0INCADJNZR2,A1MOVR0,#40HMOVDPTR,#9800H---MOVR2,#10HA2:MOVA,@R0MOVX@DPTR,AINCR0INCDPTRDJNZR2,A2MOVR0,#50HMOVDPTR,#9800HMOVR2,#10HA3:MOVXA,@DPTRMOV@R0,AINCDPTRINCR0DJNZR2,A3SJMP$END2.多字節(jié)十進(jìn)制加法:ORG0000HMAIN:MOVR0,#30H---MOVR1,#20HMOV2FH,#04
8、HCLRCDA1:MOVA,@R0ADDCA,@R1DAAMOV@R1,AINCR0INCR1DJNZ2FH,DA1MOV7FH,CSJMP$END五、思考題1.若兩個(gè)數(shù)據(jù)塊都在外部數(shù)據(jù)存儲(chǔ)器中,如何實(shí)現(xiàn)數(shù)