DSP例程PPT學(xué)習(xí)教案_第1頁
DSP例程PPT學(xué)習(xí)教案_第2頁
DSP例程PPT學(xué)習(xí)教案_第3頁
DSP例程PPT學(xué)習(xí)教案_第4頁
DSP例程PPT學(xué)習(xí)教案_第5頁
已閱讀5頁,還剩112頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、會(huì)計(jì)學(xué)1DSP例程例程 DSPDSP系統(tǒng)也具有計(jì)算機(jī)的一般特性,其完成的任務(wù)是采樣、運(yùn)算和輸出的功能,即從某個(gè)地址單元系統(tǒng)也具有計(jì)算機(jī)的一般特性,其完成的任務(wù)是采樣、運(yùn)算和輸出的功能,即從某個(gè)地址單元( (片內(nèi)或片外片內(nèi)或片外) )取數(shù)據(jù),然后按照一定的規(guī)則進(jìn)行運(yùn)算,最后將運(yùn)算的結(jié)果存放到某個(gè)地址單元來輸出。因此,在程序中如何尋址和表達(dá)數(shù)據(jù)的地址是軟件系統(tǒng)的關(guān)鍵問題。取數(shù)據(jù),然后按照一定的規(guī)則進(jìn)行運(yùn)算,最后將運(yùn)算的結(jié)果存放到某個(gè)地址單元來輸出。因此,在程序中如何尋址和表達(dá)數(shù)據(jù)的地址是軟件系統(tǒng)的關(guān)鍵問題。 TMS320LF240 x TMS320LF240 x的程序采用了三種基本的尋址方式:立即

2、尋址、直接尋址和間接尋址。的程序采用了三種基本的尋址方式:立即尋址、直接尋址和間接尋址。 3.1.1 立即尋址方式立即尋址方式 指令操作所需要的數(shù)就在本指令中,這個(gè)數(shù)也稱為立即數(shù)。立即尋址的操作數(shù)分為短立即數(shù)和長(zhǎng)立即數(shù),因此相應(yīng)的尋址方式也有短立即數(shù)尋址和長(zhǎng)立即數(shù)尋址。指令操作所需要的數(shù)就在本指令中,這個(gè)數(shù)也稱為立即數(shù)。立即尋址的操作數(shù)分為短立即數(shù)和長(zhǎng)立即數(shù),因此相應(yīng)的尋址方式也有短立即數(shù)尋址和長(zhǎng)立即數(shù)尋址。第1頁/共117頁【例例1】采用采用8 8位短立即數(shù)尋址的位短立即數(shù)尋址的RPTRPT指令,需要重復(fù)執(zhí)行的次數(shù)包含在指令操作碼后。指令,需要重復(fù)執(zhí)行的次數(shù)包含在指令操作碼后。 RPT #k

3、 ;8RPT #k ;8位短立即數(shù)尋址位短立即數(shù)尋址 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 1 1 1 0 1 1 k RPT 操作代碼 8 位常數(shù)k 第2頁/共117頁【例例2】采用采用9 9位短立即數(shù)尋址的位短立即數(shù)尋址的RPTRPT指令,需要重復(fù)執(zhí)行的次數(shù)包含在指令操作碼后。指令,需要重復(fù)執(zhí)行的次數(shù)包含在指令操作碼后。 RPT #k ;9RPT #k ;9位短立即數(shù)尋址位短立即數(shù)尋址 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 1 1 1 1 0 k RPT 操作代碼 9 位常數(shù)k 第3頁/共117頁【

4、例例3】采用采用1313位短立即數(shù)尋址的位短立即數(shù)尋址的RPTRPT指令,需要重復(fù)執(zhí)行的次數(shù)包含在指令操作碼后。指令,需要重復(fù)執(zhí)行的次數(shù)包含在指令操作碼后。 RPT #k ;13RPT #k ;13位短立即數(shù)尋址位短立即數(shù)尋址 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 1 0 k RPT 操作代碼 13位常數(shù)k 第4頁/共117頁【例例4】采用采用1616位長(zhǎng)立即數(shù)尋址的位長(zhǎng)立即數(shù)尋址的ADDADD指令。指令。 ADD #1k ,2 ;ADD #1k ,2 ;將立即數(shù)將立即數(shù)1k1k左移左移2 2位后與累加器中位后與累加器中 ; ;的內(nèi)容相加,結(jié)果存累加器

5、中的內(nèi)容相加,結(jié)果存累加器中 第一字節(jié) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 ADD 操作代碼 移位 2 次 第二字節(jié) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1k 16 位常數(shù)=1k 第5頁/共117頁3.1.2 直接尋址方式直接尋址方式 操作地址就在指令中,按照該地址可以直接訪問寄存器,這個(gè)地址也稱為直接地址。操作地址就在指令中,按照該地址可以直接訪問寄存器,這個(gè)地址也稱為直接地址。 在在DSPDSP程序中,直接尋址通常是將指令中的程序中,直接尋址通常是

6、將指令中的數(shù)據(jù)頁指針數(shù)據(jù)頁指針DPDP和操作數(shù)合并起來和操作數(shù)合并起來作為被訪問的地址。每頁的具體操作地址的高作為被訪問的地址。每頁的具體操作地址的高9 9位是由數(shù)據(jù)頁指針位是由數(shù)據(jù)頁指針DPDP決定;低決定;低7 7位位( (又稱偏移地址量又稱偏移地址量) )是由指令操作數(shù)決定,它處于指令寄存器的最低是由指令操作數(shù)決定,它處于指令寄存器的最低7 7位有效位上。位有效位上。DPDP指針與偏移地址量共同構(gòu)成指針與偏移地址量共同構(gòu)成1616位的指令操作地址。位的指令操作地址。 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 08MSB7LSB0第第15158 8位為指令的操

7、作碼;第位為指令的操作碼;第7 7位為直接位為直接/ /間接尋址指示符,為間接尋址指示符,為0 0是直接尋址;第是直接尋址;第6 60 0位為偏移地址量。位為偏移地址量。第6頁/共117頁因此,在使用直接尋址方式時(shí),應(yīng)按下述步驟進(jìn)行:因此,在使用直接尋址方式時(shí),應(yīng)按下述步驟進(jìn)行:(1)(1)設(shè)置數(shù)據(jù)頁面。設(shè)置數(shù)據(jù)頁面。將頁值加載到將頁值加載到DPDP,加載時(shí)可使用,加載時(shí)可使用LDPLDP指令。指令。LDPLDP指令可直接加載指令可直接加載DPDP而不影響而不影響ST0ST0的其他位,該指令明確指出加載到的其他位,該指令明確指出加載到DPDP的值,例如把當(dāng)前數(shù)據(jù)頁設(shè)置成的值,例如把當(dāng)前數(shù)據(jù)頁設(shè)

8、置成32(32(地址地址1000h1000h107Fh)107Fh),可使用如下指令。,可使用如下指令。 LDP #32 ;LDP #32 ;加載數(shù)據(jù)頁指針加載數(shù)據(jù)頁指針(2)(2)指定偏移量。指定偏移量。提供提供7 7位偏移量作為指令的操作數(shù)。例如將當(dāng)前數(shù)據(jù)頁的第位偏移量作為指令的操作數(shù)。例如將當(dāng)前數(shù)據(jù)頁的第2 2個(gè)地址中的數(shù)據(jù)加到個(gè)地址中的數(shù)據(jù)加到ACCACC時(shí)。時(shí)。 ADD 1h ;ADD 1h ;將當(dāng)前數(shù)據(jù)頁中偏移量為將當(dāng)前數(shù)據(jù)頁中偏移量為1 1處的數(shù)據(jù)加到處的數(shù)據(jù)加到ACCACC 如果在一段代碼塊中所有的指令都訪問的是同一數(shù)據(jù)頁,則只需在該塊代碼的前面加載一次如果在一段代碼塊中所有的

9、指令都訪問的是同一數(shù)據(jù)頁,則只需在該塊代碼的前面加載一次DPDP即可;如果代碼塊中需要訪問不同的數(shù)據(jù)頁,則每當(dāng)訪問新的數(shù)據(jù)頁時(shí)需確保加載相應(yīng)的即可;如果代碼塊中需要訪問不同的數(shù)據(jù)頁,則每當(dāng)訪問新的數(shù)據(jù)頁時(shí)需確保加載相應(yīng)的DPDP。第7頁/共117頁【例例5】采用直接尋址的采用直接尋址的ADDADD指令。指令。 LDP #4 ;LDP #4 ;設(shè)置數(shù)據(jù)頁為設(shè)置數(shù)據(jù)頁為4(4(地址地址0200h-027Fh)0200h-027Fh)ADD 9h,5 ;ADD 9h,5 ;將數(shù)據(jù)地址將數(shù)據(jù)地址0209h0209h單元的內(nèi)容左移單元的內(nèi)容左移5 5位后加至位后加至ACCACC0000 0010 000

10、00 0010 00 0 1 00 0 1 00 0 1 00 0 1 00 0000 1001000 1001000 1001000 1001數(shù)據(jù)頁指針DP=4數(shù)據(jù)頁指針DP=4指令寄存器(IR)指令寄存器(IR)高9位來自DP高9位來自DPADD操作碼ADD操作碼移5位移5位9h9h16位數(shù)據(jù)存儲(chǔ)器地址0209h16位數(shù)據(jù)存儲(chǔ)器地址0209h低7位來自IR低7位來自IR0000 0010 00000 0010 0第8頁/共117頁【例例6】使用直接尋址的使用直接尋址的ADDCADDC指令。指令。 LDP #500 ;LDP #500 ;設(shè)置數(shù)據(jù)頁為設(shè)置數(shù)據(jù)頁為500(500(地址地址FA0

11、0h-FA7Fh)FA00h-FA7Fh)ADDC 6h ;ADDC 6h ;數(shù)據(jù)寄存器地址數(shù)據(jù)寄存器地址FA06hFA06h單元的內(nèi)容和進(jìn)位值單元的內(nèi)容和進(jìn)位值(C)(C) ; ;一起加至累加器中一起加至累加器中1111 1010 01111 1010 00 1 1 00 1 1 00 0 0 00 0 0 00 0000 0110000 01101111 1010 01111 1010 0000 0110000 0110數(shù)據(jù)頁指針DP=500數(shù)據(jù)頁指針DP=500指令寄存器(IR)指令寄存器(IR)高9位來自DP高9位來自DP6h6h16位數(shù)據(jù)存儲(chǔ)器地址FA06h16位數(shù)據(jù)存儲(chǔ)器地址FA0

12、6h低7位來自IR低7位來自IR移位數(shù)為16位的ADD操作碼移位數(shù)為16位的ADD操作碼第9頁/共117頁3.1.3 間接尋址方間接尋址方式式 指令中給出的操作數(shù)既不是立即數(shù)也不是直接地址,而是將這個(gè)操作數(shù)做地址的內(nèi)存單元的內(nèi)容作為訪問地址,即指令中的操作數(shù)是一個(gè)間接地址。間接尋址為系統(tǒng)的編程帶來了很大的靈活性和方便性。指令中給出的操作數(shù)既不是立即數(shù)也不是直接地址,而是將這個(gè)操作數(shù)做地址的內(nèi)存單元的內(nèi)容作為訪問地址,即指令中的操作數(shù)是一個(gè)間接地址。間接尋址為系統(tǒng)的編程帶來了很大的靈活性和方便性。 DSP DSP芯片內(nèi)有芯片內(nèi)有8 8個(gè)輔助寄存器個(gè)輔助寄存器AR0-AR7AR0-AR7和輔助寄存

13、器算術(shù)單元和輔助寄存器算術(shù)單元ARAUARAU,這些資源專用于間接尋址,它可以訪問,這些資源專用于間接尋址,它可以訪問64KB64KB的尋址空間而不受數(shù)據(jù)頁的限制。因此,的尋址空間而不受數(shù)據(jù)頁的限制。因此,DSPDSP的間接尋址能力非常靈活和強(qiáng)大,而且尋址的速度非??臁5拈g接尋址能力非常靈活和強(qiáng)大,而且尋址的速度非???。 在間接尋址時(shí),當(dāng)前在間接尋址時(shí),當(dāng)前ARAR的內(nèi)容用作將被訪問的數(shù)據(jù)存儲(chǔ)器的地址。因此,當(dāng)前輔助寄存器中的內(nèi)容才是真正被訪問的數(shù)據(jù)地址。的內(nèi)容用作將被訪問的數(shù)據(jù)存儲(chǔ)器的地址。因此,當(dāng)前輔助寄存器中的內(nèi)容才是真正被訪問的數(shù)據(jù)地址。 在進(jìn)行間接尋址操作的同時(shí)可以對(duì)當(dāng)前輔助寄存器中

14、的內(nèi)容在進(jìn)行間接尋址操作的同時(shí)可以對(duì)當(dāng)前輔助寄存器中的內(nèi)容( (即操作地址即操作地址) )進(jìn)行修改,甚至可以改變進(jìn)行修改,甚至可以改變ARPARP的值,為下一次的間接尋址操作做準(zhǔn)備,從而極大地提高了尋址速度。的值,為下一次的間接尋址操作做準(zhǔn)備,從而極大地提高了尋址速度。第10頁/共117頁TMS320LF240 xTMS320LF240 x提供了對(duì)提供了對(duì)ARAR的內(nèi)容進(jìn)行四種運(yùn)算的選擇:的內(nèi)容進(jìn)行四種運(yùn)算的選擇: 操作數(shù)操作數(shù)選選 項(xiàng)項(xiàng)操作數(shù)操作數(shù)選選 項(xiàng)項(xiàng)* *不增加也不減少不增加也不減少* *0 0減少變址量減少變址量* *+ +增加增加1 1* *BR0+BR0+按反方進(jìn)位增加變按反方

15、進(jìn)位增加變址量址量* *減少減少1 1* *BR0BR0按反向進(jìn)位減少變按反向進(jìn)位減少變址量址量* *0+0+增加變址量增加變址量第11頁/共117頁【例例7】當(dāng)前當(dāng)前ARAR不增不減不增不減 ADD ADD * *,8 ;,8 ;把當(dāng)前把當(dāng)前ARAR指定的數(shù)據(jù)存儲(chǔ)單元的內(nèi)容左移指定的數(shù)據(jù)存儲(chǔ)單元的內(nèi)容左移8 8位位 ; ;后加至累加器中后加至累加器中 【例例8】當(dāng)前當(dāng)前ARAR增加增加1 1 ADD ADD * *+,8,AR4 ;+,8,AR4 ;把當(dāng)前把當(dāng)前ARAR指定的數(shù)據(jù)存儲(chǔ)單元的內(nèi)容左指定的數(shù)據(jù)存儲(chǔ)單元的內(nèi)容左 ; ;移移8 8位后加至累加器中,當(dāng)前位后加至累加器中,當(dāng)前ARAR內(nèi)

16、容加內(nèi)容加1 1, ; ;指定下條指令的當(dāng)前輔助寄存器為指定下條指令的當(dāng)前輔助寄存器為AR4AR4 【例例9】當(dāng)前當(dāng)前ARAR減去減去1 1 ADD ADD * *,8 ;,8 ;把當(dāng)前把當(dāng)前ARAR指定的數(shù)據(jù)存儲(chǔ)單元的內(nèi)容左移指定的數(shù)據(jù)存儲(chǔ)單元的內(nèi)容左移8 8 ; ;位后加至累加器中,當(dāng)前位后加至累加器中,當(dāng)前ARAR內(nèi)容減內(nèi)容減1 1第12頁/共117頁【例例10】當(dāng)前當(dāng)前ARAR增加一個(gè)變址量增加一個(gè)變址量 ADD ADD * *0+,8 ;0+,8 ;把當(dāng)前把當(dāng)前ARAR指定的數(shù)據(jù)存儲(chǔ)單元的內(nèi)容左移指定的數(shù)據(jù)存儲(chǔ)單元的內(nèi)容左移8 8 ; ;位后加至累加器中,位后加至累加器中,AR0AR

17、0的內(nèi)容加到當(dāng)前的內(nèi)容加到當(dāng)前AR AR 【例例11】當(dāng)前當(dāng)前ARAR減去一個(gè)變址量減去一個(gè)變址量 ADD ADD * *0 0,8 ;,8 ;把當(dāng)前把當(dāng)前ARAR指定的數(shù)據(jù)存儲(chǔ)單元的內(nèi)容左移指定的數(shù)據(jù)存儲(chǔ)單元的內(nèi)容左移8 8 ; ;位后加至累加器中,當(dāng)前位后加至累加器中,當(dāng)前ARAR的內(nèi)容減去的內(nèi)容減去AR0AR0 ; ;內(nèi)容內(nèi)容第13頁/共117頁 匯編語言是匯編語言是DSPDSP應(yīng)用軟件的基礎(chǔ),使用匯編語言時(shí)必須要符合規(guī)定的格式,只有這樣匯編器才能將源文件轉(zhuǎn)換為機(jī)器語言的目標(biāo)文件。應(yīng)用軟件的基礎(chǔ),使用匯編語言時(shí)必須要符合規(guī)定的格式,只有這樣匯編器才能將源文件轉(zhuǎn)換為機(jī)器語言的目標(biāo)文件。 1

18、 1匯編語言源程序的標(biāo)準(zhǔn)格式匯編語言源程序的標(biāo)準(zhǔn)格式 匯編語句格式一般包含匯編語句格式一般包含4 4部分:標(biāo)號(hào)、指令、操作數(shù)和注釋,以助記符指令為例,格式如下部分:標(biāo)號(hào)、指令、操作數(shù)和注釋,以助記符指令為例,格式如下 標(biāo)號(hào)標(biāo)號(hào): : 指令指令 操作數(shù)操作數(shù) ; ;注釋注釋 其中其中 內(nèi)的內(nèi)容為可選項(xiàng)。內(nèi)的內(nèi)容為可選項(xiàng)。 在編寫匯編語句時(shí),必須遵循以下格式:在編寫匯編語句時(shí),必須遵循以下格式: (1)(1)語句必須以標(biāo)號(hào)、空格、星號(hào)或分號(hào)開始。語句必須以標(biāo)號(hào)、空格、星號(hào)或分號(hào)開始。 第14頁/共117頁(2)(2)若使用標(biāo)號(hào),則必須從第若使用標(biāo)號(hào),則必須從第1 1列開始。標(biāo)號(hào)長(zhǎng)度最多為列開始。標(biāo)

19、號(hào)長(zhǎng)度最多為3232個(gè)字符,由個(gè)字符,由A-ZA-Z、a-za-z、0-90-9、_ _和和$ $等組成,但第等組成,但第1 1個(gè)字符不能為數(shù)字。標(biāo)號(hào)后可以跟一個(gè)冒號(hào)個(gè)字符不能為數(shù)字。標(biāo)號(hào)后可以跟一個(gè)冒號(hào)(:)(:),但并不作為標(biāo)號(hào)的一部分。,但并不作為標(biāo)號(hào)的一部分。(3)(3)每部分必須由每部分必須由1 1個(gè)或多個(gè)空格分開。個(gè)或多個(gè)空格分開。 (4)(4)開始于第開始于第1 1列的注釋須用星號(hào)列的注釋須用星號(hào)( (* *) )或分號(hào)或分號(hào)(;)(;)標(biāo)示,但在其他列開始的注釋前面只能用分號(hào)。標(biāo)示,但在其他列開始的注釋前面只能用分號(hào)。(5)(5)指令一定不能從第指令一定不能從第1 1列開始,否

20、則將被視為標(biāo)號(hào)。指令包括助記符指令、匯編偽指令列開始,否則將被視為標(biāo)號(hào)。指令包括助記符指令、匯編偽指令( (如如.data.data,.set).set)等。等。 (6)(6)操作數(shù)可以為列表形式,匯編器允許使用常數(shù)、符號(hào)或表達(dá)式作為地址、立即數(shù)或間接尋址。當(dāng)操作數(shù)為立即數(shù)時(shí),使用操作數(shù)可以為列表形式,匯編器允許使用常數(shù)、符號(hào)或表達(dá)式作為地址、立即數(shù)或間接尋址。當(dāng)操作數(shù)為立即數(shù)時(shí),使用# #號(hào)作為前綴;操作數(shù)為間接尋址時(shí),使用號(hào)作為前綴;操作數(shù)為間接尋址時(shí),使用* *號(hào),將操作數(shù)的內(nèi)容作為地址。號(hào),將操作數(shù)的內(nèi)容作為地址。 第15頁/共117頁2 2匯編語言的指令集匯編語言的指令集 TMS32

21、0LF240 x TMS320LF240 x的匯編語言共的匯編語言共8686條,分為條,分為6 6大類,分別是累加器、算術(shù)和邏輯指令;輔助寄存器和數(shù)據(jù)頁指針指令;大類,分別是累加器、算術(shù)和邏輯指令;輔助寄存器和數(shù)據(jù)頁指針指令;TREGTREG、PREGPREG和乘法指令;跳轉(zhuǎn)指令;控制指令;和乘法指令;跳轉(zhuǎn)指令;控制指令;I/OI/O和存儲(chǔ)器操作指令。和存儲(chǔ)器操作指令。 3 3匯編指令的語法和說明匯編指令的語法和說明 在介紹匯編指令之前,先把所用到的主要操作數(shù)做一規(guī)定:在介紹匯編指令之前,先把所用到的主要操作數(shù)做一規(guī)定: dmadma:數(shù)據(jù)存儲(chǔ)器地址的低:數(shù)據(jù)存儲(chǔ)器地址的低7 7位位(LSB)

22、(LSB)shiftshift:左移位數(shù):左移位數(shù)0 01515n n:指定下一次的輔助寄存器:指定下一次的輔助寄存器ARPARP值值(0(07)7)k k:8 8位短立即數(shù)位短立即數(shù)1k1k:1616位長(zhǎng)立即數(shù)位長(zhǎng)立即數(shù)indind:是一個(gè)間接尋址變量,可?。菏且粋€(gè)間接尋址變量,可取* *、* *+ +、* *、* *0+0+、* *0 0、 * *BR0+BR0+、* *BR0BR0第16頁/共117頁(1)ABS(1)ABS(累加器取絕對(duì)值累加器取絕對(duì)值) ) 語法語法:ABSABS 說明說明:計(jì)算計(jì)算ACCACC的絕對(duì)值,進(jìn)位位的絕對(duì)值,進(jìn)位位C C置置0 0。指令受。指令受OVMOV

23、M狀態(tài)標(biāo)志位影響,執(zhí)行的結(jié)果影響狀態(tài)標(biāo)志位影響,執(zhí)行的結(jié)果影響C C和和OVOV。如果。如果ACCACC的內(nèi)容大于或等于的內(nèi)容大于或等于0 0,執(zhí)行指令后其內(nèi)容不變;,執(zhí)行指令后其內(nèi)容不變;若累加器內(nèi)容小于若累加器內(nèi)容小于0 0,執(zhí)行指令后用其對(duì),執(zhí)行指令后用其對(duì)2 2的補(bǔ)碼數(shù)的補(bǔ)碼數(shù)( (即它的絕對(duì)值即它的絕對(duì)值) )取代原來的值取代原來的值。 ACC=8000 0000h ACC=8000 0000h時(shí)為特殊情況,若溢出方式位時(shí)為特殊情況,若溢出方式位OVM=0OVM=0,對(duì),對(duì)8000 0000h8000 0000h取絕對(duì)值取絕對(duì)值( (執(zhí)行執(zhí)行ABSABS指令指令) )的結(jié)果是的結(jié)果是

24、8000 0000h8000 0000h;若溢出方式位;若溢出方式位OVM=1OVM=1,對(duì),對(duì)8000 0000h8000 0000h取絕對(duì)值的結(jié)果是取絕對(duì)值的結(jié)果是7FFF FFFFh7FFF FFFFh,無論哪種情況下,狀態(tài)位,無論哪種情況下,狀態(tài)位OVOV都置都置1 1。 第17頁/共117頁【例例3-143-14】ABS 12341234h hACCACCC C執(zhí)行指令前執(zhí)行指令前0 01234h1234h執(zhí)行指令后執(zhí)行指令后C C0FFFFFFFFh0FFFFFFFFhACCACCC C執(zhí)行指令前執(zhí)行指令前0 01h1h執(zhí)行指令后執(zhí)行指令后C C【例例3-153-15】ABS ;(

25、OVM=0)ABS ;(OVM=0) 80000000h80000000hACCACCC C執(zhí)行指令前執(zhí)行指令前0 080000000h80000000h執(zhí)行指令后執(zhí)行指令后C COVOV1 1OVOV第18頁/共117頁(2)ADD (2)ADD 累加器加累加器加 語法語法:ADD dma ,shift ADD dma ,shift 直接尋址直接尋址 ADD dma,16 ADD dma,16 左移左移1616位直接尋址位直接尋址 ADD ind ,shift ,ARn ADD ind ,shift ,ARn 間接尋址間接尋址 ADD ind,16 ,ARn ADD ind,16 ,ARn

26、左移左移1616位間接尋址位間接尋址 ADD #k ADD #k 短立即數(shù)尋址短立即數(shù)尋址 ADD #1k ,shift ADD #1k ,shift 長(zhǎng)立即數(shù)尋址長(zhǎng)立即數(shù)尋址 說明說明:被尋址的數(shù)據(jù)單元的內(nèi)容或一個(gè)立即數(shù)左移后加到累加器,在移位時(shí)低位填被尋址的數(shù)據(jù)單元的內(nèi)容或一個(gè)立即數(shù)左移后加到累加器,在移位時(shí)低位填0 0。如果符號(hào)擴(kuò)展方式位。如果符號(hào)擴(kuò)展方式位SXM=1SXM=1,則高位進(jìn)行符號(hào)擴(kuò)展;如果,則高位進(jìn)行符號(hào)擴(kuò)展;如果SXM=0SXM=0,則高位填,則高位填0 0。 如果采用間接尋址并更新如果采用間接尋址并更新ARPARP的值,此時(shí)必須指定一個(gè)的值,此時(shí)必須指定一個(gè)shift(

27、shift(移位移位) )操作數(shù)。如果不希望產(chǎn)生移位,則將操作數(shù)。如果不希望產(chǎn)生移位,則將0 0作為操作數(shù),例如作為操作數(shù),例如ADD ADD * *+,0,AR2+,0,AR2。第19頁/共117頁 通常,如果相加的結(jié)果產(chǎn)生進(jìn)位時(shí),通常,如果相加的結(jié)果產(chǎn)生進(jìn)位時(shí),C=1C=1;不產(chǎn)生進(jìn)位時(shí),;不產(chǎn)生進(jìn)位時(shí),C=0C=0。但是,當(dāng)左移但是,當(dāng)左移1616位進(jìn)行相加時(shí),如果相加的結(jié)果產(chǎn)生進(jìn)位,則位進(jìn)行相加時(shí),如果相加的結(jié)果產(chǎn)生進(jìn)位,則C=1C=1;不產(chǎn)生進(jìn)位時(shí),則;不產(chǎn)生進(jìn)位時(shí),則C C不受影響。這樣,在把不受影響。這樣,在把3232位數(shù)加到累加器時(shí),可使累加器產(chǎn)生正確的符號(hào)進(jìn)位。位數(shù)加到累加器

28、時(shí),可使累加器產(chǎn)生正確的符號(hào)進(jìn)位。 【例例3-17 3-17 】ADD 1,1 ;DP=6:ADD 1,1 ;DP=6:地址地址0300h0300h037Fh037Fh 1h1h2h2h數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器301h301hACCACCC C執(zhí)行指令前執(zhí)行指令前執(zhí)行指令后執(zhí)行指令后01h1h4h4hC C數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器301h301hACCACC第20頁/共117頁【例例3-18 3-18 】ADD ADD * *+,0,AR0+,0,AR0 2h2h2h2h數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器302h302hACCACCC C執(zhí)行指令前執(zhí)行指令前執(zhí)行指令后執(zhí)行指令后0 02h2h04h04hC C數(shù)據(jù)存

29、儲(chǔ)器數(shù)據(jù)存儲(chǔ)器302h302hACCACC0302h0302h4 40 00303h0303hARPARPAR4AR4ARPARPAR4AR42h2hC CACCACC執(zhí)行指令前執(zhí)行指令前0 03h3hC C執(zhí)行指令后執(zhí)行指令后ACCACC【例例3-19 3-19 】ADD #1h ;ADD #1h ;加短立即數(shù)加短立即數(shù) 第21頁/共117頁(3)ADDC (3)ADDC 帶進(jìn)位的累加器加帶進(jìn)位的累加器加 語法:語法:ADDC dma ADDC dma 直接尋址直接尋址 ADDC ind ,ARn ADDC ind ,ARn 間接尋址間接尋址 說明:說明:將數(shù)據(jù)存儲(chǔ)單元的內(nèi)容和進(jìn)位位將數(shù)據(jù)存

30、儲(chǔ)單元的內(nèi)容和進(jìn)位位C C的值加到累加器中,符號(hào)不擴(kuò)展,進(jìn)位位受正常方式影響的值加到累加器中,符號(hào)不擴(kuò)展,進(jìn)位位受正常方式影響。指令受溢出方式位。指令受溢出方式位OVMOVM位影響,執(zhí)行指令的結(jié)果影響位影響,執(zhí)行指令的結(jié)果影響C C和溢出標(biāo)志位和溢出標(biāo)志位OVOV。【例例3-21 3-21 】ADDC 0 ;DP=6:ADDC 0 ;DP=6:地址地址0300h0300h037Fh037Fh 1 104h04h13h13h數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器300h300hACCACCC C執(zhí)行指令前執(zhí)行指令前執(zhí)行指令后執(zhí)行指令后0 004h04h18h18hC C數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器300h300hACCA

31、CC第22頁/共117頁【例例3-22 3-22 】ADDC ADDC * *,AR4 ;OVM=0,AR4 ;OVM=0 1 10h0h0FFFFFFFFh0FFFFFFFFh300h300hACCACCC C執(zhí)行指令前執(zhí)行指令前執(zhí)行指令后執(zhí)行指令后1 10h0h0h0hC C數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器300h300hACCACC0300h0300h0 04 402FFh02FFhARPARPAR0AR0ARPARPAR0AR0OVOV0 0OVOV數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器第23頁/共117頁(5)ADDT TREG(5)ADDT TREG指定移位的累加器加指定移位的累加器加 語法語法:ADDT dm

32、a ADDT dma 直接尋址直接尋址 ADDT ind ,ARn ADDT ind ,ARn 間接尋址間接尋址說明說明:將數(shù)據(jù)存儲(chǔ)單元的內(nèi)容左移后加到累加器中,左移的位數(shù)由將數(shù)據(jù)存儲(chǔ)單元的內(nèi)容左移后加到累加器中,左移的位數(shù)由TREGTREG的低的低4 4位位(0-15)(0-15)確定確定。數(shù)據(jù)存儲(chǔ)單元中數(shù)據(jù)的符號(hào)擴(kuò)展受符號(hào)擴(kuò)展方式位。數(shù)據(jù)存儲(chǔ)單元中數(shù)據(jù)的符號(hào)擴(kuò)展受符號(hào)擴(kuò)展方式位SXMSXM控制。指令受控制。指令受SXMSXM和和OVMOVM位影響,執(zhí)行結(jié)果影響位影響,執(zhí)行結(jié)果影響C C和和OVOV?!纠?-25 3-25 】ADDT 127 ;DP=4:ADDT 127 ;DP=4:地址

33、地址0200h-027Fh0200h-027Fh;SXM=0 SXM=0 0FF94h0FF94h0F715h0F715hTREGTREGACCACCC C執(zhí)行指令前執(zhí)行指令前執(zhí)行指令后執(zhí)行指令后0 00FF94h0FF94h0F7A5h0F7A5hC C數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器TREGTREGACCACC09h09h09h09h027Fh027Fh027Fh027Fh數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器第24頁/共117頁【例例3-26 3-26 】ADDT ADDT * *,AR4 ;SXM=0,AR4 ;SXM=0 0FF94h0FF94h0F715h0F715h數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器TREGTREGACCA

34、CCC C執(zhí)行指令前執(zhí)行指令前執(zhí)行指令后執(zhí)行指令后0 00FF94h0FF94h0F7A5h0F7A5hC C數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器TREGTREGACCACC09h09h09h09h027Fh027Fh027Fh027Fh027Fh027Fh0 0027Eh027Eh4 4ARPARPAR0AR0ARPARPAR0AR0第25頁/共117頁(6)ADRK (6)ADRK 輔助寄存器加短立即數(shù)輔助寄存器加短立即數(shù) 語法語法:ADRK #k ADRK #k 短立即數(shù)尋址短立即數(shù)尋址 說明說明:8 8位正整數(shù)按右對(duì)齊方式加到當(dāng)前輔助寄存器中位正整數(shù)按右對(duì)齊方式加到當(dāng)前輔助寄存器中,當(dāng)前輔助寄存器由,

35、當(dāng)前輔助寄存器由ARPARP指定。指定。對(duì)輔助寄存器的所有運(yùn)算都是無符號(hào)數(shù)運(yùn)算。對(duì)輔助寄存器的所有運(yùn)算都是無符號(hào)數(shù)運(yùn)算。 【例例3-27 3-27 】ADRK #80h 執(zhí)行指令前執(zhí)行指令前執(zhí)行指令后執(zhí)行指令后4321h4321h5 55 543A1h43A1hARPARPAR5AR5ARPARPAR5AR5第26頁/共117頁(7)AND (7)AND 和累加器進(jìn)行與操作和累加器進(jìn)行與操作 語法語法:AND dma AND dma 直接尋址直接尋址 AND ind ,ARn AND ind ,ARn 間接尋址間接尋址 AND #1k,shift AND #1k,shift 長(zhǎng)立即數(shù)尋址長(zhǎng)立即

36、數(shù)尋址 AND #1k,16 AND #1k,16 左移左移1616位的長(zhǎng)立即數(shù)尋址位的長(zhǎng)立即數(shù)尋址說明說明:如果是直接或間接尋址,數(shù)據(jù)存儲(chǔ)單元中的數(shù)和累加器的低:如果是直接或間接尋址,數(shù)據(jù)存儲(chǔ)單元中的數(shù)和累加器的低1616位進(jìn)行與運(yùn)算,結(jié)果放在累加器的低位進(jìn)行與運(yùn)算,結(jié)果放在累加器的低1616位,位,累加器的高累加器的高1616位清位清0 0。如果是立即數(shù)尋址,長(zhǎng)立即數(shù)可以被左移,。如果是立即數(shù)尋址,長(zhǎng)立即數(shù)可以被左移,沒有被移位數(shù)填滿的高位和低位均填沒有被移位數(shù)填滿的高位和低位均填0 0,移位結(jié)果與累加器的內(nèi)容邏輯與。指令不受符號(hào)擴(kuò)展位,移位結(jié)果與累加器的內(nèi)容邏輯與。指令不受符號(hào)擴(kuò)展位SX

37、MSXM影響。影響?!纠?-303-30】 AND #00FFh,4 AND #00FFh,412345678h12345678h執(zhí)行指令前執(zhí)行指令前執(zhí)行指令后執(zhí)行指令后00000670h00000670hACCACCACCACC第27頁/共117頁【例例3-28 3-28 】AND 16 ;DP=4:AND 16 ;DP=4:地址地址0200h0200h027Fh027Fh 00FFh00FFh12345678h12345678h數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器210h210hACCACC執(zhí)行指令前執(zhí)行指令前執(zhí)行指令后執(zhí)行指令后00FFh00FFh00000078h00000078h數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)

38、器210h210hACCACC【例例3-29 3-29 】 AND AND * *0FF00h0FF00h12345678h12345678h數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器301h301hACCACC執(zhí)行指令前執(zhí)行指令前執(zhí)行指令后執(zhí)行指令后0FF00h0FF00h00005600h00005600h數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器301h301hACCACC0301h0301h4 44 40301h0301hARPARPAR4AR4ARPARPAR4AR4第28頁/共117頁(8)APAC PREG(8)APAC PREG加到累加器加到累加器 語法語法:APACAPAC 說明說明:PREGPREG寄存器的內(nèi)容移位后

39、加到累加器寄存器的內(nèi)容移位后加到累加器,移位的位數(shù)由狀態(tài)寄存器,移位的位數(shù)由狀態(tài)寄存器ST1ST1中的中的PMPM位確定。指令不受符號(hào)擴(kuò)展位位確定。指令不受符號(hào)擴(kuò)展位SXMSXM影響,影響,PREGPREG總是進(jìn)行符號(hào)擴(kuò)展。指令受總是進(jìn)行符號(hào)擴(kuò)展。指令受PMPM和和OVMOVM位影響,結(jié)果影響位位影響,結(jié)果影響位C C和溢出標(biāo)志位和溢出標(biāo)志位OVOV?!纠?-313-31】 APAC ;PM=01 APAC ;PM=01 40h40h20h20hPREGPREGACCACC執(zhí)行指令前執(zhí)行指令前執(zhí)行指令后執(zhí)行指令后40h40hA0hA0hPREGPREGACCACC0 0C CC C第29頁/

40、共117頁(9)B (9)B 無條件跳轉(zhuǎn)無條件跳轉(zhuǎn) 語法語法:B pma,ind,ARn B pma,ind,ARn 間接尋址間接尋址 說明說明:程序跳轉(zhuǎn)到程序跳轉(zhuǎn)到pmapma指定的地址指定的地址,并根據(jù)指令修改當(dāng)前輔助寄存器,并根據(jù)指令修改當(dāng)前輔助寄存器(ARP)(ARP)。pmapma值既可以是一個(gè)標(biāo)號(hào),也可是一個(gè)數(shù)字地址。值既可以是一個(gè)標(biāo)號(hào),也可是一個(gè)數(shù)字地址。 【例例3-323-32】 B 191, B 191,* *+,AR1+,AR1 將將191191加載到程序計(jì)數(shù)器,并且程序從該地址繼續(xù)執(zhí)行,當(dāng)前輔助寄存器加加載到程序計(jì)數(shù)器,并且程序從該地址繼續(xù)執(zhí)行,當(dāng)前輔助寄存器加1 1,并

41、且,并且ARPARP被設(shè)置為指向輔助寄存器被設(shè)置為指向輔助寄存器1(AR1)1(AR1)。(10)BACC (10)BACC 跳轉(zhuǎn)到累加器指定的地址跳轉(zhuǎn)到累加器指定的地址語法語法:BACCBACC說明說明:程序跳轉(zhuǎn)到累加器低:程序跳轉(zhuǎn)到累加器低1616位所指定的地址位所指定的地址。 【例例3-333-33】 BACC ; BACC ;假設(shè)假設(shè)ACCACC低低1616位為位為191191將數(shù)值將數(shù)值191191加到程序計(jì)數(shù)器,并且程序從該地址繼續(xù)執(zhí)行。加到程序計(jì)數(shù)器,并且程序從該地址繼續(xù)執(zhí)行。 第30頁/共117頁(11)BANZ (11)BANZ 輔助寄存器非輔助寄存器非0 0跳轉(zhuǎn)跳轉(zhuǎn) 語法語

42、法:BANZ pma,ind,ARn BANZ pma,ind,ARn 間接尋址間接尋址 說明說明:如果當(dāng)前輔助寄存器的值如果當(dāng)前輔助寄存器的值(AR)(AR)不為不為0 0,則程序跳轉(zhuǎn)到,則程序跳轉(zhuǎn)到pmapma指定的地址(指定的地址(pmapma值既可以是一個(gè)標(biāo)號(hào),也可以是一個(gè)數(shù)字地址),否則執(zhí)行下一條指令值既可以是一個(gè)標(biāo)號(hào),也可以是一個(gè)數(shù)字地址),否則執(zhí)行下一條指令。根據(jù)指令修改當(dāng)前輔助寄存器。根據(jù)指令修改當(dāng)前輔助寄存器(ARP)(ARP)和和ARAR內(nèi)容內(nèi)容( (缺省時(shí)減缺省時(shí)減1)1)。該指令常用于控制循環(huán)體的執(zhí)行,如果要使循環(huán)體執(zhí)行。該指令常用于控制循環(huán)體的執(zhí)行,如果要使循環(huán)體執(zhí)行

43、N N次,則可在循環(huán)體執(zhí)行前將用于計(jì)數(shù)的輔助寄存器初始化為次,則可在循環(huán)體執(zhí)行前將用于計(jì)數(shù)的輔助寄存器初始化為N-1N-1第31頁/共117頁【例例3-343-34】 BANZ PGM0 ;PGM0 BANZ PGM0 ;PGM0為標(biāo)號(hào)為標(biāo)號(hào) 0 05h5h0 04h4hARPARPAR0AR0ARPARPAR0AR0執(zhí)行指令前執(zhí)行指令前執(zhí)行指令后執(zhí)行指令后 因?yàn)橐驗(yàn)锳R0AR0的內(nèi)容不為的內(nèi)容不為0 0,則將,則將PGM0PGM0的地址加載到程序計(jì)數(shù)器的地址加載到程序計(jì)數(shù)器(PC)(PC),程序從該處運(yùn)行。對(duì)當(dāng)前,程序從該處運(yùn)行。對(duì)當(dāng)前ARAR減減1 1,變?yōu)?,變?yōu)?h4h。 0 00h0h

44、0 0FFFFhFFFFhARPARPAR0AR0ARPARPAR0AR0執(zhí)行指令前執(zhí)行指令前執(zhí)行指令后執(zhí)行指令后 因?yàn)橐驗(yàn)锳R0AR0的內(nèi)容為的內(nèi)容為0 0,所以不跳轉(zhuǎn),而是將,所以不跳轉(zhuǎn),而是將PCPC加加2 2,即繼續(xù)執(zhí)行,即繼續(xù)執(zhí)行BANZBANZ后面的指令。當(dāng)前后面的指令。當(dāng)前ARAR減減1 1,變?yōu)?,變?yōu)镕FFFhFFFFh。第32頁/共117頁【例例3-35 3-35 】編制一個(gè)循環(huán)體程序,將數(shù)據(jù)存儲(chǔ)單元編制一個(gè)循環(huán)體程序,將數(shù)據(jù)存儲(chǔ)單元0060h0060h0063h0063h的內(nèi)容加到累加器中。的內(nèi)容加到累加器中。 MAR MAR * *,AR0 ;,AR0 ;設(shè)置設(shè)置ARPA

45、RP指向指向AR0AR0 LAR AR1,#3 ; LAR AR1,#3 ;加載加載3 3到到AR1AR1,循環(huán),循環(huán)3 3次次 LAR AR0,#60h ; LAR AR0,#60h ;加載加載60h60h到到AR0AR0PGM191PGM191:ADD ADD * *+,AR1 ;+,AR1 ;將將AR0AR0指向的地址中數(shù)據(jù)加到指向的地址中數(shù)據(jù)加到ACCACC, ; ;并且并且AR0AR0值加值加1 1,ARPARP指向指向AR1AR1 BANZ PGM191, BANZ PGM191,* *-,AR0 ;AR1-,AR0 ;AR1不為不為0 0時(shí)循環(huán),時(shí)循環(huán),AR1AR1值減值減1 1

46、, ;ARP ;ARP指向指向AR0AR0第33頁/共117頁(12)BCND (12)BCND 條件跳轉(zhuǎn)條件跳轉(zhuǎn) 語法語法:BCND pma,cond1,cond2,BCND pma,cond1,cond2, 說明說明:如果指定的:如果指定的條件都滿足條件都滿足,則程序跳轉(zhuǎn)到,則程序跳轉(zhuǎn)到pmapma指定的地址;若條件不滿足,則執(zhí)行下一條指令。指定的地址;若條件不滿足,則執(zhí)行下一條指令。 BIOBIO無條件無條件無條件無條件UNCUNC進(jìn)位位被清進(jìn)位位被清0 0C=0C=0NCNC測(cè)試測(cè)試/ /控制標(biāo)志位被置控制標(biāo)志位被置1 1TC=1TC=1TCTC累加器的值大于或等累加器的值大于或等于于

47、0 0ACC0ACC0GEQGEQ測(cè)試測(cè)試/ /控制標(biāo)志位被清控制標(biāo)志位被清0 0TC=0TC=0NTCNTC累加器的值大于累加器的值大于0 0ACC0ACC0GTGT引腳為低電平引腳為低電平BIOBIO為為0 0累加器的值小于或等累加器的值小于或等于于0 0ACC0ACC0LEQLEQ溢出標(biāo)志位置溢出標(biāo)志位置1 1OV=1OV=1OVOV累加器的值小于累加器的值小于0 0ACC0ACC0LTLT溢出標(biāo)志位清溢出標(biāo)志位清0 0OV=0OV=0NOVNOV累加器的值不等于累加器的值不等于0 0ACC0ACC0NEQNEQ進(jìn)位位被置進(jìn)位位被置1 1C=1C=1C C累加器的值等于累加器的值等于0

48、0ACC=0ACC=0EQEQ說說 明明條件條件操作操作數(shù)符數(shù)符號(hào)號(hào)說說 明明條件條件操作數(shù)操作數(shù)符號(hào)符號(hào)第34頁/共117頁【例例3-363-36】 BCND PGM191,LEQ,C BCND PGM191,LEQ,C 如果累加器的內(nèi)容小于或等于如果累加器的內(nèi)容小于或等于0 0,且進(jìn)位位為,且進(jìn)位位為1 1,則程序跳轉(zhuǎn)到,則程序跳轉(zhuǎn)到PGM191PGM191指定的地址;若條件不滿足,則程序從指定的地址;若條件不滿足,則程序從PC+2PC+2處繼續(xù)執(zhí)行。處繼續(xù)執(zhí)行。(13)BIT (13)BIT 位測(cè)試位測(cè)試語法語法:BIT dma,bit code BIT dma,bit code 直接尋

49、址直接尋址 BIT ind,bit code,ARn BIT ind,bit code,ARn 間接尋址間接尋址 說明說明:將數(shù)據(jù)存儲(chǔ)單元中的:將數(shù)據(jù)存儲(chǔ)單元中的指定位復(fù)制到狀態(tài)寄存器指定位復(fù)制到狀態(tài)寄存器ST1ST1的的TCTC位位。指定的位號(hào)為。指定的位號(hào)為1515bit codebit code。結(jié)果影響狀態(tài)標(biāo)志位。結(jié)果影響狀態(tài)標(biāo)志位TCTC。 第35頁/共117頁【例例3-373-37】 BIT 0h,15 ;DP=6, BIT 0h,15 ;DP=6,測(cè)試測(cè)試300h300h中數(shù)值的最低位中數(shù)值的最低位 4DC8h4DC8h* *4DC8h4DC8h0 0300h300hTCTC30

50、0h300hTCTC執(zhí)行指令前執(zhí)行指令前執(zhí)行指令后執(zhí)行指令后數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器【例例3-38 3-38 】 BIT BIT * *,0,AR1 ;,0,AR1 ;測(cè)試測(cè)試310h310h中數(shù)值的最高位,然后設(shè)置中數(shù)值的最高位,然后設(shè)置ARP=1ARP=18000h8000h* *8000h8000h1 1310h310hTCTC310h310hTCTC執(zhí)行指令后執(zhí)行指令后數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器0 00310h0310h1 10310h0310hARPARPAR0AR0ARPARPAR0AR0執(zhí)行指令前執(zhí)行指令前第36頁/共117頁(14)BITT TRE

51、G(14)BITT TREG指定位測(cè)試指定位測(cè)試 語法語法:BITT dma BITT dma 直接尋址直接尋址 BITT ind,ARn BITT ind,ARn 間接尋址間接尋址說明說明:將數(shù)據(jù)存儲(chǔ)單元中數(shù)的被:將數(shù)據(jù)存儲(chǔ)單元中數(shù)的被指定位復(fù)制到狀態(tài)寄存器指定位復(fù)制到狀態(tài)寄存器ST1ST1的的TCTC位。指定的位號(hào)為位。指定的位號(hào)為1515TREG(3:0)TREG(3:0),即,即1515減去減去TREGTREG寄存器的低寄存器的低4 4位值。結(jié)果影響狀態(tài)標(biāo)志位位值。結(jié)果影響狀態(tài)標(biāo)志位TCTC?!纠?-393-39】 BITT 0h ;DP=6 BITT 0h ;DP=6,測(cè)試數(shù)據(jù)的第

52、,測(cè)試數(shù)據(jù)的第1414位位 1h1h* *1h1h1 1TREGTREGTCTCTREGTREGTCTC執(zhí)行指令后執(zhí)行指令后數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器4DC8h4DC8h4DC8h4DC8h0300h0300h0300h0300h執(zhí)行指令前執(zhí)行指令前第37頁/共117頁【例例3-403-40】 BITT BITT * * ; ;測(cè)試測(cè)試310h310h地址處數(shù)據(jù)的第地址處數(shù)據(jù)的第1 1位位8000h8000h0Eh0Eh8000h8000h0Eh0Eh310h310hTREGTREG310h310hTREGTREG執(zhí)行指令后執(zhí)行指令后數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器1 1

53、0310h0310h1 10310h0310hARPARPAR1AR1ARPARPAR1AR1執(zhí)行指令前執(zhí)行指令前* *0 0TCTCTCTC第38頁/共117頁(17)CALA (17)CALA 累加器指定地址的子程序調(diào)用累加器指定地址的子程序調(diào)用語法語法:CALACALA說明說明:當(dāng)前程序計(jì)數(shù)器:當(dāng)前程序計(jì)數(shù)器(PC)+1(PC)+1后壓入堆棧頂后壓入堆棧頂(TOS)(TOS),然后將,然后將累加器的低累加器的低1616位加載到位加載到PCPC,程序從該地址執(zhí)行。,程序從該地址執(zhí)行。【例例3-453-45】 CALA CALA 25h25h83h83h100h100h83h83h83h83

54、h26h26hPCPCACCACC指令執(zhí)行前指令執(zhí)行前PCPCACCACC指令執(zhí)行后指令執(zhí)行后TOSTOSTOSTOS第39頁/共117頁(18)CALL (18)CALL 無條件調(diào)用無條件調(diào)用 語法語法:CALL pma,ind,ARn CALL pma,ind,ARn 帶長(zhǎng)立即數(shù)源的間接尋址帶長(zhǎng)立即數(shù)源的間接尋址 說明說明:當(dāng)前程序計(jì)數(shù)器:當(dāng)前程序計(jì)數(shù)器(PC)+2(PC)+2后壓入堆棧頂后壓入堆棧頂(TOS)(TOS),然后將,然后將pmapma值加載到值加載到PCPC,程序從該處執(zhí)行,并按指定的方式修改當(dāng)前,程序從該處執(zhí)行,并按指定的方式修改當(dāng)前ARAR和和ARPARP。 【例例3-4

55、63-46】 CALL 191, CALL 191,* *+,AR0+,AR01 105h05h30h30h100h100h0 006h06h0BFh0BFh32h32hARPARPAR1AR1指令執(zhí)行前指令執(zhí)行前ARPARPAR1AR1指令執(zhí)行后指令執(zhí)行后TOSTOSTOSTOSPCPCPCPC第40頁/共117頁(19)CC (19)CC 條件調(diào)用條件調(diào)用 語法語法:CC pma,cond1,cond2,CC pma,cond1,cond2,說明說明:如果:如果指定的條件都得到滿足指定的條件都得到滿足,則將返回地址,則將返回地址(PC+2)壓入堆棧頂,把壓入堆棧頂,把pmapma值加載到值

56、加載到PCPC,實(shí)現(xiàn)程序調(diào)用;若條件不滿足,則,實(shí)現(xiàn)程序調(diào)用;若條件不滿足,則PCPC加加2 2。 【例例3-473-47】CC PGM191,LEQ,C CC PGM191,LEQ,C 若累加器的內(nèi)容小于或等于若累加器的內(nèi)容小于或等于0 0,且進(jìn)位位,且進(jìn)位位C C為為1 1,則將,則將0BFh(191)0BFh(191)裝入裝入PCPC,程序從該處執(zhí)行;若這些條件不同時(shí)滿足,則從,程序從該處執(zhí)行;若這些條件不同時(shí)滿足,則從CCCC指令后的指令繼續(xù)執(zhí)行。指令后的指令繼續(xù)執(zhí)行。 第41頁/共117頁(20)CLRC (20)CLRC 控制位清控制位清0 0語法語法:CLRC CLRC 控制位控

57、制位 說明說明:將:將指定的控制位清指定的控制位清0 0,控制位包括:,控制位包括:C C、CNFCNF、INTMINTM、OVMOVM、SXMSXM、TCTC、XFXF。(21)CMPL (21)CMPL 累加器邏輯取反累加器邏輯取反 語法語法:CMPLCMPL說明說明:將累加器邏輯取反,進(jìn)位位不受影響。:將累加器邏輯取反,進(jìn)位位不受影響。 【例例3-49 3-49 】 CMPL CMPL0F7982513h0F7982513h0867DAECh0867DAECh指令執(zhí)行前指令執(zhí)行前指令執(zhí)行后指令執(zhí)行后ACCACCACCACCC CC C第42頁/共117頁(22)CMPR (22)CMPR

58、 輔助寄存器與輔助寄存器與AR0AR0比較比較 語法語法:CMPR CM ;CM=0-3CMPR CM ;CM=0-3說明說明:根據(jù):根據(jù)CMCM值指定值指定的的比較條件比較條件,比較當(dāng)前輔助寄存器和,比較當(dāng)前輔助寄存器和AR0AR0值的大小,比較值的大小,比較結(jié)果存入狀態(tài)寄存器結(jié)果存入狀態(tài)寄存器ST1ST1的的TCTC位位。如果比較條件成立。如果比較條件成立TC=1TC=1;否則;否則TC=0TC=0。比較時(shí)輔助寄存器的值以無符號(hào)操作數(shù)形式參與。比較時(shí)輔助寄存器的值以無符號(hào)操作數(shù)形式參與。 CMCM說說 明明0 0測(cè)試當(dāng)前測(cè)試當(dāng)前ARAR是否等于是否等于AR0AR01 1測(cè)試當(dāng)前測(cè)試當(dāng)前AR

59、AR是否小于是否小于AR0AR02 2測(cè)試當(dāng)前測(cè)試當(dāng)前ARAR是否大于是否大于AR0AR03 3測(cè)試當(dāng)前測(cè)試當(dāng)前ARAR是否不等于是否不等于AR0AR0第43頁/共117頁【例例3-503-50】 CMPR 2 ; CMPR 2 ;當(dāng)前當(dāng)前ARAR值大于值大于AR0AR0否?否?4 40FFFFh0FFFFh7FFFh7FFFh* *4 40FFFFh0FFFFh7FFFh7FFFh0 0ARPARPAR0AR0指令執(zhí)行前指令執(zhí)行前ARPARPAR0AR0指令執(zhí)行后指令執(zhí)行后TCTCTCTCAR4AR4AR4AR4第44頁/共117頁(27)LACC (27)LACC 帶移位的累加器帶移位的累

60、加器裝載裝載 語法語法:LACC dma,shift LACC dma,shift 直接尋址直接尋址 LACC dma,16 LACC dma,16 左移左移1616位直接尋址位直接尋址 LACC ind,shift,ARn LACC ind,shift,ARn 間接尋址間接尋址 LACC ind,16,ARn LACC ind,16,ARn 左移左移1616位間接尋址位間接尋址 LACC #1k,shift LACC #1k,shift 長(zhǎng)立即數(shù)尋址長(zhǎng)立即數(shù)尋址說明說明:指定的數(shù)據(jù)存儲(chǔ)單元的內(nèi)容或一個(gè):指定的數(shù)據(jù)存儲(chǔ)單元的內(nèi)容或一個(gè)1616位常數(shù)左移并位常數(shù)左移并加載加載到累加器中。左移位時(shí)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論