資源描述:
《arm實(shí)驗(yàn)匯編語(yǔ)言編程技巧實(shí)驗(yàn)》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、大連理工大學(xué)軟件學(xué)院《嵌入式系統(tǒng)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告組號(hào):552實(shí)驗(yàn)箱編號(hào):21008552實(shí)驗(yàn)時(shí)間:12年10月11日實(shí)驗(yàn)室:嵌入式實(shí)驗(yàn)室實(shí)驗(yàn)臺(tái):EmbestEdukit-III平臺(tái)指導(dǎo)教師:邱鐵成績(jī):實(shí)驗(yàn)2:匯編語(yǔ)言編程技巧實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康暮鸵笸ㄟ^(guò)本次實(shí)驗(yàn)對(duì)ARM匯編語(yǔ)言編程的技巧進(jìn)行訓(xùn)練,提高編寫(xiě)代碼的速度與效率。二、實(shí)驗(yàn)原理和內(nèi)容1.編寫(xiě)程序?qū)崿F(xiàn)20!,將得到的64位結(jié)果送入[R9:R8]中。原理:由1開(kāi)始64位累乘(UMULL),高位存于R9中,低位存于R8中,每次用乘數(shù)對(duì)R8內(nèi)數(shù)進(jìn)行64位乘法,對(duì)R9進(jìn)行普通乘法
2、將R9乘后的值與原值相加繼續(xù)存于R9,累乘20次。2.判斷下列情況是否能夠?qū)崿F(xiàn):如果能實(shí)現(xiàn)請(qǐng)寫(xiě)出程序代碼1)N=1,C=1,V=12)N=0,C=1,V=13)N=1,C=0,V=14)Z=1,C=1,V=1原理:算數(shù),邏輯等運(yùn)算出的結(jié)果對(duì)標(biāo)志位的影響3.實(shí)現(xiàn)寄存器的高位和低位的互換,例如第0位和第31位互換……。原理:R1內(nèi)存有原值,每次讓其與上#1得到最后一位的值,若為1則在原為空的R4的相應(yīng)位上賦值1,之后R1右移一位,重復(fù)操作。三、主要儀器設(shè)備及軟件編程環(huán)境主要儀器設(shè)備:PC機(jī)軟件編程環(huán)境:EmbestIDE20
3、04集成開(kāi)發(fā)環(huán)境,Windows98/2000/NT/XP四、實(shí)驗(yàn)步驟與編程第一題:.global_start.text_start:MOVR9,#0MOVR8,#1MOVR0,#2MOVR1,#0movr2,#0LOOP:UMULLR2,R1,R8,R0MOVR8,R2MLAR9,R0,R9,R1ADDR0,R0,#1CMPR0,#21BNELOOPEND:BEND.END第二題:.global_start.text_start:MOVR9,#0MOVR8,#0MOVR7,#1MOVR0,#2MOVR1,#0MOVR2
4、,#0MOVR3,#0LOOP:UMULLR2,R1,R7,R0MOVR7,R2UMULLR3,R2,R8,R0ADDSR8,R3,R1MULR9,R0,R9ADCR9,R9,R2ADDR0,R0,#1CMPR0,#24BNELOOPEND:BEND.END第三題:(1).global_start.text_start:MOVR0,#0X80000000ADDSR1,R0,#0X80000000TEQR0,#0X12END:BEND.END(3).global_start.text_start:MOVR0,#-0XBFF
5、FFFFFMOVR1,#-0XBFFFFFFFADDSR2,R1,R0END:BEND.END(2)(4).global_start.text_start:MOVR0,#1MOVR1,#1MOVR0,R0,ROR#1MOVR1,R1,ROR#1ADDSR2,R1,R0END:BEND第四題:.global_start.text_start:LDRR0,=0x55555555MOVR2,#1MOVR3,#32MOVR8,#1MOVR9,#0MOVR10,#2MOVR5,#1LOOP1:MOVR1,R0ANDR1,R1,R8
6、MOVR6,R5LOOP2:MOVR1,R1,ROR#1SUBSR6,R6,R2BNELOOP2ADDR5,R5,R10ORRR4,R4,R1MOVR8,R8,LSL#1SUBSR3,R3,R2BNELOOP1END:BEND.END